|
|
@@ -10,11 +10,28 @@ export const defaultState = {
|
|
|
export const getInitialState = (): State => {
|
|
|
const now = new Date();
|
|
|
const day = now.toISOString();
|
|
|
+
|
|
|
+ // Las fechas extremas de la temporada de este anio
|
|
|
+ let maxDate = new Date(now.getFullYear(), 2, 31);
|
|
|
+ let minDate = new Date(now.getFullYear() - 1, 9, 1);
|
|
|
+
|
|
|
+ // Si ya empezo la temporada del anio siguiente, movemos las fechas por defecto
|
|
|
+ if (now.getTime() > maxDate.getTime()) {
|
|
|
+ maxDate.setFullYear(maxDate.getFullYear() + 1);
|
|
|
+ minDate.setFullYear(minDate.getFullYear() + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Conseguimos el string yyyy-mm-dd
|
|
|
+ const maxDateString = maxDate.toISOString().slice(0, 10);
|
|
|
+ const minDateString = maxDate.toISOString().slice(0, 10);
|
|
|
+
|
|
|
return {
|
|
|
sector: null,
|
|
|
year: now.getFullYear().toString(),
|
|
|
from: day,
|
|
|
to: day,
|
|
|
+ minDate: minDateString,
|
|
|
+ maxDate: maxDateString,
|
|
|
};
|
|
|
};
|
|
|
|
|
|
@@ -24,6 +41,8 @@ export type State = {
|
|
|
to: string;
|
|
|
from: string;
|
|
|
year: string;
|
|
|
+ maxDate: string;
|
|
|
+ minDate: string;
|
|
|
};
|
|
|
|
|
|
const fixYear = (year: string, dateString: string) =>
|
|
|
@@ -36,6 +55,16 @@ const reducer: Reducer<State, Action> = (state, action) => {
|
|
|
...state,
|
|
|
sector: action.sector!,
|
|
|
};
|
|
|
+ case "SET_MIN_DATE":
|
|
|
+ return {
|
|
|
+ ...state,
|
|
|
+ minDate: action.date ?? "",
|
|
|
+ };
|
|
|
+ case "SET_MAX_DATE":
|
|
|
+ return {
|
|
|
+ ...state,
|
|
|
+ maxDate: action.date ?? "",
|
|
|
+ };
|
|
|
case "SET_TO_CONTROL":
|
|
|
return {
|
|
|
...state,
|