import { cn } from "@/lib/utils" import { useEffect, useState } from "react" import { isToday, isFuture } from "date-fns" import { useAccount } from "@/lib/providers/jazz-provider" import { useAuth, useUser } from "@clerk/tanstack-start" import { getFeatureFlag } from "~/actions" import { LaIcon } from "~/components/custom/la-icon" import { Link } from "@tanstack/react-router" export const TaskSection: React.FC = () => { const { me } = useAccount({ root: { tasks: [] } }) const taskCount = me?.root?.tasks?.length || 0 const todayTasks = me?.root?.tasks?.filter( (task) => task?.status !== "done" && task?.dueDate && isToday(task.dueDate), ) || [] const upcomingTasks = me?.root?.tasks?.filter( (task) => task?.status !== "done" && task?.dueDate && isFuture(task.dueDate), ) || [] 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: "TASK" }) if ( user?.emailAddresses.some((email) => response?.emails.includes(email.emailAddress), ) ) { setIsFeatureActive(true) } setIsFetching(false) } } checkFeatureFlag() }, [isLoaded, isSignedIn, user]) if (!isLoaded || !isSignedIn) { return
{title} {count > 0 && {count}}
)