Skip to content

Commit

Permalink
Mini-widgets: Input-widgets: Add watch to reactively bind widget to d…
Browse files Browse the repository at this point in the history
…ata-lake-variables

Signed-off-by: Arturo Manzoli <arturomanzoli@gmail.com>
  • Loading branch information
ArturoManzoli committed Feb 12, 2025
1 parent 64f73cf commit ef7b3ef
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 29 deletions.
26 changes: 20 additions & 6 deletions src/components/custom-widget-elements/Checkbox.vue
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,25 @@ watch(
{ immediate: true, deep: true }
)
watch(
() => miniWidget.value.options.dataLakeVariable?.name,
(newVal) => {
if (newVal) {
startListeningDataLakeVariable()
}
},
{ immediate: true }
)
const startListeningDataLakeVariable = (): void => {
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable.name, (value) => {
isChecked.value = value as boolean
})
isChecked.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as boolean
}
}
onMounted(() => {
if (!miniWidget.value.options || Object.keys(miniWidget.value.options).length === 0) {
miniWidget.value.isCustomElement = true
Expand All @@ -83,12 +102,7 @@ onMounted(() => {
dataLakeVariable: undefined,
})
}
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable.name, (value) => {
isChecked.value = value as boolean
})
isChecked.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as boolean
}
startListeningDataLakeVariable()
})
onUnmounted(() => {
Expand Down
28 changes: 21 additions & 7 deletions src/components/custom-widget-elements/Dial.vue
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,26 @@ const setDialValue = (value: number | string | undefined): void => {
rotationAngle.value = ((numValue - miniWidget.value.options.layout?.minValue) / valueRange) * rotationRange - 150
}
watch(
() => miniWidget.value.options.dataLakeVariable?.name,
(newVal) => {
if (newVal) {
startListeningDataLakeVariable()
}
},
{ immediate: true }
)
const startListeningDataLakeVariable = (): void => {
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable?.name, (value) => {
setDialValue(value as number)
})
const initialValue = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash)
setDialValue(initialValue)
}
}
onMounted(() => {
if (!miniWidget.value.options || Object.keys(miniWidget.value.options).length === 0) {
miniWidget.value.isCustomElement = true
Expand All @@ -106,13 +126,7 @@ onMounted(() => {
dataLakeVariable: undefined,
})
}
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable?.name, (value) => {
setDialValue(value as number)
})
const initialValue = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash)
setDialValue(initialValue)
}
startListeningDataLakeVariable()
})
const sizeClass = computed(() => {
Expand Down
25 changes: 20 additions & 5 deletions src/components/custom-widget-elements/Dropdown.vue
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,25 @@ const handleSelection = (value: string | number | boolean): void => {
widgetStore.setMiniWidgetLastValue(miniWidget.value.hash, selected.value)
}
watch(
() => miniWidget.value.options.dataLakeVariable?.name,
(newVal) => {
if (newVal) {
startListeningDataLakeVariable()
}
},
{ immediate: true }
)
const startListeningDataLakeVariable = (): void => {
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable.name, (value) => {
selectedValue.value = value as string
})
selectedValue.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as string
}
}
onMounted(() => {
if (!miniWidget.value.options || Object.keys(miniWidget.value.options).length === 0) {
miniWidget.value.isCustomElement = true
Expand All @@ -113,11 +132,7 @@ onMounted(() => {
})
}
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable.name, (value) => {
selectedOption.value = options.value.find((option) => option.value === value)
})
const storedValue = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash)
selectedOption.value = options.value.find((option: SelectorOption) => option.value === storedValue)
startListeningDataLakeVariable()
}
if (miniWidget.value.options.lastSelected?.name !== '') {
selectedOption.value = miniWidget.value.options.lastSelected
Expand Down
26 changes: 20 additions & 6 deletions src/components/custom-widget-elements/Slider.vue
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,25 @@ watch(
{ immediate: true, deep: true }
)
watch(
() => miniWidget.value.options.dataLakeVariable?.name,
(newVal) => {
if (newVal) {
startListeningDataLakeVariable()
}
},
{ immediate: true }
)
const startListeningDataLakeVariable = (): void => {
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable?.name, (value) => {
sliderValue.value = value as number
})
sliderValue.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as number
}
}
const handleSliderChange = (): void => {
if (widgetStore.editingMode) return
if (miniWidget.value.options.dataLakeVariable) {
Expand All @@ -99,12 +118,7 @@ onMounted(() => {
dataLakeVariable: undefined,
})
}
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable?.name, (value) => {
sliderValue.value = value as number
})
sliderValue.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as number
}
startListeningDataLakeVariable()
})
onUnmounted(() => {
Expand Down
25 changes: 20 additions & 5 deletions src/components/custom-widget-elements/Switch.vue
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,25 @@ watch(
{ immediate: true, deep: true }
)
watch(
() => miniWidget.value.options.dataLakeVariable?.name,
(newVal) => {
if (newVal) {
startListeningDataLakeVariable()
}
},
{ immediate: true }
)
const startListeningDataLakeVariable = (): void => {
if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable.name, (value) => {
switchValue.value = value as boolean
})
switchValue.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as boolean
}
}
const handleToggleAction = (): void => {
if (widgetStore.editingMode) return
if (miniWidget.value.options.dataLakeVariable) {
Expand All @@ -83,12 +102,8 @@ onMounted(() => {
})
switchValue.value = true
} else if (miniWidget.value.options.dataLakeVariable) {
listenerId = listenDataLakeVariable(miniWidget.value.options.dataLakeVariable.name, (value) => {
switchValue.value = value as boolean
})
switchValue.value = widgetStore.getMiniWidgetLastValue(miniWidget.value.hash) as boolean
}
startListeningDataLakeVariable()
})
onUnmounted(() => {
Expand Down

0 comments on commit ef7b3ef

Please sign in to comment.