refactor: refactored classes logic

This commit is contained in:
victor
2022-12-11 23:01:35 +04:00
parent 5c59b6813d
commit e4b31bcfb2
12 changed files with 268 additions and 328 deletions

View File

@@ -1,28 +1,13 @@
<template>
<div
:class="{
hidden: !panelState.isVisible,
'border-b-0': panelState.order !== panelsCount - 1 || accordionState.flush,
'border-t-0': panelState.order === panelsCount - 1,
'border-x-0': accordionState.flush,
}"
class="p-5 border border-gray-200 dark:border-gray-700 dark:bg-gray-900"
:class="contentClasses"
>
<slot />
</div>
</template>
<script lang="ts" setup>
import { useAccordionState } from '@/components/Accordion/composables/useAccordionState'
import { computed, inject } from 'vue'
import { useAccordionContentClasses } from '@/components/Accordion/composables/useAccordionContentClasses'
const accordionId: any = inject('accordionId')
const panelId: any = inject('panelId')
const { accordionsStates } = useAccordionState()
const accordionState = computed(() => accordionsStates[accordionId])
const panelState = computed(() => accordionsStates[accordionId].panels[panelId])
const panelsCount = computed(() => Object.keys(accordionsStates[accordionId].panels[panelId]).length)
const { contentClasses } = useAccordionContentClasses()
</script>