Bilibili-Evolved/registry/lib/components/video/download/inputs/episode-item.ts
2023-01-29 18:06:00 +08:00

27 lines
652 B
TypeScript

import type { DownloadVideoInputItem } from '../types'
import EpisodesPicker from './EpisodesPicker.vue'
export interface EpisodeItem {
key: string
title: string
isChecked: boolean
inputItem: DownloadVideoInputItem
durationText?: string
}
export const createEpisodesPicker = (
fetchEpisodeItems: (instance: any) => Promise<EpisodeItem[]>,
) =>
Vue.extend({
computed: {
checkedInputItems() {
return (this.$refs.picker as any).checkedInputItems
},
},
render(createElement) {
return createElement(EpisodesPicker, {
props: { api: fetchEpisodeItems },
ref: 'picker',
})
},
})