feat: connect search and project settings

This commit is contained in:
2026-07-21 17:16:45 +08:00
parent 2275d388a7
commit 000de4bcdb
14 changed files with 698 additions and 141 deletions

View File

@@ -7,6 +7,7 @@ import { ProjectRail } from './projects/project-rail'
import { ProjectSidebar, type ProjectSettingsUpdate } from './projects/project-sidebar'
import { ProjectStatusbar } from './projects/project-statusbar'
import { ProjectTopbar } from './projects/project-topbar'
import type { SearchResultDTO } from '../api/search'
import type { ChannelKey, Project, ProjectWorkspace, Theme, WorkbenchView } from './projects/project-types'
const { Content } = Layout
@@ -33,6 +34,13 @@ export function ProjectPage({
onUpdateWorkspaceTask,
onUpdateProject,
onCreateProjectTag,
searchQuery,
searchLoading,
searchSearched,
searchResults,
onSearchQueryChange,
onSearch,
onSelectSearchResult,
}: {
activeView: WorkbenchView
activeWorkspace: ProjectWorkspace
@@ -53,8 +61,15 @@ export function ProjectPage({
onUploadSource: () => void
onCreateCronPlan: () => void
onUpdateWorkspaceTask: (update: WorkspaceTaskUpdate) => void
onUpdateProject: (update: ProjectSettingsUpdate) => void
onUpdateProject: (update: ProjectSettingsUpdate) => Promise<void>
onCreateProjectTag: (name: string) => void
searchQuery: string
searchLoading: boolean
searchSearched: boolean
searchResults: SearchResultDTO[]
onSearchQueryChange: (value: string) => void
onSearch: () => void
onSelectSearchResult: (result: SearchResultDTO) => void
}) {
const isProject = activeView === 'project'
const projects = workspaces.map((workspace) => workspace.project)
@@ -72,7 +87,17 @@ export function ProjectPage({
return (
<Layout className="workbench-shell">
<ProjectTopbar theme={theme} onToggleTheme={onToggleTheme} />
<ProjectTopbar
theme={theme}
onToggleTheme={onToggleTheme}
query={searchQuery}
loading={searchLoading}
searched={searchSearched}
results={searchResults}
onQueryChange={onSearchQueryChange}
onSearch={onSearch}
onSelectSearchResult={onSelectSearchResult}
/>
<Layout className="workbench-main" hasSider>
<ProjectRail