2 <Button :class="{ on: state.status }" @click="click()">
7 <script setup lang="ts">
8 import { ref } from 'vue'
9 import Button from '@/components/buttons/Button.vue'
10 import { getFromLocalStorage, setToLocalStorage } from '@/composables'
12 const props = defineProps<{
20 const id = props.shared === true ? `shared-toggle-button-${props.id}` : `toggle-button-${props.id}`
23 status: getFromLocalStorage<boolean>(id, props.status ?? false)
26 const click = (): void => {
28 for (const key in localStorage) {
29 if (key !== id && key.startsWith('shared-toggle-button-')) {
30 setToLocalStorage<boolean>(key, false)
31 state.value.status = getFromLocalStorage<boolean>(key, false)
35 setToLocalStorage<boolean>(id, !getFromLocalStorage<boolean>(id, props.status ?? false))
36 state.value.status = getFromLocalStorage<boolean>(id, props.status ?? false)
37 // console.log(`----begin----`)
38 // for (const key in localStorage) {
39 // if (key.startsWith('shared-toggle-button-')) {
40 // console.log(key, getFromLocalStorage<boolean>(key, props.status ?? false))
43 // console.log(`----end----`)
44 if (getFromLocalStorage<boolean>(id, props.status ?? false)) {
54 background-color: lightgrey;