diff --git a/src/pages/policy/input/ParameterEditor.jsx b/src/pages/policy/input/ParameterEditor.jsx index b0038bbaf..44e448f8b 100644 --- a/src/pages/policy/input/ParameterEditor.jsx +++ b/src/pages/policy/input/ParameterEditor.jsx @@ -6,13 +6,14 @@ import { DatePicker, InputNumber, Popover, - Segmented, + Radio, + Select, Space, Switch, Tooltip, } from "antd"; import { getNewPolicyId } from "../../../api/parameters"; -import { createContext, useEffect, useRef, useState } from "react"; +import { createContext, useCallback, useEffect, useRef, useState } from "react"; import { useSearchParams } from "react-router-dom"; import { copySearchParams } from "../../../api/call"; import { capitalize, localeCode } from "../../../lang/format"; @@ -25,8 +26,9 @@ import { import { IntervalMap } from "algorithms/IntervalMap"; import { cmpDates, nextDay, prevDay } from "lang/stringDates"; import moment from "dayjs"; -import { LeftOutlined, RightOutlined, UndoOutlined } from "@ant-design/icons"; +import { EllipsisOutlined, SettingOutlined } from "@ant-design/icons"; import style from "../../../style"; +import { defaultYear } from "../../../data/constants"; const { RangePicker } = DatePicker; /** @@ -38,6 +40,14 @@ const { RangePicker } = DatePicker; * @param {String} props.parameterName * @returns {import("react-markdown/lib/react-markdown").ReactElement} */ + +const DATE_INPUT_MODES = { + DEFAULT: "default", + YEARLY: "yearly", + DATE: "date", + MULTI_YEAR: "multi-year", +}; + export default function ParameterEditor(props) { const { metadata, policy, parameterName } = props; const parameter = metadata.parameters[parameterName]; @@ -57,6 +67,7 @@ export default function ParameterEditor(props) { const [startDate, setStartDate] = useState(defaultStartDate); const [endDate, setEndDate] = useState(defaultEndDate); const [paramChartWidth, setParamChartWidth] = useState(0); + const [dateInputMode, setDateInputMode] = useState(DATE_INPUT_MODES.DEFAULT); useEffect(() => { if (chartContainerRef.current) { @@ -98,6 +109,11 @@ export default function ParameterEditor(props) { description = ""; } + const gridColumns = + dateInputMode === DATE_INPUT_MODES.MULTI_YEAR + ? "auto min-content" + : "auto auto min-content"; + return ( - - - {startDate !== defaultStartDate || endDate !== defaultEndDate ? ( -