"use client";
import { AppShell } from "../../components/AppShell";
import { RequestAttachmentPreviewModal } from "@/components/requests/RequestAttachmentPreviewModal";
import { RequestComposeModal } from "@/components/requests/RequestComposeModal";
import { RequestDetailModal } from "@/components/requests/RequestDetailModal";
import { RequestListControls } from "@/components/requests/RequestListControls";
import { RequestListSection } from "@/components/requests/RequestListSection";
import { RequestSwipeModePanel } from "@/components/requests/RequestSwipeModePanel";
import { useUser } from "@/contexts/UserContext";
import { Suspense } from "react";
import { useRequestsPage } from "@/hooks/useRequestsPage";
import { useRequestsPageScreen } from "@/hooks/useRequestsPageScreen";
export default function RequestsPage() {
return (
}>
);
}
function RequestsPageFallback() {
return (
);
}
function RequestsPageContent() {
const { user } = useUser();
const h = useRequestsPage(user?.id);
const screen = useRequestsPageScreen({
detailsRequestId: h.detailsRequest?.id,
requests: h.requests,
setDetailsRequest: h.setDetailsRequest,
});
return (
{h.loading ? (
) : h.error ? (
) : (
{h.swipeMode && h.pendingDecisionRequests.length > 0 ? (
h.setSwipeMode(false)}
onReject={h.handleReject}
requests={h.pendingDecisionRequests}
/>
) : (
<>
h.setSwipeMode(true)}
onToggleFilters={() => h.setFiltersOpen((value) => !value)}
ordering={h.ordering}
pendingDecisionCount={h.pendingDecisionRequests.length}
periodFromFilter={h.periodFromFilter}
periodToFilter={h.periodToFilter}
search={h.search}
statusFilter={h.statusFilter}
typeFilter={h.typeFilter}
view={h.view}
/>
>
)}
)}
{h.isModalOpen && (
)}
h.setAttachmentPreview(null)}
/>
);
}