auto-save 2026-05-21 02:36 (~2)
This commit is contained in:
@@ -1888,6 +1888,13 @@
|
||||
"message": "auto-save 2026-05-21 02:25 (~2)",
|
||||
"hash": "7524b3c",
|
||||
"files_changed": 2
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-21T02:30:46+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-21 02:30 (~2)",
|
||||
"hash": "9520d93",
|
||||
"files_changed": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -384,7 +384,8 @@ export default function Home() {
|
||||
const [uploadLoading, setUploadLoading] = useState(false);
|
||||
const [provider, setProvider] = useState<string>('?');
|
||||
const [sidebarOpen, setSidebarOpen] = useState(true);
|
||||
const [activeAssetPanel, setActiveAssetPanel] = useState('pack-patent');
|
||||
const [activeAssetPanel, setActiveAssetPanel] = useState(DEFAULT_ASSET_PANEL);
|
||||
const [restoreAttempted, setRestoreAttempted] = useState(false);
|
||||
|
||||
const refreshSessions = useCallback(async () => {
|
||||
const r = await fetch('/api/sessions');
|
||||
@@ -394,7 +395,24 @@ export default function Home() {
|
||||
}, []);
|
||||
|
||||
useEffect(() => { refreshSessions(); }, [refreshSessions]);
|
||||
useEffect(() => { setActiveAssetPanel('pack-patent'); }, [current?.id]);
|
||||
|
||||
useEffect(() => {
|
||||
if (restoreAttempted || !sessions.length) return;
|
||||
const persisted = readPersistedProjectState();
|
||||
if (persisted.sessionId) {
|
||||
const restored = sessions.find(session => session.id === persisted.sessionId);
|
||||
if (restored) {
|
||||
setCurrent(restored);
|
||||
setActiveAssetPanel(persisted.panel);
|
||||
}
|
||||
}
|
||||
setRestoreAttempted(true);
|
||||
}, [restoreAttempted, sessions]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!current) return;
|
||||
writePersistedProjectState(current.id, activeAssetPanel);
|
||||
}, [activeAssetPanel, current]);
|
||||
|
||||
async function handleGenerate(opts: { prompt: string; refImages: string[]; count: number; style?: string }) {
|
||||
setLoading(true);
|
||||
@@ -658,7 +676,11 @@ export default function Home() {
|
||||
sessions={sessions}
|
||||
currentId={current?.id ?? null}
|
||||
onPick={id => setCurrent(sessions.find(s => s.id === id) ?? null)}
|
||||
onNew={() => setCurrent(null)}
|
||||
onNew={() => {
|
||||
setCurrent(null);
|
||||
setActiveAssetPanel(DEFAULT_ASSET_PANEL);
|
||||
clearPersistedProjectState();
|
||||
}}
|
||||
/>
|
||||
<main className="project-stage min-w-0 flex-1">
|
||||
<div className="project-stage-inner">
|
||||
@@ -729,7 +751,7 @@ export default function Home() {
|
||||
<PackPanel
|
||||
session={current}
|
||||
activeNav={activeAssetPanel}
|
||||
onActiveNavChange={setActiveAssetPanel}
|
||||
onActiveNavChange={id => setActiveAssetPanel(normalizeAssetPanel(id))}
|
||||
textLoading={textLoading}
|
||||
videoLoading={videoLoading}
|
||||
onGenerateText={handleGenerateText}
|
||||
|
||||
Reference in New Issue
Block a user