import { useAccount } from "@/lib/providers/jazz-provider" import { cn } from "@/lib/utils" import { useEffect, useState } from "react" import { useAuth, useUser } from "@clerk/tanstack-start" import { LaIcon } from "~/components/custom/la-icon" import { Link } from "@tanstack/react-router" import { getFeatureFlag } from "~/actions" export const JournalSection: React.FC = () => { const { me } = useAccount() const journalEntries = me?.root?.journalEntries const [, setIsFetching] = useState(false) const [isFeatureActive, setIsFeatureActive] = useState(false) const { isLoaded, isSignedIn } = useAuth() const { user } = useUser() useEffect(() => { async function checkFeatureFlag() { setIsFetching(true) if (isLoaded && isSignedIn) { const response = await getFeatureFlag({ name: "JOURNAL" }) if ( user?.emailAddresses.some((email) => response?.emails.includes(email.emailAddress), ) ) { setIsFeatureActive(true) } setIsFetching(false) } } checkFeatureFlag() }, [isLoaded, isSignedIn, user]) if (!isLoaded || !isSignedIn) { return
Loading...
} if (!me) return null if (!isFeatureActive) { return null } return (
{journalEntries && journalEntries.length > 0 && ( )}
) } interface JournalHeaderProps { entriesCount: number } const JournalSectionHeader: React.FC = ({ entriesCount, }) => (

Journal {entriesCount > 0 && ( ({entriesCount}) )}

) interface JournalEntryListProps { entries: any[] } const JournalEntryList: React.FC = ({ entries }) => { return (
{entries.map((entry, index) => ( ))}
) } interface JournalEntryItemProps { entry: any } const JournalEntryItem: React.FC = ({ entry }) => (

{entry.title}

)