import type { NextPage } from "next"; import { useRouter } from "next/router"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChevronLeft } from "@fortawesome/pro-regular-svg-icons"; import clsx from "clsx"; import { withPageOnboardingRequired } from "../../../lib/session-helpers"; import Layout from "../../components/layout"; import useUser from "../../hooks/use-user"; import { findConversation } from "../../database/sms"; import { decrypt } from "../../database/_encryption"; import { findCustomer } from "../../database/customer"; import type { Sms } from "../../database/_types"; import { SmsType } from "../../database/_types"; type Props = { recipient: string; conversation: Sms[]; }; const Messages: NextPage = ({ conversation }) => { const { userProfile } = useUser(); const router = useRouter(); const pageTitle = `Messages with ${router.query.recipient}`; console.log("userProfile", userProfile); if (!userProfile) { return Loading...; } return (
Back
    {conversation.map(message => { return (
  • {message.content}
  • ) })}
); }; export const getServerSideProps = withPageOnboardingRequired( async (context, user) => { const recipient = context.params?.recipient; if (!recipient || Array.isArray(recipient)) { return { redirect: { destination: "/messages", permanent: false, }, }; } const customer = await findCustomer(user.id); const conversation = await findConversation(user.id, recipient); console.log("conversation", conversation); console.log("recipient", recipient); return { props: { recipient, conversation: conversation.map(message => ({ ...message, content: decrypt(message.content, customer.encryptionKey), })), }, }; }, ); export default Messages;