style: format with prettier
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 14s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 36s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 59s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m3s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / PR Build API Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
AI Code Review / AI Code Review (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m11s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m50s

This commit is contained in:
2026-07-24 09:46:47 +08:00
parent 4fb68e8ba9
commit 045295283f
5 changed files with 9 additions and 16 deletions
@@ -365,9 +365,7 @@ const Step5VoiceSelect: React.FC<Step5VoiceSelectProps> = (props) => {
{tag.name}
<CloseOutlined
className="xx-save-modal-tag-remove"
onClick={() =>
setSaveTagIds((prev) => prev.filter((x) => x !== id))
}
onClick={() => setSaveTagIds((prev) => prev.filter((x) => x !== id))}
/>
</span>
) : null
@@ -163,11 +163,7 @@ const Step6CoverSettings: React.FC<Step6CoverSettingsProps> = (props) => {
<div className="xx-section-title"></div>
<div className="xx-cover-preview-box">
{coverSettings.upload_url ? (
<img
src={coverSettings.upload_url}
alt="封面预览"
className="xx-cover-preview-img"
/>
<img src={coverSettings.upload_url} alt="封面预览" className="xx-cover-preview-img" />
) : (
<div className="xx-cover-preview-placeholder">
<span style={{ fontSize: 28 }}>🖼</span>
@@ -172,11 +172,7 @@ const Step7ConfirmGenerate: React.FC<Step7ConfirmGenerateProps> = (props) => {
</div>
</div>
<div style={{ display: "flex", gap: 8 }}>
<button
type="button"
className="xx-btn xx-btn-primary xx-btn-sm"
onClick={onRetry}
>
<button type="button" className="xx-btn xx-btn-primary xx-btn-sm" onClick={onRetry}>
🔄
</button>
<button
@@ -182,8 +182,7 @@ export function useGenerateVideo({
if (typeof obj.message === "string") return obj.message
if (typeof obj.msg === "string") return obj.msg
if (typeof obj.detail === "string") return obj.detail
if (obj.message && typeof obj.message === "object")
return safeExtract(obj.message)
if (obj.message && typeof obj.message === "object") return safeExtract(obj.message)
return JSON.stringify(val)
}
return String(val ?? "")
@@ -12,7 +12,11 @@ interface UseStep6CoverProps {
duration: number
}
export function useStep6Cover({ coverSettings, onCoverSettingsChange, duration }: UseStep6CoverProps) {
export function useStep6Cover({
coverSettings,
onCoverSettingsChange,
duration,
}: UseStep6CoverProps) {
const formatTime = useCallback((seconds: number) => {
const m = Math.floor(seconds / 60)
const s = Math.floor(seconds % 60)