fix: keep video duration input separators
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2026-04-11 19:05:55 +08:00
parent f69cca1da6
commit fe5d571190

View File

@ -398,7 +398,7 @@ function formatVideoDurationOptionsInput(options?: number[]) {
function parseVideoDurationOptionsInput(value: string) { function parseVideoDurationOptionsInput(value: string) {
return normalizeVideoDurationOptions( return normalizeVideoDurationOptions(
String(value || "") String(value || "")
.split(/[,\n,、\s]+/) .split(/[,\n,、;;|/\\\s]+/)
.map((item) => item.trim()) .map((item) => item.trim())
.filter(Boolean) .filter(Boolean)
); );
@ -2408,6 +2408,8 @@ export function AdminSettingsClient() {
// 🆕 图片生成模型特性配置 // 🆕 图片生成模型特性配置
imageGenConfig: createDefaultImageGenConfig(), imageGenConfig: createDefaultImageGenConfig(),
}); });
const [videoDurationOptionsInput, setVideoDurationOptionsInput] =
useState("");
const [showModelDialog, setShowModelDialog] = useState(false); const [showModelDialog, setShowModelDialog] = useState(false);
const [editingModel, setEditingModel] = useState<string | null>(null); const [editingModel, setEditingModel] = useState<string | null>(null);
const [modelAvatarUploading, setModelAvatarUploading] = useState(false); const [modelAvatarUploading, setModelAvatarUploading] = useState(false);
@ -4987,6 +4989,7 @@ export function AdminSettingsClient() {
excludeFromFailover: false, excludeFromFailover: false,
imageGenConfig: createDefaultImageGenConfig(), imageGenConfig: createDefaultImageGenConfig(),
}); });
setVideoDurationOptionsInput("");
setEditingModel(null); setEditingModel(null);
}; };
@ -11745,12 +11748,14 @@ export function AdminSettingsClient() {
<div className="space-y-2"> <div className="space-y-2">
<Label>支持视频秒数</Label> <Label>支持视频秒数</Label>
<Input <Input
value={formatVideoDurationOptionsInput( type="text"
modelForm.imageGenConfig?.videoDurationOptions inputMode="text"
)} value={videoDurationOptionsInput}
onChange={(e) => { onChange={(e) => {
const nextInput = e.target.value;
setVideoDurationOptionsInput(nextInput);
const durationOptions = parseVideoDurationOptionsInput( const durationOptions = parseVideoDurationOptionsInput(
e.target.value nextInput
); );
setModelForm({ setModelForm({
...modelForm, ...modelForm,
@ -12163,6 +12168,12 @@ export function AdminSettingsClient() {
imageGenConfig: imageGenConfig:
(model as any).imageGenConfig || createDefaultImageGenConfig(), (model as any).imageGenConfig || createDefaultImageGenConfig(),
}); });
setVideoDurationOptionsInput(
formatVideoDurationOptionsInput(
(model as any).imageGenConfig
?.videoDurationOptions
)
);
setEditingModel(model.id); setEditingModel(model.id);
setShowModelDialog(true); setShowModelDialog(true);
}} }}