'use client'; import { Tooltip, TooltipContent, TooltipPortal, } from "@/components/ui/tooltip"; import { ButtonWithTooltip } from "@/components/ui/button"; import { Star } from "lucide-react"; import { useUpdateDay } from "@lifetracker/shared-react/hooks/days"; import { useState } from "react"; import { toast } from "@/components/ui/use-toast"; export function MoodStars({ day: initialDay, maximum = 10, }) { const [day, setDay] = useState(initialDay); const { mutate: updateDay, isPending } = useUpdateDay({ onSuccess: (res, req, meta) => { setDay(res); toast({ description: "Rating updated!", }); }, }); const setStars = (newStars: number) => { if (day.mood == newStars) { // Nothing to do here return; } updateDay( { dateQuery: day.date, mood: newStars, }, { onError: (e) => { toast({ description: e.message, variant: "destructive", }); }, }, ); }; return (
{Array.from({ length: maximum }).map((_, i) => ( setStars(i + 1)} > {i < day.mood ? : } ))}
Hi
) }