"use client"; import * as React from "react"; import { cn } from "./lib/utils"; export interface RecurrencePickerProps extends React.HTMLAttributes { value?: string; onValueChange?: (value: string) => void; } const FREQS = ["Daily", "Weekly", "Monthly"] as const; const WEEKDAYS = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]; /** Recurrence rule picker with weekday stamps. */ export function RecurrencePicker({ value, onValueChange, className, ...props }: RecurrencePickerProps) { const [freq, setFreq] = React.useState<(typeof FREQS)[number]>("Weekly"); const [days, setDays] = React.useState(["FRI"]); const [count, setCount] = React.useState(6); const summary = `${freq}${freq === "Weekly" && days.length ? ` on ${[...days].sort().join(", ")}` : ""}, ${count} shows`; React.useEffect(() => { onValueChange?.(summary); }, [summary, onValueChange]); return (

Recurrence picker

{FREQS.map((f) => ( ))}
{freq === "Weekly" && (
{WEEKDAYS.map((d) => { const on = days.includes(d); return ( ); })}
)}

{value ?? summary}

); }