"use client" import Link from "next/link" import { X } from "lucide-react" import { Button } from "@/components/ui/button" import { cn } from "@/lib/utils" import { useMailSettingsStore } from "@/lib/stores/mail-settings-store" import type { InboxSortMode, MailDensity, ReadingPaneMode, } from "@/lib/mail-settings/types" import { QuickSettingsCheckbox, QuickSettingsOption, } from "@/components/gmail/quick-settings/quick-settings-option" import { DensityCompactIcon, DensityDefaultIcon, DensityNormalIcon, InboxDefaultIcon, InboxImportantIcon, InboxStarredIcon, InboxUnreadIcon, ReadingPaneBelowIcon, ReadingPaneNoneIcon, ReadingPaneRightIcon, ThemeThumbnailIcon, } from "@/components/gmail/quick-settings/settings-preview-icons" function SettingsSection({ title, action, children, className, }: { title: string action?: React.ReactNode children: React.ReactNode className?: string }) { return (

{title}

{action}
{children}
) } export function QuickSettingsPanel() { const open = useMailSettingsStore((s) => s.quickSettingsOpen) const themeDialogOpen = useMailSettingsStore((s) => s.themeDialogOpen) const setOpen = useMailSettingsStore((s) => s.setQuickSettingsOpen) const setThemeDialogOpen = useMailSettingsStore((s) => s.setThemeDialogOpen) const density = useMailSettingsStore((s) => s.density) const setDensity = useMailSettingsStore((s) => s.setDensity) const inboxSort = useMailSettingsStore((s) => s.inboxSort) const setInboxSort = useMailSettingsStore((s) => s.setInboxSort) const readingPane = useMailSettingsStore((s) => s.readingPane) const setReadingPane = useMailSettingsStore((s) => s.setReadingPane) const conversationMode = useMailSettingsStore((s) => s.conversationMode) const setConversationMode = useMailSettingsStore((s) => s.setConversationMode) if (!open) return null const densityOptions: { id: MailDensity label: string icon: React.ReactNode }[] = [ { id: "default", label: "Par défaut", icon: }, { id: "normal", label: "Normal", icon: }, { id: "compact", label: "Compact", icon: }, ] const inboxOptions: { id: InboxSortMode label: string icon: React.ReactNode }[] = [ { id: "default", label: "Par défaut", icon: }, { id: "important", label: "Importants d'abord", icon: , }, { id: "unread", label: "Non lus d'abord", icon: }, { id: "starred", label: "Suivis d'abord", icon: }, ] const readingPaneOptions: { id: ReadingPaneMode label: string icon: React.ReactNode disabled?: boolean }[] = [ { id: "none", label: "Aucune séparation", icon: , }, { id: "right", label: "À droite de la boîte de réception", icon: , }, { id: "below", label: "Sous la boîte de réception", icon: , disabled: true, }, ] return ( <> {!themeDialogOpen && (
{densityOptions.map((opt) => ( setDensity(opt.id)} icon={opt.icon} /> ))} { setThemeDialogOpen(true) }} > Tout afficher } > {inboxOptions.map((opt) => ( setInboxSort(opt.id)} icon={opt.icon} /> ))} {readingPaneOptions.map((opt) => ( { if (!opt.disabled) setReadingPane(opt.id) }} icon={opt.icon} /> ))}

Fils de discussion

) }