1// SPDX-License-Identifier: GPL-2.0-only
2// Copyright (c) 2025-present FERS Contributors (see AUTHORS.md).
4import { Box, Typography, Divider } from '@mui/material';
5import { useScenarioStore, findItemInStore } from '@/stores/scenarioStore';
6import { assertNever } from '@/utils/typeUtils';
7import { GlobalParametersInspector } from './inspectors/GlobalParametersInspector';
8import { WaveformInspector } from './inspectors/WaveformInspector';
9import { TimingInspector } from './inspectors/TimingInspector';
10import { AntennaInspector } from './inspectors/AntennaInspector';
11import { PlatformInspector } from './inspectors/PlatformInspector';
13function InspectorContent() {
14 const selectedItem = useScenarioStore((state) =>
15 findItemInStore(state, state.selectedItemId)
20 <Typography color="text.secondary">
21 Select an item to see its properties.
26 const renderInspector = () => {
27 switch (selectedItem.type) {
28 case 'GlobalParameters':
29 return <GlobalParametersInspector item={selectedItem} />;
31 return <WaveformInspector item={selectedItem} />;
33 return <TimingInspector item={selectedItem} />;
35 return <AntennaInspector item={selectedItem} />;
37 return <PlatformInspector item={selectedItem} />;
39 return assertNever(selectedItem);
45 <Typography variant="overline" color="text.secondary">
48 <Divider sx={{ my: 1 }} />
54export default function PropertyInspector() {
60 flexDirection: 'column',
63 <Box sx={{ flexShrink: 0, px: 2, pt: 2, pb: 1 }}>
64 <Typography variant="h6">Properties</Typography>
66 <Divider sx={{ mx: 2 }} />