fix(ui): handle missing version in simulator state
[e-mobility-charging-stations-simulator.git] / ui / web / src / components / buttons / ToggleButton.vue
index b51c85580fea8bf14658fc7808c3e78b98d76e73..6d72ba10f04a3e874f63b4757b11d14dbc2ee112 100644 (file)
@@ -17,14 +17,16 @@ const props = defineProps<{
   off?: () => void
 }>()
 
+const $emit = defineEmits(['clicked'])
+
 const id = props.shared === true ? `shared-toggle-button-${props.id}` : `toggle-button-${props.id}`
 
-const state = ref({
+const state = ref<{ status: boolean }>({
   status: getFromLocalStorage<boolean>(id, props.status ?? false)
 })
 
 const click = (): void => {
-  if (props.shared) {
+  if (props.shared === true) {
     for (const key in localStorage) {
       if (key !== id && key.startsWith('shared-toggle-button-')) {
         setToLocalStorage<boolean>(key, false)
@@ -34,23 +36,18 @@ const click = (): void => {
   }
   setToLocalStorage<boolean>(id, !getFromLocalStorage<boolean>(id, props.status ?? false))
   state.value.status = getFromLocalStorage<boolean>(id, props.status ?? false)
-  // console.log(`----begin----`)
-  // for (const key in localStorage) {
-  //   if (key.startsWith('shared-toggle-button-')) {
-  //     console.log(key, getFromLocalStorage<boolean>(key, props.status ?? false))
-  //   }
-  // }
-  // console.log(`----end----`)
   if (getFromLocalStorage<boolean>(id, props.status ?? false)) {
     props.on?.()
   } else {
     props.off?.()
   }
+  $emit('clicked', getFromLocalStorage<boolean>(id, props.status ?? false))
 }
 </script>
 
 <style>
 .on {
   background-color: lightgrey;
+  border-style: inset;
 }
 </style>