import { useAppSelector } from "@/app/hooks"; import { Calendar } from "@/features/Calendars/CalendarTypes"; import { extractEventBaseUuid } from "@/utils/extractEventBaseUuid"; import { Box, TextField, ToggleButton, ToggleButtonGroup, Typography, } from "@linagora/twake-mui"; import LockOutlineIcon from "@mui/icons-material/LockOutline"; import PublicIcon from "@mui/icons-material/Public"; import { useEffect, useState } from "react"; import { useI18n } from "twake-i18n"; import { AddDescButton } from "../Event/AddDescButton"; import { ColorPicker } from "./CalendarColorPicker"; export function SettingsTab({ name, setName, description, setDescription, color, setColor, visibility, setVisibility, calendar, }: { name: string; setName: Function; description: string; setDescription: (d: string) => void; color: Record; setColor: Function; visibility: "public" | "private"; setVisibility: Function; calendar?: Calendar; }) { const { t } = useI18n(); const [toggleDesc, setToggleDesc] = useState(Boolean(description)); const userId = useAppSelector((state) => state.user.userData?.openpaasId) ?? ""; const isOwn = calendar ? extractEventBaseUuid(calendar.id) === userId : true; useEffect(() => { if (description) setToggleDesc(true); }, [description]); return ( <> {/* Form group 1: Name field - first group, margin top 0 */} setName(e.target.value)} size="small" sx={{ "&.MuiFormControl-root": { marginTop: 0, marginBottom: 0, }, }} /> {/* Form group 2: Description */} {/* Form group 3: Color */} {t("calendar.color")} setColor(color)} selectedColor={color} /> {/* Form group 4: New events visibility */} {isOwn && ( {t("calendar.newEventsVisibility")} val && setVisibility(val)} size="medium" sx={{ borderRadius: "12px" }} > {t("common.all")} {t("common.you")} )} ); }