shellphone.app/app/messages/pages/messages.tsx

35 lines
1.1 KiB
TypeScript

import { Suspense, useState } from "react";
import type { BlitzPage } from "blitz";
import { Routes } from "blitz";
import { useAtom } from "jotai";
import Layout from "../../core/layouts/layout";
import ConversationsList from "../components/conversations-list";
import NewMessageButton from "../components/new-message-button";
import NewMessageBottomSheet, { bottomSheetOpenAtom } from "../components/new-message-bottom-sheet";
import useRequireOnboarding from "../../core/hooks/use-require-onboarding";
const Messages: BlitzPage = () => {
useRequireOnboarding();
const setIsOpen = useAtom(bottomSheetOpenAtom)[1];
return (
<>
<div className="flex flex-col space-y-6 p-6">
<h2 className="text-3xl font-bold">Messages</h2>
</div>
<Suspense fallback="Loading...">
<ConversationsList />
</Suspense>
<NewMessageButton onClick={() => setIsOpen(true)} />
<NewMessageBottomSheet />
</>
);
};
Messages.getLayout = (page) => <Layout title="Messages">{page}</Layout>;
Messages.authenticate = { redirectTo: Routes.SignIn() };
export default Messages;