diff --git a/frontend/components/App/ImportDialog.vue b/frontend/components/App/ImportDialog.vue index adfe993..31da62d 100644 --- a/frontend/components/App/ImportDialog.vue +++ b/frontend/components/App/ImportDialog.vue @@ -86,8 +86,6 @@ importRef.value?.click(); } - const eventBus = useEventBus(); - async function submitCsvFile() { if (!importCsv.value) { toast.error("Please select a file to import."); @@ -111,8 +109,6 @@ importRef.value.value = ""; } - eventBus.emit(EventTypes.InvalidStores); - toast.success("Import successful!"); } diff --git a/frontend/composables/use-server-events.ts b/frontend/composables/use-server-events.ts index 5bad342..2d4eaa0 100644 --- a/frontend/composables/use-server-events.ts +++ b/frontend/composables/use-server-events.ts @@ -30,8 +30,18 @@ function connect(onmessage: (m: EventMessage) => void) { console.error("websocket error", err); }; + const thorttled = new Map(); + + thorttled.set(ServerEvent.LocationMutation, useThrottleFn(onmessage, 1000)); + thorttled.set(ServerEvent.ItemMutation, useThrottleFn(onmessage, 1000)); + thorttled.set(ServerEvent.LabelMutation, useThrottleFn(onmessage, 1000)); + ws.onmessage = msg => { - onmessage(JSON.parse(msg.data)); + const pm = JSON.parse(msg.data); + const fn = thorttled.get(pm.event); + if (fn) { + fn(pm); + } }; socket = ws;