Files
EasyFlow/easyflow-ui-usercenter/packages/effects/common-ui/src/components/captcha/slider-captcha/slider-captcha-content.vue
2026-02-22 18:56:10 +08:00

54 lines
1.0 KiB
Vue

<script setup lang="ts">
import type { CSSProperties } from 'vue';
import { computed, useTemplateRef } from 'vue';
import { EasyFlowSpineText } from '@easyflow-core/shadcn-ui';
const props = defineProps<{
contentStyle: CSSProperties;
isPassing: boolean;
successText: string;
text: string;
}>();
const contentRef = useTemplateRef<HTMLDivElement>('contentRef');
const style = computed(() => {
const { contentStyle } = props;
return {
...contentStyle,
};
});
defineExpose({
getEl: () => {
return contentRef.value;
},
});
</script>
<template>
<div
ref="contentRef"
:class="{
[$style.success]: isPassing,
}"
:style="style"
class="absolute top-0 flex size-full select-none items-center justify-center text-xs"
>
<slot name="text">
<EasyFlowSpineText class="flex h-full items-center">
{{ isPassing ? successText : text }}
</EasyFlowSpineText>
</slot>
</div>
</template>
<style module>
.success {
-webkit-text-fill-color: hsl(0deg 0% 98%);
}
</style>