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