Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | import { NativeStackScreenProps } from '@react-navigation/native-stack';
export enum ReallocationStep {
OBSERVER = 'ChooseObserver',
DATE = 'ChooseDate',
REASON = 'ChooseReason',
PREVIEW = 'Preview',
ROOM = 'ChooseRoom',
MEAL_REGISTRATION = 'Meal Registration',
}
export type ReallocationV2StackParamList = {
[ReallocationStep.OBSERVER]: undefined;
[ReallocationStep.ROOM]: undefined;
[ReallocationStep.DATE]: undefined;
[ReallocationStep.REASON]: undefined;
[ReallocationStep.PREVIEW]: undefined;
[ReallocationStep.MEAL_REGISTRATION]: undefined;
};
export type ReallocationStackScreenProps<
Screen extends keyof ReallocationV2StackParamList,
> = NativeStackScreenProps<ReallocationV2StackParamList, Screen>;
export type ReallocationShift = 'Morning' | 'Afternoon';
export interface ReallocationV2Form {
observers: string[];
date?: Date;
shift?: ReallocationShift;
room?: string;
originRoom?: string;
reason?: string;
requester?: string;
}
export interface ReallocationV2State {
form: ReallocationV2Form;
isSearchOpen: boolean;
isDatePickerOpen: boolean;
isReasonInputOpen: boolean;
isSubmitting: boolean;
}
export interface ReallocationV2Actions {
toggleObserver: (id: string) => void;
changeDate: (date: Date) => void;
changeShift: (shift: ReallocationShift) => void;
changeReason: (reason: string) => void;
changeRoom: (room: string) => void;
changeOriginRoom: (room: string) => void;
toggleSearch: () => void;
closeSearch: () => void;
closeDatePicker: () => void;
closeReasonInput: () => void;
setDatePickerOpen: (isOpen: boolean) => void;
setReasonInputOpen: (isOpen: boolean) => void;
setSubmitting: (isSubmitting: boolean) => void;
resetObservers: () => void;
}
export interface ReallocationV2ContextValue {
state: ReallocationV2State;
actions: ReallocationV2Actions;
}
export interface ReallocationV2AuthAdapter {
getAccessToken: () => Promise<string | null>;
onUnauthorized?: () => void;
}
export interface ReallocationV2EnvConfig {
baseApiUrl: string;
spaceApiUrl: string;
basicAuthUsername: string;
basicAuthPassword: string;
}
export interface ReallocationV2RemoteProps {
onClose?: () => void;
onSubmitSuccess?: (payload?: unknown) => void;
onSubmitError?: (error: unknown) => void;
setFabOffset?: (offset: number) => void;
auth?: Partial<ReallocationV2AuthAdapter>;
env?: Partial<ReallocationV2EnvConfig>;
featureFlags?: Record<string, boolean>;
}
|