Files
Genarrative/src/components/visual-novel-runtime/VisualNovelSettingsPanel.tsx
T
kdletters 1ad25e30f8 收口前端平台组件库能力
新增 PlatformUiKit 通用弹窗、按钮、状态、空态、媒体、表单和标签等公共组件
迁移结果页、创作工作台、认证入口、RPG 暗色面板和运行态弹窗的重复 UI chrome
补充组件测试、页面回归测试、技术文档和 Hermes 共享决策记录
2026-06-10 10:24:18 +08:00

44 lines
1.2 KiB
TypeScript

import { MessageSquareText } from 'lucide-react';
import type { VisualNovelResultDraft } from '../../../packages/shared/src/contracts/visualNovel';
import { PlatformToggleRow } from '../common/PlatformToggleRow';
type VisualNovelSettingsPanelProps = {
draft: VisualNovelResultDraft;
textModeEnabled: boolean;
onTextModeChange?: (enabled: boolean) => void;
};
export function VisualNovelSettingsPanel({
draft,
textModeEnabled,
onTextModeChange,
}: VisualNovelSettingsPanelProps) {
return (
<div className="space-y-2">
<PlatformToggleRow
label="文本模式"
checked={textModeEnabled}
mode="status"
surface="plain"
icon={<MessageSquareText className="h-4 w-4" />}
onClick={() => onTextModeChange?.(!textModeEnabled)}
/>
<PlatformToggleRow
label="自由输入"
checked={draft.runtimeConfig.allowFreeTextAction}
mode="status"
surface="plain"
/>
<PlatformToggleRow
label="历史重生成"
checked={draft.runtimeConfig.allowHistoryRegeneration}
mode="status"
surface="plain"
/>
</div>
);
}
export default VisualNovelSettingsPanel;