umami/src/app/(main)/websites/[websiteId]/sessions/SessionModal.tsx
Mike Cao ddc7affa6a
Some checks failed
Create docker images (cloud) / Build, push, and deploy (push) Has been cancelled
Node.js CI / build (postgresql, 18.18, 10) (push) Has been cancelled
More mobile fixes.
2025-10-18 02:20:11 -07:00

39 lines
1 KiB
TypeScript

import { Dialog, Modal, ModalProps, Column } from '@umami/react-zen';
import { SessionProfile } from '@/app/(main)/websites/[websiteId]/sessions/SessionProfile';
import { useNavigation } from '@/components/hooks';
export interface SessionModalProps extends ModalProps {
websiteId: string;
}
export function SessionModal({ websiteId, ...props }: SessionModalProps) {
const {
router,
query: { session },
updateParams,
} = useNavigation();
const handleOpenChange = (isOpen: boolean) => {
if (!isOpen) {
router.push(updateParams({ session: undefined }));
}
};
return (
<Modal
placement="bottom"
offset="80px"
isOpen={!!session}
onOpenChange={handleOpenChange}
isDismissable
{...props}
>
<Column height="100%" maxWidth="1320px" style={{ margin: '0 auto' }}>
<Dialog variant="sheet">
<Column padding="6">
<SessionProfile websiteId={websiteId} sessionId={session} />
</Column>
</Dialog>
</Column>
</Modal>
);
}