Files
BRETT/app/components/effects/CardBackgroundEffect.vue
T
2026-10-03 20:07:49 +02:00

46 lines
1.7 KiB
Vue

<script setup lang="ts">
import type { CardEffectKey } from '~~/shared/utils/cardEffects'
import EffectAcidSquares from '@/components/effects/EffectAcidSquares.vue'
import EffectAurora from '@/components/effects/EffectAurora.vue'
import EffectCrtWarp from '@/components/effects/EffectCrtWarp.vue'
import EffectDither from '@/components/effects/EffectDither.vue'
import EffectGradientWaves from '@/components/effects/EffectGradientWaves.vue'
import EffectLetterGlitch from '@/components/effects/EffectLetterGlitch.vue'
import EffectLineWaves from '@/components/effects/EffectLineWaves.vue'
import EffectParticles from '@/components/effects/EffectParticles.vue'
import EffectPlasma from '@/components/effects/EffectPlasma.vue'
import EffectScanner from '@/components/effects/EffectScanner.vue'
import EffectShapeGrid from '@/components/effects/EffectShapeGrid.vue'
import EffectSilk from '@/components/effects/EffectSilk.vue'
import EffectSoftAurora from '@/components/effects/EffectSoftAurora.vue'
import EffectWaves from '@/components/effects/EffectWaves.vue'
const props = defineProps<{
effect: CardEffectKey
color: string
}>()
const COMPONENTS = {
'gradient-waves': EffectGradientWaves,
'aurora': EffectAurora,
'particles': EffectParticles,
'letter-glitch': EffectLetterGlitch,
'waves': EffectWaves,
'scanner': EffectScanner,
'acid-squares': EffectAcidSquares,
'crt-warp': EffectCrtWarp,
'dither': EffectDither,
'soft-aurora': EffectSoftAurora,
'silk': EffectSilk,
'shape-grid': EffectShapeGrid,
'plasma': EffectPlasma,
'line-waves': EffectLineWaves,
} as const
const component = computed(() => COMPONENTS[props.effect] ?? null)
</script>
<template>
<component :is="component" v-if="component" :color="color" />
</template>