Reduced the number of unnecessary calls to update the automation store or fetch automations. The contant updates appeared to cause issues with routify

This commit is contained in:
Dean 2024-07-30 10:03:24 +01:00
parent d29d37b39c
commit cad066c668
1 changed files with 8 additions and 7 deletions

View File

@ -87,8 +87,6 @@ const automationActions = store => ({
disabled: false, disabled: false,
} }
const response = await store.actions.save(automation) const response = await store.actions.save(automation)
await store.actions.fetch()
store.actions.select(response._id)
return response return response
}, },
duplicate: async automation => { duplicate: async automation => {
@ -98,14 +96,13 @@ const automationActions = store => ({
_id: undefined, _id: undefined,
_ref: undefined, _ref: undefined,
}) })
await store.actions.fetch()
store.actions.select(response._id)
return response return response
}, },
save: async automation => { save: async automation => {
const response = await API.updateAutomation(automation) const response = await API.updateAutomation(automation)
await store.actions.fetch() await store.actions.fetch()
store.actions.select(response._id)
return response.automation return response.automation
}, },
delete: async automation => { delete: async automation => {
@ -113,18 +110,22 @@ const automationActions = store => ({
automationId: automation?._id, automationId: automation?._id,
automationRev: automation?._rev, automationRev: automation?._rev,
}) })
store.update(state => { store.update(state => {
// Remove the automation // Remove the automation
state.automations = state.automations.filter( state.automations = state.automations.filter(
x => x._id !== automation._id x => x._id !== automation._id
) )
// Select a new automation if required // Select a new automation if required
if (automation._id === state.selectedAutomationId) { if (automation._id === state.selectedAutomationId) {
store.actions.select(state.automations[0]?._id) state.selectedAutomationId = state.automations[0]?._id || null
} }
// Clear out automationDisplayData for the automation
delete state.automationDisplayData[automation._id]
return state return state
}) })
await store.actions.fetch()
}, },
toggleDisabled: async automationId => { toggleDisabled: async automationId => {
let automation let automation
@ -381,7 +382,7 @@ export const selectedAutomation = derived(automationStore, $automationStore => {
export const selectedAutomationDisplayData = derived( export const selectedAutomationDisplayData = derived(
[automationStore, selectedAutomation], [automationStore, selectedAutomation],
([$automationStore, $selectedAutomation]) => { ([$automationStore, $selectedAutomation]) => {
if (!$selectedAutomation._id) { if (!$selectedAutomation?._id) {
return null return null
} }
return $automationStore.automationDisplayData[$selectedAutomation._id] return $automationStore.automationDisplayData[$selectedAutomation._id]