fix: unlock new agent project workspace
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-05-18 19:39:28 +08:00
parent 54c6b4a74e
commit 5b618679af
2 changed files with 63 additions and 2 deletions

View File

@ -3813,8 +3813,8 @@ export default function CanvasEditorLegacyPage({ params }: PageProps) {
setIsAgentProjectMenuOpen(false);
setIsAgentProjectLoading(true);
setLoadedAgentProjectId(null);
const localDraft = readAgentProjectDraftSnapshot(agentProjectId);
try {
const localDraft = readAgentProjectDraftSnapshot(agentProjectId);
const result = await agentProjectService.getProject(agentProjectId);
if (!result.success || !result.data) {
if (isUnauthorizedApiError(result.error)) {
@ -3860,6 +3860,14 @@ export default function CanvasEditorLegacyPage({ params }: PageProps) {
});
} catch (error) {
if (!cancelled) {
hydrateAgentProjectSnapshot({
projectId: agentProjectId,
title: localDraft?.title,
thumbnail: localDraft?.thumbnail,
projectState:
localDraft?.projectState ||
createEmptyAgentGenerationProjectPersistedState(),
});
toast.error(
error instanceof Error ? error.message : "加载生图项目失败"
);
@ -3888,6 +3896,28 @@ export default function CanvasEditorLegacyPage({ params }: PageProps) {
}
}, [isAgentProjectSheetOpen]);
useEffect(() => {
if (!isAgentMode) return;
if (isLoginDialogOpen || isAgentProjectSheetOpen || isAgentProjectMenuOpen) {
return;
}
const restoreBodyPointerEvents = () => {
if (document.body.style.pointerEvents === "none") {
document.body.style.pointerEvents = "";
}
};
restoreBodyPointerEvents();
const timeoutId = window.setTimeout(restoreBodyPointerEvents, 120);
return () => window.clearTimeout(timeoutId);
}, [
isAgentMode,
isAgentProjectMenuOpen,
isAgentProjectSheetOpen,
isLoginDialogOpen,
]);
useEffect(() => {
if (
!isAgentMode ||
@ -9170,6 +9200,26 @@ export default function CanvasEditorLegacyPage({ params }: PageProps) {
</div>
) : null;
const agentProjectOpeningScreen =
isAgentMode && hasActiveAgentProject && !hasLoadedCurrentAgentProject ? (
<div className="min-h-screen bg-[#050607] text-white">
<AgentCanvasTopNavDark
activeKey="agent"
batchProcessingEnabled={isBatchProcessingEnabled}
rightSlot={agentProjectNavSlot}
siteLogo={siteSettingsData?.siteLogo}
siteLogoDark={siteSettingsData?.siteLogoDark}
siteName={siteSettingsData?.siteName}
/>
<main className="flex min-h-screen items-center justify-center px-6 pt-24 pb-8">
<CanvasLazyPanelLoader
className="min-h-0 bg-transparent text-white/65"
label="正在打开生图项目..."
/>
</main>
</div>
) : null;
const workflowStylePanel = useMemo(
() => (
<AgentWorkflowPanelDarkV2
@ -9206,6 +9256,16 @@ export default function CanvasEditorLegacyPage({ params }: PageProps) {
);
}
if (agentProjectOpeningScreen) {
return (
<>
{agentProjectOpeningScreen}
{loginDialogElement}
{projectLoadingBadge}
</>
);
}
return (
<>
<AgentGenerationWorkspaceDarkV2
@ -9258,6 +9318,7 @@ export default function CanvasEditorLegacyPage({ params }: PageProps) {
onResultPreviewUrlsChange={handleAgentResultPreviewUrlsChange}
onWorkspaceStateChange={setAgentWorkspaceState}
projectId={agentProjectId}
key={agentProjectId}
resultCollections={agentProjectResultCollections}
selectedAgentPresetId={
isAgentWorkspaceEnabled ? effectiveSelectedAgentPresetId : null

View File

@ -45,7 +45,7 @@ export function AgentWorkflowParticleScatter({
>
<iframe
aria-hidden="true"
className="absolute border-0 bg-transparent"
className="pointer-events-none absolute border-0 bg-transparent"
loading="eager"
src={src}
style={{