diff --git a/web/src/app/schedules/ScheduleDetails.tsx b/web/src/app/schedules/ScheduleDetails.tsx index 6076a0f516..c346a82614 100644 --- a/web/src/app/schedules/ScheduleDetails.tsx +++ b/web/src/app/schedules/ScheduleDetails.tsx @@ -18,6 +18,7 @@ import { useIsWidthDown } from '../util/useWidth' import { TempSchedValue, defaultTempSchedValue } from './temp-sched/sharedUtils' import { Redirect } from 'wouter' import { useScheduleTZ } from './useScheduleTZ' +import { useURLParam } from '../actions' const query = gql` fragment ScheduleTitleQuery on Schedule { @@ -68,6 +69,10 @@ export type ScheduleDetailsProps = { export default function ScheduleDetails({ scheduleID, }: ScheduleDetailsProps): React.JSX.Element { + const [newOverride] = useURLParam('new-override', '') + const newValidOverride = ['add', 'remove', 'replace'].includes(newOverride) + ? newOverride + : '' const [showEdit, setShowEdit] = useState(false) const [showDelete, setShowDelete] = useState(false) @@ -91,7 +96,9 @@ export default function ScheduleDetails({ useState(null) const onDeleteTempSched = useCallback(setDeleteTempSchedule, []) const [overrideDialog, setOverrideDialog] = useState( - null, + newValidOverride + ? { variantOptions: [newValidOverride], removeUserReadOnly: false } + : null, ) const [{ data: _data, error }] = useQuery({ diff --git a/web/src/app/schedules/ScheduleOverrideDialog.jsx b/web/src/app/schedules/ScheduleOverrideDialog.jsx index 023cd44028..bba297419d 100644 --- a/web/src/app/schedules/ScheduleOverrideDialog.jsx +++ b/web/src/app/schedules/ScheduleOverrideDialog.jsx @@ -45,7 +45,7 @@ export default function ScheduleOverrideDialog(props) { ...(props?.defaultValue ?? {}), } - const [step, setStep] = useState(0) + const [step, setStep] = useState(variantOptions.length === 1 ? 1 : 0) const [value, setValue] = useState(initialValue) const [fieldErrors, setFieldErrors] = useState([]) const [activeVariant, setActiveVariant] = useState(variantOptions[0])