From fb903f194af631d0c1c8c27da27f45410b0df062 Mon Sep 17 00:00:00 2001 From: Robert Kossessa Date: Tue, 12 Mar 2024 14:34:31 +0100 Subject: [PATCH] UPD: Move some functionality to new stores --- src/preload/index.d.ts | 11 +- src/preload/index.ts | 6 +- src/renderer/src/App.vue | 19 +-- src/renderer/src/appStore.ts | 12 +- src/renderer/src/components/navbar/Navbar.vue | 34 ++--- .../src/components/profile/ProfileManager.vue | 11 +- src/renderer/src/deviceStore.ts | 138 ++++++++++++++++-- src/renderer/src/main.ts | 2 +- 8 files changed, 175 insertions(+), 58 deletions(-) diff --git a/src/preload/index.d.ts b/src/preload/index.d.ts index 5901c7d..c36ba69 100644 --- a/src/preload/index.d.ts +++ b/src/preload/index.d.ts @@ -1,11 +1,8 @@ export interface INanoSerialApi { - list_devices(): Promise + listAttachedDevices(): Promise connect(deviceid: string): Promise disconnect(deviceid: string): Promise - on_event( - eventid_filter: string, - callback: (eventid: string, deviceid: string, data: any) => void - ): void + on(callback: (eventid: string, deviceid: string, data: any) => void): void send(deviceid: string, jsonstr: string): Promise save(deviceid: string): Promise } @@ -26,7 +23,7 @@ export interface IElectronApi { declare global { interface Window { - nanoSerialApi: INanoSerialApi - electronApi: IElectronApi + nanoIpc: INanoSerialApi + appIpc: IElectronApi } } diff --git a/src/preload/index.ts b/src/preload/index.ts index 4fc21e9..25279d5 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -1,8 +1,8 @@ import { contextBridge, ipcRenderer } from 'electron' // expose an API to choose available devices -contextBridge.exposeInMainWorld('nanoSerialApi', { - listConnectedDevices() { +contextBridge.exposeInMainWorld('nanoIpc', { + listAttachedDevices() { return ipcRenderer.invoke('nanoSerialApi:list_devices') }, connect(deviceid) { @@ -21,7 +21,7 @@ contextBridge.exposeInMainWorld('nanoSerialApi', { } }) -contextBridge.exposeInMainWorld('electronApi', { +contextBridge.exposeInMainWorld('appIpc', { platform: process.platform, isDevelopment: process.env.NODE_ENV !== 'production', minimizeWindow: () => ipcRenderer.send('electron:minimizeWindow'), diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue index f744e23..8b05816 100644 --- a/src/renderer/src/App.vue +++ b/src/renderer/src/App.vue @@ -3,9 +3,10 @@ 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 { useDeviceStore } from '@renderer/deviceStore' +import { useDeviceStore, initializeDevices } from '@renderer/deviceStore' const deviceStore = useDeviceStore() +initializeDevices() // const menuActions = { // connect: () => store.setConnected(!store.connected), @@ -13,7 +14,7 @@ const deviceStore = useDeviceStore() // skin: () => store.switchPreviewDeviceModel() // } -// electronApi.onMenu((key) => { +// appIpc.onMenu((key) => { // console.log('menu', key) // if (menuActions[key]) { // menuActions[key]() @@ -24,18 +25,18 @@ const deviceStore = useDeviceStore() // 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) => { +// nanoIpc.on_event('device-attached', (evt, deviceid, data) => store.device_attached(deviceid)) +// nanoIpc.on_event('device-detached', (evt, deviceid, data) => store.device_detached(deviceid)) +// nanoIpc.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) => { +// nanoIpc.on_event('connected', (evt, deviceid, data) => store.device_connected(deviceid)) +// nanoIpc.on_event('disconnected', (evt, deviceid, data) => store.device_disconnected(deviceid)) +// nanoIpc.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)) +// nanoIpc.list_devices().then((devs) => store.init_devices(devs))