tfwm-travel-updates-widget
Version:
A shareable travel updates (disruptions) widget which is shown on the TfWM homepage
54 lines (50 loc) • 1.11 kB
text/typescript
import { DefaultModes, DisruptionIndicatorTypes } from 'sharedTypes';
type FavsStateProps = {
bus: DisruptionIndicatorTypes[];
tram: DisruptionIndicatorTypes[];
train: DisruptionIndicatorTypes[];
roads: DisruptionIndicatorTypes[];
};
export type InitialStateProps = {
editMode: boolean;
isRowExpandedOnMobile: {
bus: boolean;
tram: boolean;
train: boolean;
roads: boolean;
};
hasFavs: boolean;
favs: FavsStateProps;
previousFavs: FavsStateProps;
favsToRemoveOnSave: { mode: DefaultModes; id: string }[];
};
export type ActionType =
| {
type: 'SET_EDIT_MODE';
payload: boolean;
}
| {
type: 'TOGGLE_ROW_VISIBILITY';
payload: { mode: DefaultModes; visible: boolean };
}
| {
type: 'UPDATE_SERVICES';
payload: {
mode: DefaultModes;
data: DisruptionIndicatorTypes[];
};
}
| {
type: 'REMOVE_SERVICE';
payload: {
mode: DefaultModes;
id: string;
};
}
| {
type: 'CANCEL_STATE';
payload: FavsStateProps;
}
| {
type: 'SAVE_NEW_STATE';
};