Skip to content

Commit f121946

Browse files
committed
feat(CountUpDemo): integrate customize component
1 parent 19e8be9 commit f121946

File tree

1 file changed

+48
-10
lines changed

1 file changed

+48
-10
lines changed

src/demo/Animations/CountUpDemo.vue

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@
66
<div class="demo-container relative">
77
<CountUp
88
:key="keyDefault"
9-
:from="0"
10-
:to="100"
11-
separator=","
12-
direction="up"
13-
:duration="1"
9+
:from="from"
10+
:to="to"
11+
:direction="direction"
12+
:delay="delay"
13+
:duration="duration"
14+
:separator="separator"
1415
class-name="count-up-text"
1516
/>
1617

1718
<RefreshButton @click="forceRerenderDefault" />
1819
</div>
1920

20-
<h2 class="demo-title-extra">Start Programatically</h2>
21+
<h2 class="demo-title-extra">Start Programmatically</h2>
2122

2223
<div class="demo-container flex flex-col justify-center items-center relative min-h-[200px]">
2324
<button
@@ -28,17 +29,31 @@
2829
</button>
2930

3031
<CountUp
31-
:key="keyProgramatically"
32+
:key="keyProgrammatically"
3233
:from="100"
3334
:to="500"
3435
:start-when="startCounting"
3536
:duration="5"
3637
class-name="count-up-text"
3738
/>
3839

39-
<RefreshButton v-if="startCounting" @click="forceRerenderProgramatically" />
40+
<RefreshButton v-if="startCounting" @click="forceRerenderProgrammatically" />
4041
</div>
4142

43+
<Customize>
44+
<PreviewSlider title="From" v-model="from" :min="0" :max="1000" :step="10" />
45+
46+
<PreviewSlider title="To" v-model="to" :min="100" :max="5000" :step="100" />
47+
48+
<PreviewSelect title="Direction" v-model="direction" :options="directionOptions" />
49+
50+
<PreviewSlider title="Duration" v-model="duration" :min="0.5" :max="10" :step="0.5" value-unit="s" />
51+
52+
<PreviewSlider title="Delay" v-model="delay" :min="0" :max="5" :step="0.5" value-unit="s" />
53+
54+
<PreviewSelect title="Separator" v-model="separator" :options="separatorOptions" />
55+
</Customize>
56+
4257
<PropTable :data="propData" />
4358
</template>
4459

@@ -62,19 +77,42 @@ import RefreshButton from '../../components/common/RefreshButton.vue';
6277
import CountUp from '../../content/Animations/CountUp/CountUp.vue';
6378
import { countup } from '@/constants/code/Animations/countUpCode';
6479
import { useForceRerender } from '@/composables/useForceRerender';
80+
import Customize from '../../components/common/Customize.vue';
81+
import PreviewSlider from '../../components/common/PreviewSlider.vue';
82+
import PreviewSelect from '../../components/common/PreviewSelect.vue';
6583
6684
const startCounting = ref(false);
6785
6886
const { rerenderKey: keyDefault, forceRerender: forceRerenderDefault } = useForceRerender();
69-
const { rerenderKey: keyProgramatically, forceRerender: forceRerenderProgramatically } = useForceRerender();
87+
const { rerenderKey: keyProgrammatically, forceRerender: forceRerenderProgrammatically } = useForceRerender();
7088
7189
const setStartCounting = (value: boolean) => {
7290
startCounting.value = value;
7391
if (value) {
74-
forceRerenderProgramatically();
92+
forceRerenderProgrammatically();
7593
}
7694
};
7795
96+
const from = ref(50);
97+
const to = ref(1000);
98+
const direction = ref<'up' | 'down'>('up');
99+
const duration = ref(2);
100+
const delay = ref(0);
101+
const separator = ref(',');
102+
103+
const directionOptions = [
104+
{ label: 'Up', value: 'up' },
105+
{ label: 'Down', value: 'down' }
106+
];
107+
108+
const separatorOptions = [
109+
{ label: 'None', value: '' },
110+
{ label: 'Comma (,)', value: ',' },
111+
{ label: 'Period (.)', value: '.' },
112+
{ label: 'Space ( )', value: ' ' },
113+
{ label: 'Underscore (_)', value: '_' }
114+
];
115+
78116
const propData = [
79117
{
80118
name: 'to',

0 commit comments

Comments
 (0)