From 8a349ea3bd6f7c25992ee6f2b6669f8bf68f13ea Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Wed, 28 Jun 2023 23:23:14 +0200 Subject: [PATCH] refactor: fix FarmPrinterPanel.vue Signed-off-by: Stefan Dej --- src/components/panels/FarmPrinterPanel.vue | 49 +++++++++++++--------- src/store/farm/printer/actions.ts | 13 +++--- src/store/farm/printer/getters.ts | 10 +---- src/store/farm/printer/index.ts | 2 +- src/store/farm/printer/types.ts | 4 +- 5 files changed, 37 insertions(+), 41 deletions(-) diff --git a/src/components/panels/FarmPrinterPanel.vue b/src/components/panels/FarmPrinterPanel.vue index 6d5222052..377782f9e 100644 --- a/src/components/panels/FarmPrinterPanel.vue +++ b/src/components/panels/FarmPrinterPanel.vue @@ -2,10 +2,8 @@ - + {{ mdiWebcamOff }} @@ -27,9 +25,9 @@ + @click="currentCamName = webcam.name"> {{ convertWebcamIcon(webcam.icon) }} @@ -47,7 +45,7 @@
0 + if (this.printer_webcams.length == 0) return false + + return this.printer.socket.isConnected } - get printer_webcams() { + get printer_webcams(): GuiWebcamStateWebcam[] { return this.$store.getters['farm/' + this.printer._namespace + '/getPrinterWebcams'] } - get currentWebcam() { - const currentCam = this.printer_webcams.find((webcam: any) => webcam.id === this.currentCamId) + get currentWebcam(): GuiWebcamStateWebcam | null { + const currentCam = this.printer_webcams?.find( + (webcam: GuiWebcamStateWebcam) => webcam.name === this.currentCamName + ) if (currentCam) return currentCam - return false + return null + } + + get panelClass(): string[] { + let output = [] + + if (!this.printer.socket.isConnected && !this.printer.socket.isConnecting) output.push('disabledPrinter') + + return output } clickPrinter() { @@ -268,10 +279,8 @@ export default class FarmPrinterPanel extends Mixins(BaseMixin, WebcamMixin) { .v-overlay { top: 48px; } - - diff --git a/src/store/farm/printer/actions.ts b/src/store/farm/printer/actions.ts index ceb1dbb91..b3da5a260 100644 --- a/src/store/farm/printer/actions.ts +++ b/src/store/farm/printer/actions.ts @@ -230,13 +230,10 @@ export const actions: ActionTree = { }) } - if (payload.namespaces.includes('webcams')) { - dispatch('sendObj', { - method: 'server.database.get_item', - params: { namespace: 'webcams' }, - action: 'getWebcamsData', - }) - } + dispatch('sendObj', { + method: 'server.webcams.list', + action: 'getWebcamsData', + }) }, getMainsailData({ commit }, payload) { @@ -244,6 +241,6 @@ export const actions: ActionTree = { }, getWebcamsData({ commit }, payload) { - commit('setWebcamsData', payload.value) + commit('setWebcamsData', payload.webcams) }, } diff --git a/src/store/farm/printer/getters.ts b/src/store/farm/printer/getters.ts index 29c7ce651..45b0022a8 100644 --- a/src/store/farm/printer/getters.ts +++ b/src/store/farm/printer/getters.ts @@ -308,14 +308,6 @@ export const getters: GetterTree = { }, getPrinterWebcams: (state) => { - const webcams: GuiWebcamStateWebcam[] = [] - - /*if (state.data.webcams) { - Object.keys(state.data.webcams).forEach((id: string) => { - webcams.push({ ...state.data?.webcams[id], id }) - }) - }*/ - - return webcams + return state.data.webcams.filter((webcam: GuiWebcamStateWebcam) => webcam.enabled) }, } diff --git a/src/store/farm/printer/index.ts b/src/store/farm/printer/index.ts index e7d5bc7d1..0245165ad 100644 --- a/src/store/farm/printer/index.ts +++ b/src/store/farm/printer/index.ts @@ -26,7 +26,7 @@ export const getDefaultState = (): FarmPrinterState => { }, data: { gui: getGuiDefaultState(), - webcams: {}, + webcams: [], }, settings: {}, databases: [], diff --git a/src/store/farm/printer/types.ts b/src/store/farm/printer/types.ts index 653392475..e1cd33d19 100644 --- a/src/store/farm/printer/types.ts +++ b/src/store/farm/printer/types.ts @@ -8,9 +8,7 @@ export interface FarmPrinterState { server: FarmPrinterStateServer data: { gui: GuiState - webcams: { - [key: string]: GuiWebcamStateWebcam - } + webcams: GuiWebcamStateWebcam[] // eslint-disable-next-line [key: string]: any }