From 974beee118c5db739abcf2ef5532c9dc006ea281 Mon Sep 17 00:00:00 2001 From: Robert Kossessa Date: Tue, 12 Mar 2024 10:36:08 +0100 Subject: [PATCH] UPD: Split store into app and device --- src/preload/index.ts | 13 +- src/renderer/src/App.vue | 60 ++-- src/renderer/src/appStore.ts | 271 ++++++++++++++++ .../src/components/config/ConfigPane.vue | 16 +- .../components/config/keys/KeyLightConfig.vue | 8 +- .../config/keys/KeyMappingConfig.vue | 10 +- .../src/components/device/DevicePreview.vue | 34 +- src/renderer/src/components/navbar/Navbar.vue | 38 ++- .../src/components/profile/ProfileButton.vue | 8 +- .../src/components/profile/ProfileManager.vue | 34 +- src/renderer/src/device.ts | 59 ---- src/renderer/src/deviceStore.ts | 87 +++++ src/renderer/src/main.ts | 10 +- src/renderer/src/store.ts | 302 ------------------ 14 files changed, 478 insertions(+), 472 deletions(-) create mode 100644 src/renderer/src/appStore.ts delete mode 100644 src/renderer/src/device.ts create mode 100644 src/renderer/src/deviceStore.ts delete mode 100644 src/renderer/src/store.ts diff --git a/src/preload/index.ts b/src/preload/index.ts index 903f07d..4fc21e9 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -2,7 +2,7 @@ import { contextBridge, ipcRenderer } from 'electron' // expose an API to choose available devices contextBridge.exposeInMainWorld('nanoSerialApi', { - list_devices() { + listConnectedDevices() { return ipcRenderer.invoke('nanoSerialApi:list_devices') }, connect(deviceid) { @@ -11,20 +11,13 @@ contextBridge.exposeInMainWorld('nanoSerialApi', { disconnect(deviceid) { return ipcRenderer.invoke('nanoSerialApi:disconnect', deviceid) }, - on_event(eventid_filter, callback) { - //console.log('attaching filter for ', eventid_filter) + on(callback) { ipcRenderer.on('nanoSerialApi:event', (_event, eventid, deviceid, ...data) => { - //console.log('Event in ipcRenderer ', eventid, deviceid, data) - if (eventid_filter == '*' || eventid_filter == eventid) { - callback(eventid, deviceid, ...data) - } + callback(eventid, deviceid, ...data) }) }, send(deviceid, obj) { return ipcRenderer.invoke('nanoSerialApi:send', deviceid, JSON.stringify(obj)) - }, - save(deviceid) { - return ipcRenderer.invoke('nanoSerialApi:send', deviceid, JSON.stringify({ save: true })) } }) diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue index b361d42..f744e23 100644 --- a/src/renderer/src/App.vue +++ b/src/renderer/src/App.vue @@ -3,41 +3,39 @@ import ProfileManager from '@renderer/components/profile/ProfileManager.vue' import DevicePreview from '@renderer/components/device/DevicePreview.vue' import ConfigPane from '@renderer/components/config/ConfigPane.vue' import Navbar from '@renderer/components/navbar/Navbar.vue' -import { useStore } from '@renderer/store' -import { useMessageHandlers } from '@renderer/device' +import { useDeviceStore } from '@renderer/deviceStore' -const { electronApi, nanoSerialApi } = window -const store = useStore() +const deviceStore = useDeviceStore() -const menuActions = { - connect: () => store.setConnected(!store.connected), - orientation: () => store.cycleScreenOrientation(), - skin: () => store.switchPreviewDeviceModel() -} +// const menuActions = { +// connect: () => store.setConnected(!store.connected), +// orientation: () => store.cycleScreenOrientation(), +// skin: () => store.switchPreviewDeviceModel() +// } -electronApi.onMenu((key) => { - console.log('menu', key) - if (menuActions[key]) { - menuActions[key]() - } -}) +// electronApi.onMenu((key) => { +// console.log('menu', key) +// if (menuActions[key]) { +// menuActions[key]() +// } +// }) -store.fetchProfiles() // TODO remove me! +// store.fetchProfiles() // TODO remove me! // handle device events -const handlers = useMessageHandlers(store) -nanoSerialApi.on_event('device-attached', (evt, deviceid, data) => store.device_attached(deviceid)) -nanoSerialApi.on_event('device-detached', (evt, deviceid, data) => store.device_detached(deviceid)) -nanoSerialApi.on_event('device-error', (evt, deviceid, data) => { - /* TODO handle connection errors */ -}) -nanoSerialApi.on_event('connected', (evt, deviceid, data) => store.device_connected(deviceid)) -nanoSerialApi.on_event('disconnected', (evt, deviceid, data) => store.device_disconnected(deviceid)) -nanoSerialApi.on_event('update', (evt, deviceid, data) => { - handlers.handle_message(data) -}) -// get list of the currently attached devices -nanoSerialApi.list_devices().then((devs) => store.init_devices(devs)) +// const handlers = useMessageHandlers(store) +// nanoSerialApi.on_event('device-attached', (evt, deviceid, data) => store.device_attached(deviceid)) +// nanoSerialApi.on_event('device-detached', (evt, deviceid, data) => store.device_detached(deviceid)) +// nanoSerialApi.on_event('device-error', (evt, deviceid, data) => { +// /* TODO handle connection errors */ +// }) +// nanoSerialApi.on_event('connected', (evt, deviceid, data) => store.device_connected(deviceid)) +// nanoSerialApi.on_event('disconnected', (evt, deviceid, data) => store.device_disconnected(deviceid)) +// nanoSerialApi.on_event('update', (evt, deviceid, data) => { +// handlers.handle_message(data) +// }) +// // get list of the currently attached devices +// nanoSerialApi.list_devices().then((devs) => store.init_devices(devs))