feat(canvas): mount SearchDialog in desktop + mobile canvas shells
Some checks failed
gate-check-v3 / gate-check (pull_request) Failing after 7s
qa-review / approved (pull_request) Failing after 6s
security-review / approved (pull_request) Failing after 7s
sop-checklist-gate / gate (pull_request) Successful in 6s
CI / Detect changes (pull_request) Successful in 9s
sop-tier-check / tier-check (pull_request) Successful in 6s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 14s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 6s
sop-checklist / all-items-acked (pull_request) Bootstrap exception: sop workflow reads base branch YAML
CI / Platform (Go) (pull_request) Failing after 3m15s
CI / Canvas (Next.js) (pull_request) Failing after 5m12s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Failing after 6m53s
CI / all-required (pull_request) Failing after 0s

Adds Cmd+K workspace search to both canvas entry points:
- page.tsx: mounts SearchDialog in the desktop shell
- MobileApp.tsx: mounts SearchDialog in the mobile shell

Phase 20.3: closes the "Workspace search (Cmd+K)" requirement.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Molecule AI · core-uiux 2026-05-13 10:08:57 +00:00 committed by molecule-operator
parent 7c52464bd1
commit c4f0394ae5
2 changed files with 5 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import { useEffect, useState } from "react";
import { Canvas } from "@/components/Canvas";
import { Legend } from "@/components/Legend";
import { CommunicationOverlay } from "@/components/CommunicationOverlay";
import { SearchDialog } from "@/components/SearchDialog";
import { MobileApp } from "@/components/mobile/MobileApp";
import { Spinner } from "@/components/Spinner";
import { connectSocket, disconnectSocket } from "@/store/socket";
@ -118,6 +119,7 @@ export default function Home() {
<Canvas />
<Legend />
<CommunicationOverlay />
<SearchDialog />
{hydrationError && (
<div
role="alert"

View File

@ -20,6 +20,7 @@ import { MobileMe } from "./MobileMe";
import { MobileSpawn } from "./MobileSpawn";
import { usePalette } from "./palette";
import { MobileAccentProvider } from "./palette-context";
import { SearchDialog } from "@/components/SearchDialog";
type Route = "home" | "canvas" | "detail" | "chat" | "comms" | "me";
@ -204,6 +205,8 @@ export function MobileApp() {
{showTabBar && <TabBar dark={dark} active={activeTab} onChange={onTabChange} />}
{showSpawn && <MobileSpawn dark={dark} onClose={() => setShowSpawn(false)} />}
<SearchDialog />
</main>
</MobileAccentProvider>
);