All checks were successful
Deploy / deploy (push) Successful in 4m38s
Bilal (24 Eyl 2026): "İlk programın listende · 1/24" toast'unun açıklaması okunmuyor. Sebep: sonner temayı next-themes'ten alıyor, sistem koyu temadayken açıklama beyaza yakın griye dönüyor, zemin beyaz kalıyordu. Üründe karanlık mod yok; tema light'a sabitlendi. Başlık slate-900 semibold, açıklama slate-600, aksiyon düğmesi koyu hap (h-9 rounded-full). DESIGN.md §4.16. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
"use client"
|
||
|
||
import { Toaster as Sonner, type ToasterProps } from "sonner"
|
||
import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon } from "lucide-react"
|
||
|
||
/**
|
||
* Bildirimler (DESIGN.md §4.16). Tema "light"e sabit: üründe karanlık mod
|
||
* yok (§1.2); sistem koyu temadayken sonner açıklamayı beyaza yakın griye
|
||
* çevirip beyaz zeminde okunmaz hâle getiriyordu (Bilal, 24 Eyl 2026:
|
||
* "toast açıklaması okunmuyor"). Metin ve buton renkleri globals.css'te.
|
||
*/
|
||
const Toaster = ({ ...props }: ToasterProps) => {
|
||
return (
|
||
<Sonner
|
||
theme="light"
|
||
className="toaster group"
|
||
icons={{
|
||
success: (
|
||
<CircleCheckIcon className="size-4" />
|
||
),
|
||
info: (
|
||
<InfoIcon className="size-4" />
|
||
),
|
||
warning: (
|
||
<TriangleAlertIcon className="size-4" />
|
||
),
|
||
error: (
|
||
<OctagonXIcon className="size-4" />
|
||
),
|
||
loading: (
|
||
<span className="block size-2.5 animate-pulse rounded-full bg-current" />
|
||
),
|
||
}}
|
||
style={
|
||
{
|
||
"--normal-bg": "var(--popover)",
|
||
"--normal-text": "var(--popover-foreground)",
|
||
"--normal-border": "var(--border)",
|
||
"--border-radius": "var(--radius)",
|
||
} as React.CSSProperties
|
||
}
|
||
toastOptions={{
|
||
classNames: {
|
||
toast: "cn-toast",
|
||
},
|
||
}}
|
||
{...props}
|
||
/>
|
||
)
|
||
}
|
||
|
||
export { Toaster }
|