import Link from "next/link" import { usePathname } from "next/navigation" import { cn } from "@/lib/utils" import { ListOfTasks, Task } from "@/lib/schema/tasks" import { LaIcon } from "../../la-icon" import { useEffect, useState } from "react" import { useAuth, useUser } from "@clerk/nextjs" import { getFeatureFlag } from "@/app/actions" import { isToday, isFuture } from "date-fns" import { useAccount } from "@/lib/providers/jazz-provider" export const TaskSection: React.FC<{ pathname: string }> = ({ pathname }) => { 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 [isFetching, 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 [data, err] = await getFeatureFlag({ name: "TASK" }) if (err) { console.error(err) setIsFetching(false) return } if (user?.emailAddresses.some(email => data.flag?.emails.includes(email.emailAddress))) { setIsFeatureActive(true) } setIsFetching(false) } } checkFeatureFlag() }, [isLoaded, isSignedIn, user]) if (!isLoaded || !isSignedIn) { return
{title} {count > 0 && {count}}