Files
flowbite-vue/src/components/Accordion/composables/useAccordionState.ts
2022-12-11 11:18:32 +04:00

29 lines
643 B
TypeScript

import { onBeforeMount, onBeforeUnmount, reactive } from 'vue'
import type { tAccordionMode, tState } from '@/components/Accordion/types'
const accordionsStates = reactive<tState>({})
export function useAccordionState(id?: string, options?: {flush: boolean, alwaysOpen: boolean}): {
accordionsStates: tState
} {
onBeforeMount(() => {
if (!id) return
accordionsStates[id] = {
id: id,
flush: options?.flush ?? false,
alwaysOpen: options?.alwaysOpen ?? false,
panels: {},
}
})
onBeforeUnmount(() => {
if (!id) return
delete accordionsStates[id]
})
return {
accordionsStates,
}
}