refactor: remove redundant page view models
This commit is contained in:
@@ -11,13 +11,11 @@ import { isValidPeriod } from "@/shared/lib";
|
||||
type AccountEventsPageViewModel
|
||||
= | {
|
||||
canApply: boolean;
|
||||
draftFrom: null | string;
|
||||
draftTo: null | string;
|
||||
draftPeriod: [null | string, null | string];
|
||||
events: BrokerageEvent[];
|
||||
lastSuccessfulAt?: null | string;
|
||||
onApply: () => void;
|
||||
onDraftFromChange: (value: null | string) => void;
|
||||
onDraftToChange: (value: null | string) => void;
|
||||
onPeriodChange: (value: [null | string, null | string]) => void;
|
||||
onReset: () => void;
|
||||
partial?: boolean;
|
||||
refreshError: boolean;
|
||||
@@ -47,8 +45,12 @@ function useAccountEventsPageViewModel(
|
||||
? urlTo
|
||||
: null;
|
||||
|
||||
const [draftFrom, setDraftFrom] = useState<null | string>(appliedFrom);
|
||||
const [draftTo, setDraftTo] = useState<null | string>(appliedTo);
|
||||
const [draftPeriod, setDraftPeriod] = useState<[
|
||||
null | string,
|
||||
null | string,
|
||||
]>([appliedFrom, appliedTo]);
|
||||
|
||||
const [draftFrom, draftTo] = draftPeriod;
|
||||
useEffect(() => {
|
||||
if (isValidUrlPeriod) return;
|
||||
const normalized = new URLSearchParams(searchParameters);
|
||||
@@ -64,8 +66,7 @@ function useAccountEventsPageViewModel(
|
||||
|
||||
if (previousPeriod[0] !== appliedFrom || previousPeriod[1] !== appliedTo) {
|
||||
setPreviousPeriod([appliedFrom, appliedTo]);
|
||||
setDraftFrom(appliedFrom);
|
||||
setDraftTo(appliedTo);
|
||||
setDraftPeriod([appliedFrom, appliedTo]);
|
||||
}
|
||||
|
||||
const events = useBrokerageEvents(accountId, {
|
||||
@@ -86,8 +87,7 @@ function useAccountEventsPageViewModel(
|
||||
if (events.isLoading) return { state: "loading" };
|
||||
|
||||
const onReset = () => {
|
||||
setDraftFrom(null);
|
||||
setDraftTo(null);
|
||||
setDraftPeriod([null, null]);
|
||||
setSearchParameters({});
|
||||
};
|
||||
|
||||
@@ -105,8 +105,7 @@ function useAccountEventsPageViewModel(
|
||||
canApply:
|
||||
(draftFrom !== appliedFrom || draftTo !== appliedTo)
|
||||
&& isValidPeriod(draftFrom, draftTo),
|
||||
draftFrom,
|
||||
draftTo,
|
||||
draftPeriod,
|
||||
events: events.data.events,
|
||||
lastSuccessfulAt: events.meta?.lastSuccessfulAt,
|
||||
onApply: () => {
|
||||
@@ -116,8 +115,7 @@ function useAccountEventsPageViewModel(
|
||||
...(draftTo && { to: draftTo }),
|
||||
});
|
||||
},
|
||||
onDraftFromChange: setDraftFrom,
|
||||
onDraftToChange: setDraftTo,
|
||||
onPeriodChange: setDraftPeriod,
|
||||
onReset,
|
||||
partial: events.meta?.availability !== "complete",
|
||||
refreshError: events.isError || sync.sourceError || sync.transportError,
|
||||
|
||||
Reference in New Issue
Block a user