Skip to content

Commit

Permalink
Add editing filter to view for embedded pages.
Browse files Browse the repository at this point in the history
  • Loading branch information
brysonjbest authored and brysonjbest committed Jul 4, 2024
1 parent 5a127a8 commit 4cd070d
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 6 deletions.
6 changes: 4 additions & 2 deletions app/components/ScenarioGenerator/ScenarioGenerator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ interface ScenarioGeneratorProps {
ruleId: string;
jsonFile: string;
rulemap: RuleMap;
editing?: boolean;
}

export default function ScenarioGenerator({
Expand All @@ -29,6 +30,7 @@ export default function ScenarioGenerator({
ruleId,
jsonFile,
rulemap,
editing = true,
}: ScenarioGeneratorProps) {
const [simulationRun, setSimulationRun] = useState(false);
const [newScenarioName, setNewScenarioName] = useState("");
Expand Down Expand Up @@ -101,7 +103,7 @@ export default function ScenarioGenerator({
Simulate ▶
</Button>
<Flex gap={"small"} align="end">
{simulationRun && (
{simulationRun && editing && (
<>
<Input
value={newScenarioName}
Expand All @@ -121,7 +123,7 @@ export default function ScenarioGenerator({
{resultsOfSimulation && <InputOutputTable title="Results" rawData={resultsOfSimulation} rulemap={rulemap} />}
</Flex>
<Flex gap={"small"} vertical>
{scenarioExpectedOutput && (
{scenarioExpectedOutput && editing && (
<InputOutputTable
setRawData={(data) => {
setScenarioExpectedOutput(data);
Expand Down
4 changes: 3 additions & 1 deletion app/components/ScenarioViewer/ScenarioViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ interface ScenarioViewerProps {
setSelectedSubmissionInputs: (data: any) => void;
runSimulation: () => void;
rulemap: RuleMap;
editing?: boolean;
}

export default function ScenarioViewer({
Expand All @@ -23,6 +24,7 @@ export default function ScenarioViewer({
setSelectedSubmissionInputs,
runSimulation,
rulemap,
editing = true,
}: ScenarioViewerProps) {
const [scenariosDisplay, setScenariosDisplay] = useState<Scenario[] | null>(scenarios);
const [selectedScenario, setSelectedScenario] = useState<Scenario | null>(null);
Expand Down Expand Up @@ -96,7 +98,7 @@ export default function ScenarioViewer({
</li>
))}
</ol>
<Button onClick={() => setManageScenarios(!manageScenarios)}>Manage Scenarios</Button>
{editing && <Button onClick={() => setManageScenarios(!manageScenarios)}>Manage Scenarios</Button>}
</>
) : (
<div>No scenarios available</div>
Expand Down
24 changes: 22 additions & 2 deletions app/components/SimulationViewer/SimulationViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,16 @@ interface SimulationViewerProps {
jsonFile: string;
rulemap: RuleMap;
scenarios: Scenario[];
editing?: boolean;
}

export default function SimulationViewer({ ruleId, jsonFile, rulemap, scenarios }: SimulationViewerProps) {
export default function SimulationViewer({
ruleId,
jsonFile,
rulemap,
scenarios,
editing = true,
}: SimulationViewerProps) {
const createRuleMap = (array: any[]) => {
return array.reduce(
(acc, obj) => {
Expand Down Expand Up @@ -83,6 +90,7 @@ export default function SimulationViewer({ ruleId, jsonFile, rulemap, scenarios
resultsOfSimulation={resultsOfSimulation}
runSimulation={runSimulation}
rulemap={rulemap}
editing={editing}
/>
</Flex>
);
Expand All @@ -99,6 +107,7 @@ export default function SimulationViewer({ ruleId, jsonFile, rulemap, scenarios
ruleId={ruleId}
jsonFile={jsonFile}
rulemap={rulemap}
editing={editing}
/>
<Button onClick={handleReset} size="large" type="primary">
Reset ↻
Expand All @@ -123,24 +132,30 @@ export default function SimulationViewer({ ruleId, jsonFile, rulemap, scenarios
key: "1",
label: "Simulate pre-defined test scenarios",
children: scenarioTab,
disabled: false,
},
{
key: "2",
label: "Simulate inputs manually and create new scenarios",
children: scenarioGeneratorTab,
disabled: false,
},
{
key: "3",
label: "Scenario Results",
children: scenarioTestsTab,
disabled: editing ? false : true,
},
{
key: "4",
label: "CSV Tests",
children: csvScenarioTestsTab,
disabled: editing ? false : true,
},
];

const filteredItems = editing ? items : items?.filter((item) => item.disabled !== true) || [];

return (
<Flex gap="large" vertical>
<div className={styles.rulesWrapper}>
Expand All @@ -153,7 +168,12 @@ export default function SimulationViewer({ ruleId, jsonFile, rulemap, scenarios
</div>
<Flex justify="space-between" align="center" className={styles.contentSection}>
<Flex gap="middle" justify="space-between">
<Tabs defaultActiveKey="3" tabBarStyle={{ gap: "10rem" }} items={items} onChange={handleTabChange}></Tabs>
<Tabs
defaultActiveKey={editing ? "3" : "1"}
tabBarStyle={{ gap: "10rem" }}
items={filteredItems}
onChange={handleTabChange}
></Tabs>
</Flex>
</Flex>
</Flex>
Expand Down
2 changes: 1 addition & 1 deletion app/rule/[ruleId]/embedded/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ export default async function Rule({ params: { ruleId } }: { params: { ruleId: s
return <h1>Rule not found</h1>;
}

return <SimulationViewer ruleId={ruleId} rulemap={rulemap} jsonFile={goRulesJSONFilename} scenarios={scenarios} />;
return <SimulationViewer ruleId={ruleId} rulemap={rulemap} jsonFile={goRulesJSONFilename} scenarios={scenarios} editing={false} />;
}

0 comments on commit 4cd070d

Please sign in to comment.