feat(web-ui): pass search-select handlers from App to Topbar
Wires onOpenAsset and onOpenProject through Topbar so that selecting an asset/project from the global search opens the asset detail or navigates to the project view. Adds openProjectFromAnywhere helper.
This commit is contained in:
parent
45c0e0f914
commit
61d02d522b
1 changed files with 10 additions and 2 deletions
|
|
@ -24,6 +24,7 @@ function App() {
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const navigate = (id) => { setOpenAsset(null); setRoute(id); };
|
const navigate = (id) => { setOpenAsset(null); setRoute(id); };
|
||||||
|
const openProjectFromAnywhere = (p) => { setOpenAsset(null); setOpenProject(p); setRoute('library'); };
|
||||||
|
|
||||||
const crumbs = React.useMemo(() => {
|
const crumbs = React.useMemo(() => {
|
||||||
if (openAsset) return [
|
if (openAsset) return [
|
||||||
|
|
@ -67,7 +68,7 @@ function App() {
|
||||||
switch (route) {
|
switch (route) {
|
||||||
case 'home': content = <Home navigate={navigate} />; break;
|
case 'home': content = <Home navigate={navigate} />; break;
|
||||||
case 'library': content = <Library navigate={navigate} onOpenAsset={setOpenAsset} openProject={openProject} />; break;
|
case 'library': content = <Library navigate={navigate} onOpenAsset={setOpenAsset} openProject={openProject} />; break;
|
||||||
case 'projects': content = <Projects navigate={navigate} onOpenProject={(p) => { setOpenProject(p); setRoute('library'); }} />; break;
|
case 'projects': content = <Projects navigate={navigate} onOpenProject={openProjectFromAnywhere} />; break;
|
||||||
case 'upload': content = <Upload navigate={navigate} />; break;
|
case 'upload': content = <Upload navigate={navigate} />; break;
|
||||||
case 'recorders': content = <Recorders navigate={navigate} onNew={() => setShowNewRecorder(true)} />; break;
|
case 'recorders': content = <Recorders navigate={navigate} onNew={() => setShowNewRecorder(true)} />; break;
|
||||||
case 'schedule': content = <Schedule navigate={navigate} />; break;
|
case 'schedule': content = <Schedule navigate={navigate} />; break;
|
||||||
|
|
@ -88,7 +89,14 @@ function App() {
|
||||||
<div className="app" data-density="comfortable" data-grid-size="md" data-sidebar="expanded">
|
<div className="app" data-density="comfortable" data-grid-size="md" data-sidebar="expanded">
|
||||||
<Sidebar active={openAsset ? 'library' : route} onNavigate={navigate} />
|
<Sidebar active={openAsset ? 'library' : route} onNavigate={navigate} />
|
||||||
<div className="main">
|
<div className="main">
|
||||||
{!openAsset && <Topbar crumbs={crumbs} onNavigate={navigate} />}
|
{!openAsset && (
|
||||||
|
<Topbar
|
||||||
|
crumbs={crumbs}
|
||||||
|
onNavigate={navigate}
|
||||||
|
onOpenAsset={setOpenAsset}
|
||||||
|
onOpenProject={openProjectFromAnywhere}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
{content}
|
{content}
|
||||||
</div>
|
</div>
|
||||||
{showNewRecorder && <NewRecorderModal open={showNewRecorder} onClose={() => setShowNewRecorder(false)} />}
|
{showNewRecorder && <NewRecorderModal open={showNewRecorder} onClose={() => setShowNewRecorder(false)} />}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue