"use client" import * as React from "react" import { useQueryState } from "nuqs" import { dataTableConfig, type DataTableConfig } from "@/config/data-table" import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group" import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip" type FeatureFlagValue = DataTableConfig["featureFlags"][number]["value"] interface TasksTableContextProps { featureFlags: FeatureFlagValue[] setFeatureFlags: (value: FeatureFlagValue[]) => void } const TasksTableContext = React.createContext({ featureFlags: [], setFeatureFlags: () => {}, }) export function useTasksTable() { const context = React.useContext(TasksTableContext) if (!context) { throw new Error("useTasksTable must be used within a TasksTableProvider") } return context } export function TasksTableProvider({ children }: React.PropsWithChildren) { const [featureFlags, setFeatureFlags] = useQueryState( "featureFlags", { defaultValue: [], parse: (value) => value.split(",") as FeatureFlagValue[], serialize: (value) => value.join(","), eq: (a, b) => a.length === b.length && a.every((value, index) => value === b[index]), clearOnDefault: true, } ) return ( void setFeatureFlags(value), }} >
setFeatureFlags(value)} className="w-fit" > {dataTableConfig.featureFlags.map((flag) => (
{flag.tooltipTitle}
{flag.tooltipDescription}
))}
{children}
) }