fix: Fixed types
This commit is contained in:
@@ -15,12 +15,11 @@ import { onMounted, ref } from 'vue'
|
|||||||
|
|
||||||
const isLoaded = ref(false)
|
const isLoaded = ref(false)
|
||||||
const content = ref()
|
const content = ref()
|
||||||
|
const contentClasses = ref('')
|
||||||
let contentClasses
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const accordionHeaderClasses = useAccordionContentClasses(content)
|
const accordionHeaderClasses = useAccordionContentClasses(content)
|
||||||
contentClasses = accordionHeaderClasses.contentClasses
|
contentClasses.value = accordionHeaderClasses.contentClasses.value
|
||||||
isLoaded.value = true
|
isLoaded.value = true
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ const { accordionsStates } = useAccordionState()
|
|||||||
const accordionState = computed(() => accordionsStates[accordionId.value])
|
const accordionState = computed(() => accordionsStates[accordionId.value])
|
||||||
const panelState = computed(() => accordionState.value.panels[panelId.value])
|
const panelState = computed(() => accordionState.value.panels[panelId.value])
|
||||||
|
|
||||||
let headerClasses, arrowClasses
|
const headerClasses = ref('')
|
||||||
|
const arrowClasses = ref('')
|
||||||
function commonToggleItem() {
|
function commonToggleItem() {
|
||||||
const isSelectedVisible = panelState.value.isVisible
|
const isSelectedVisible = panelState.value.isVisible
|
||||||
for (const panelIndex in accordionState.value.panels) {
|
for (const panelIndex in accordionState.value.panels) {
|
||||||
@@ -53,8 +54,8 @@ function toggleItem() {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const accordionHeaderClasses = useAccordionHeaderClasses(header)
|
const accordionHeaderClasses = useAccordionHeaderClasses(header)
|
||||||
headerClasses = accordionHeaderClasses.headerClasses
|
headerClasses.value = accordionHeaderClasses.headerClasses.value
|
||||||
arrowClasses = accordionHeaderClasses.arrowClasses
|
arrowClasses.value = accordionHeaderClasses.arrowClasses.value
|
||||||
isLoaded.value = true
|
isLoaded.value = true
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
<!-- Item 1 -->
|
<!-- Item 1 -->
|
||||||
<!-- duration-700 ease-in-out-->
|
<!-- duration-700 ease-in-out-->
|
||||||
<div :class="index === currentPicture ? 'z-30' : 'z-0'"
|
<div :class="index === currentPicture ? 'z-30' : 'z-0'"
|
||||||
v-for="(picture, index) in pictures" :key="picture" class="absolute inset-0 -translate-y-0">
|
v-for="(picture, index) in pictures" :key="index" class="absolute inset-0 -translate-y-0">
|
||||||
<img :src="picture.src" class="block absolute top-1/2 left-1/2 w-full -translate-x-1/2 -translate-y-1/2" :alt="picture.alt">
|
<img :src="picture.src" class="block absolute top-1/2 left-1/2 w-full -translate-x-1/2 -translate-y-1/2" :alt="picture.alt">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Slider indicators -->
|
<!-- Slider indicators -->
|
||||||
<div v-if="indicators" class="flex absolute bottom-5 left-1/2 z-30 space-x-3 -translate-x-1/2">
|
<div v-if="indicators" class="flex absolute bottom-5 left-1/2 z-30 space-x-3 -translate-x-1/2">
|
||||||
<button v-for="(picture, index) in pictures" :key="picture" type="button" :class="index === currentPicture ? 'bg-white' : 'bg-white/50'" class="w-3 h-3 rounded-full bg-white" aria-current="false" :aria-label="'Slide ' + index" @click.prevent="slideTo(index)"></button>
|
<button v-for="(picture, index) in pictures" :key="index" type="button" :class="index === currentPicture ? 'bg-white' : 'bg-white/50'" class="w-3 h-3 rounded-full bg-white" aria-current="false" :aria-label="'Slide ' + index" @click.prevent="slideTo(index)"></button>
|
||||||
</div>
|
</div>
|
||||||
<!-- Slider controls -->
|
<!-- Slider controls -->
|
||||||
<button v-if="controls" @click.prevent="previousPicture" type="button" class="flex absolute top-0 left-0 z-30 justify-center items-center px-4 h-full cursor-pointer group focus:outline-none" data-carousel-prev>
|
<button v-if="controls" @click.prevent="previousPicture" type="button" class="flex absolute top-0 left-0 z-30 justify-center items-center px-4 h-full cursor-pointer group focus:outline-none" data-carousel-prev>
|
||||||
@@ -30,10 +30,12 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
import type { PropType } from 'vue'
|
||||||
|
import type { PictureItem } from '@/components/Carousel/types'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
pictures: {
|
pictures: {
|
||||||
type: Array,
|
type: Array as PropType<PictureItem[]>,
|
||||||
default() {
|
default() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|||||||
4
src/components/Carousel/types.ts
Normal file
4
src/components/Carousel/types.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export type PictureItem = {
|
||||||
|
src: string,
|
||||||
|
alt?: string
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user