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 | 2x 1x 1x 1x 1x 1x 1x | import { SCREENS } from '@repo/constants/screens';
import { useAuth } from '@/contexts/AuthContext';
import { AppStackScreenProps } from '@/types/navigation';
import { useRequestActions } from './hooks/useRequestActions';
import { useRequestData } from './hooks/useRequestData';
import { useRequestNavigation } from './hooks/useRequestNavigation';
import { useRequestVisibility } from './hooks/useRequestVisibility';
interface UseRequestDetailProps {
id: string;
fromDeepLink?: boolean;
refreshTimeStamp?: number;
navigation: AppStackScreenProps<typeof SCREENS.REQUEST_DETAIL>['navigation'];
}
export const useRequestDetail = ({
id,
fromDeepLink,
refreshTimeStamp,
navigation,
}: UseRequestDetailProps) => {
const { user } = useAuth();
const { request, isLoading, isRefetching } = useRequestData({ id, refreshTimeStamp });
const { requestStatus, requestType, role, visibility } = useRequestVisibility({ request, user });
const {
isSubmitting,
isModalVisible,
note,
noteInputRef,
isNoteValid,
setNote,
handleApprove,
handleReject,
handleCancel,
handleToggleModal,
submitReject,
} = useRequestActions({ id, request, requestType });
const { handlePressBack } = useRequestNavigation({ navigation, fromDeepLink });
return {
request,
isLoading,
isRefetching,
isSubmitting,
isModalVisible,
note,
noteInputRef,
isNoteValid,
setNote,
visibility,
role,
requestStatus,
requestType,
handlePressBack,
handleApprove,
handleReject,
handleCancel,
handleToggleModal,
submitReject,
};
};
|