refactor: refactored accordion

This commit is contained in:
victor
2022-12-11 00:05:01 +04:00
parent beb6efaa8a
commit 93e863f02c
11 changed files with 467 additions and 208 deletions

View File

@@ -0,0 +1,31 @@
<template>
<div>
<slot name="header" @click="toggleItem"/>
<slot name="content"/>
</div>
</template>
<script lang="ts" setup>
import { computed, inject, onBeforeMount, provide } from 'vue'
import { useAccordionState } from '@/components/Accordion/composables/useAccordionState'
import { nanoid } from 'nanoid'
const { accordionsStates } = useAccordionState()
const panelId = nanoid()
const accordionId: any = inject('accordionId')
provide('panelId', panelId)
const accordionState = computed(() => {
return accordionsStates[accordionId]
})
onBeforeMount(() => {
const panelsCount = Object.keys(accordionState.value.panels).length
accordionState.value.panels[panelId] = {
id: panelId,
order: panelsCount,
isVisible: !panelsCount,
}
})
</script>