fix agent project menu closing after actions
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-03-25 23:08:22 +08:00
parent 2e87ab91d3
commit 54a4e15cf2

View File

@ -345,6 +345,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
const [isAgentProjectLoading, setIsAgentProjectLoading] = useState(false); const [isAgentProjectLoading, setIsAgentProjectLoading] = useState(false);
const [isAgentProjectSaving, setIsAgentProjectSaving] = useState(false); const [isAgentProjectSaving, setIsAgentProjectSaving] = useState(false);
const [isAgentProjectSheetOpen, setIsAgentProjectSheetOpen] = useState(false); const [isAgentProjectSheetOpen, setIsAgentProjectSheetOpen] = useState(false);
const [isAgentProjectMenuOpen, setIsAgentProjectMenuOpen] = useState(false);
const [workflowHydrationSource, setWorkflowHydrationSource] = useState< const [workflowHydrationSource, setWorkflowHydrationSource] = useState<
"pending" | "project" | "local" | "empty" "pending" | "project" | "local" | "empty"
>("pending"); >("pending");
@ -879,6 +880,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
let cancelled = false; let cancelled = false;
const loadAgentProject = async () => { const loadAgentProject = async () => {
setIsAgentProjectMenuOpen(false);
setIsAgentProjectLoading(true); setIsAgentProjectLoading(true);
try { try {
const result = await agentProjectService.getProject(agentProjectId); const result = await agentProjectService.getProject(agentProjectId);
@ -932,6 +934,12 @@ export default function CanvasEditorPage({ params }: PageProps) {
}; };
}, [agentProjectId, requestedAgentMode]); }, [agentProjectId, requestedAgentMode]);
useEffect(() => {
if (isAgentProjectSheetOpen) {
setIsAgentProjectMenuOpen(false);
}
}, [isAgentProjectSheetOpen]);
useEffect(() => { useEffect(() => {
if (!isAgentMode || !agentProjectId || isAgentProjectLoading) return; if (!isAgentMode || !agentProjectId || isAgentProjectLoading) return;
@ -1798,7 +1806,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
</span> </span>
</div> </div>
<DropdownMenu> <DropdownMenu open={isAgentProjectMenuOpen} onOpenChange={setIsAgentProjectMenuOpen}>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button <Button
type="button" type="button"
@ -1823,6 +1831,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
className="cursor-pointer text-white focus:bg-white/10 focus:text-white" className="cursor-pointer text-white focus:bg-white/10 focus:text-white"
onSelect={(event) => { onSelect={(event) => {
event.preventDefault(); event.preventDefault();
setIsAgentProjectMenuOpen(false);
void handleCreateAgentProject(); void handleCreateAgentProject();
}} }}
> >
@ -1834,6 +1843,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
className="cursor-pointer text-white focus:bg-white/10 focus:text-white" className="cursor-pointer text-white focus:bg-white/10 focus:text-white"
onSelect={(event) => { onSelect={(event) => {
event.preventDefault(); event.preventDefault();
setIsAgentProjectMenuOpen(false);
void handleSaveAsAgentProject(); void handleSaveAsAgentProject();
}} }}
> >
@ -1845,6 +1855,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
className="cursor-pointer text-white focus:bg-white/10 focus:text-white" className="cursor-pointer text-white focus:bg-white/10 focus:text-white"
onSelect={(event) => { onSelect={(event) => {
event.preventDefault(); event.preventDefault();
setIsAgentProjectMenuOpen(false);
void handleRenameCurrentAgentProject(); void handleRenameCurrentAgentProject();
}} }}
> >
@ -1856,6 +1867,7 @@ export default function CanvasEditorPage({ params }: PageProps) {
className="cursor-pointer text-white focus:bg-white/10 focus:text-white" className="cursor-pointer text-white focus:bg-white/10 focus:text-white"
onSelect={(event) => { onSelect={(event) => {
event.preventDefault(); event.preventDefault();
setIsAgentProjectMenuOpen(false);
setIsAgentProjectSheetOpen(true); setIsAgentProjectSheetOpen(true);
}} }}
> >