Skip to content

Commit cc0b9fa

Browse files
refactor: migrate VRendererCell to TypeScript
1 parent 937b86a commit cc0b9fa

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

src/components/pivottable-ui/VRendererCell.vue

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,36 @@
1313
</td>
1414
</template>
1515

16-
<script setup>
16+
<script setup lang="ts">
1717
import { computed, useSlots } from 'vue'
1818
import VDropdown from './VDropdown.vue'
19+
import type { VNode } from 'vue'
1920
2021
const slots = useSlots()
21-
const rendererOptions = computed(() => Object.keys(props.rendererItems))
22-
const props = defineProps({
23-
rendererName: {
24-
type: String,
25-
default: ''
26-
},
27-
rendererItems: {
28-
type: Object,
29-
default: () => ({})
30-
}
22+
const rendererOptions = computed<string[]>(() =>
23+
Object.keys(props.rendererItems)
24+
)
25+
26+
interface RendererDefinition {
27+
name: string
28+
props: Record<string, any>
29+
setup: (props: any) => () => VNode
30+
}
31+
32+
interface RendererCellProps {
33+
rendererName: string
34+
rendererItems: Record<string, RendererDefinition>
35+
}
36+
37+
const props = withDefaults(defineProps<RendererCellProps>(), {
38+
rendererName: '',
39+
rendererItems: () => ({})
3140
})
32-
const emit = defineEmits(['update:rendererName'])
33-
const updateRendererName = (value) => emit('update:rendererName', value)
41+
const emit = defineEmits<{
42+
(event: 'update:rendererName', value: string): void
43+
}>()
44+
45+
const updateRendererName = (value: string): void => {
46+
emit('update:rendererName', value)
47+
}
3448
</script>

0 commit comments

Comments
 (0)