Skip to content

Commit

Permalink
feat: disable history item actions when the file removed
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiteMinds committed Mar 1, 2024
1 parent 8f06800 commit dd5ff36
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
2 changes: 1 addition & 1 deletion packages/http-server/src/routes/api_types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export type ClientRecorder = Omit<
recordHandle?: Omit<RecordHandle, 'stop'>
}

export type ClientRecord = RecordModel
export type ClientRecord = RecordModel & { isFileExists?: boolean }

export namespace API {
export namespace getRecorders {
Expand Down
8 changes: 7 additions & 1 deletion packages/http-server/src/routes/record.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ async function getRecords(args: API.getRecords.Args): Promise<API.getRecords.Res
start: startIdx,
count,
})
return { items, total }
return {
items: items.map((item) => ({
...item,
isFileExists: fs.existsSync(item.savePath),
})),
total,
}
})
return pagedGetter(args.page, args.pageSize)
}
Expand Down
28 changes: 22 additions & 6 deletions packages/web/src/views/Records/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,30 @@
<template v-slot:header.actions="{ column }">
<span class="pl-3">{{ column.title }}</span>
</template>

<template v-slot:item.actions="{ value: record }">
<div class="flex gap-0">
<router-link :to="{ name: RouteNames.Player, query: { id: record.id } }" target="_blank" tabindex="-1">
<v-btn size="small" variant="text">播放</v-btn>
</router-link>
<v-btn @click="genSRT(record)" size="small" variant="text" :loading="record.generatingSRT">
生成 srt 字幕
</v-btn>
<component
:is="!record.isFileExists ? 'span' : 'router-link'"
:to="{ name: RouteNames.Player, query: { id: record.id } }"
target="_blank"
tabindex="-1"
:title="!record.isFileExists ? '文件不存在' : ''"
>
<v-btn size="small" variant="text" :disabled="!record.isFileExists">播放</v-btn>
</component>

<span :title="!record.isFileExists ? '文件不存在' : ''">
<v-btn
@click="genSRT(record)"
size="small"
variant="text"
:loading="record.generatingSRT"
:disabled="!record.isFileExists"
>
生成 srt 字幕
</v-btn>
</span>
</div>
</template>
</v-data-table>
Expand Down

0 comments on commit dd5ff36

Please sign in to comment.