Reuse canonical home and settings on Node and admit local K1 viewer
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { EnvironmentSettingsWindow, LandingStage } from "@nodedc/ui-react";
|
||||
import type { EnvironmentPage } from "@nodedc/ui-core";
|
||||
import { views, type ViewId } from "./nodeModel";
|
||||
import type { usePresentation } from "./usePresentation";
|
||||
|
||||
const surfaces = [{ id: "home", home: true, description: "Главная страница продукта", actions: views }];
|
||||
|
||||
export function Home({ page, openView }: { page: EnvironmentPage; openView: (id: ViewId) => void }) {
|
||||
const actions = [page.primaryWorkspaceId, page.secondaryWorkspaceId].flatMap(id => {
|
||||
const view = views.find(item => item.id === id);
|
||||
return view ? [{ id: view.id, label: view.label, icon: view.icon, onSelect: () => openView(view.id) }] : [];
|
||||
});
|
||||
return <LandingStage page={page} actions={actions} />;
|
||||
}
|
||||
|
||||
export function HomeSettings({ open, onClose, presentation }: {
|
||||
open: boolean; onClose: () => void; presentation: ReturnType<typeof usePresentation>;
|
||||
}) {
|
||||
return <EnvironmentSettingsWindow productName="Mission Core Node" open={open} onClose={onClose}
|
||||
surfaces={surfaces} settings={presentation.settings} state={presentation.state} error={presentation.error}
|
||||
onSave={presentation.save} onUpload={presentation.upload} />;
|
||||
}
|
||||
Reference in New Issue
Block a user