Skip to content

Commit

Permalink
move preset autocomplete to appbar
Browse files Browse the repository at this point in the history
  • Loading branch information
tizayi committed Sep 5, 2023
1 parent 8be69f1 commit 04f6f29
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 38 deletions.
38 changes: 37 additions & 1 deletion src/basicAppBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,36 @@ import Toolbar from "@mui/material/Toolbar";
import Typography from "@mui/material/Typography";
import IconButton from "@mui/material/IconButton";
import MenuIcon from "@mui/icons-material/Menu";
import { Drawer } from "@mui/material";
import { Autocomplete, Drawer, TextField } from "@mui/material";
import SideMenu from "./sideMenu";
import { useBeamlineConfigStore } from "./data-entry/beamlineconfigStore";
import { presetList } from "./presets/presetManager";
import { useBeamstopStore } from "./data-entry/beamstopStore";
import { useCameraTubeStore } from "./data-entry/cameraTubeStore";
import { useDetectorStore } from "./data-entry/detectorStore";

export default function BasicAppBar(): JSX.Element {
const [state, setState] = React.useState({ menuOpen: false });
const toggleDrawer = (open: boolean) => () => {
setState({ menuOpen: open });
};

const preset = useBeamlineConfigStore((state) => state.preset);
const updateBeamstop = useBeamstopStore((state) => state.updateBeamstop);
const updateCameraTube = useCameraTubeStore((state) => state.updateCameraTube);
const updateBeamlineConfig = useBeamlineConfigStore((state) => state.updateBeamlineConfig);
const updatePreset = useBeamlineConfigStore((state) => state.updatePreset);
const updateDetector = useDetectorStore((state) => state.updateDetector);
const handlePreset = (preset: string) => {
const { beamstop, cameraTube, detector, ...beamlineConfig } = presetList[preset];
updateDetector(detector);
updateBeamstop(beamstop);
updateCameraTube(cameraTube);
updateBeamlineConfig(beamlineConfig);
updatePreset(preset)
};


return (
<Box sx={{ flexGrow: 2 }}>
<AppBar position="static">
Expand Down Expand Up @@ -45,6 +67,20 @@ export default function BasicAppBar(): JSX.Element {
<Typography variant="h6" component="div" sx={{ flexGrow: 1 }}>
Dedi Web
</Typography>
<Autocomplete
size="small"
disablePortal
id="combo-box-demo"
options={Object.keys(presetList)}
value={preset}
sx={{ width: 300 }}
renderInput={(params) => (
<TextField {...params} label="choose beamline preset" />
)}
onChange={(_, value) => {
value ? handlePreset(value) : {};
}}
/>
</Toolbar>
</AppBar>
</Box>
Expand Down
38 changes: 1 addition & 37 deletions src/data-entry/dataSideBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@ import BeamStopDataEntry from "./beamstop";
import CameraTubeDataEntry from "./cameraTube";
import { useDetectorStore } from "./detectorStore";
import BeampropertiesDataEntry from "./beamProperties";
import { presetList } from "../presets/presetManager";
import { useBeamlineConfigStore } from "./beamlineconfigStore";
import { useBeamstopStore } from "./beamstopStore";
import { useCameraTubeStore } from "./cameraTubeStore";

export default function DataSideBar(): JSX.Element {
const name = useDetectorStore((state) => state.name);
Expand All @@ -35,44 +31,12 @@ export default function DataSideBar(): JSX.Element {
const updateUnits = useDetectorStore((state) => state.updateUnits);
const updateDetector = useDetectorStore((state) => state.updateDetector);

const preset = useBeamlineConfigStore((state) => state.preset);
const updateBeamstop = useBeamstopStore((state) => state.updateBeamstop)
const updateCameraTube = useCameraTubeStore((state) => state.updateCameraTube)
const updateBeamlineConfig = useBeamlineConfigStore((state) => state.updateBeamlineConfig)
const updatePreset = useBeamlineConfigStore((state) => state.updatePreset)
const handlePreset = (preset: string) => {
const { beamstop, cameraTube, detector, ...beamlineConfig } = presetList[preset];
updateDetector(detector);
updateBeamstop(beamstop);
updateCameraTube(cameraTube);
updateBeamlineConfig(beamlineConfig);
updatePreset(preset)
}


return (
<Card sx={{ height: 1 }}>
<CardContent>
<Stack spacing={1}>
<Typography variant="h6">Configuration</Typography>
<Divider></Divider>
<Typography> Predefined Configuration Templates</Typography>
<Stack direction={"row"}>
<Autocomplete
size="small"
disablePortal
id="combo-box-demo"
options={Object.keys(presetList)}
value={preset}
sx={{ width: 300 }}
renderInput={(params) => (
<TextField {...params} label="choose beamline config" />
)}
onChange={(_, value) => {
value ? handlePreset(value) : {};
}}
/>
</Stack>
<Divider />
<Typography variant="h6">Detector</Typography>
<Autocomplete
size="small"
Expand Down

0 comments on commit 04f6f29

Please sign in to comment.