/* * UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment * Copyright (C) 2020-2025, UChicago Argonne, LLC. All rights reserved. * Released under the modified BSD license. See COPYING.md for more details. */ import SectionHeader from "../Common/SectionHeader/SectionHeader"; import Form from "../Common/Forms/Form"; import TextInputRow from "../Common/Forms/TextInputRow"; import { UnitCommitmentScenario } from "../../core/fixtures"; import { changeParameter, changeTimeHorizon, changeTimeStep, } from "../../core/Operations/parameterOps"; interface ParametersProps { scenario: UnitCommitmentScenario; onError: (msg: string) => void; onDataChanged: (scenario: UnitCommitmentScenario) => void; } function Parameters(props: ParametersProps) { const onDataChanged = (key: string, value: string) => { let newScenario, err; if (key === "Time horizon (h)") { [newScenario, err] = changeTimeHorizon(props.scenario, value); } else if (key === "Time step (min)") { [newScenario, err] = changeTimeStep(props.scenario, value); } else { [newScenario, err] = changeParameter(props.scenario, key, value); } if (err) { props.onError(err.message); return err; } props.onDataChanged(newScenario); return null; }; return (