Ushbu loyihada toast xabarlari o'ng taraf pastdan chiqadi va loyiha temasiga mos keladi.
import { useToast } from "@/hooks/use-toast";
const MyComponent = () => {
const { toast } = useToast();
const handleClick = () => {
toast.success("Muvaffaqiyat!", "Amal muvaffaqiyatli bajarildi.");
};
return <button onClick={handleClick}>Toast Ko'rsatish</button>;
};import { toast } from "@/hooks/use-toast";
const handleClick = () => {
toast.error("Xatolik!", "Nimadir noto'g'ri ketdi.");
};toast.success("Muvaffaqiyat!", "Sizning amalingiz muvaffaqiyatli bajarildi.");toast.error("Xatolik!", "So'rovingizda nimadir noto'g'ri ketdi.");toast.warning("Ogohlantirish!", "Davom etishdan oldin ma'lumotlaringizni tekshiring.");toast.info("Ma'lumot!", "Bu sizga foydali ma'lumot.");const toastId = toast.loading("Yuklanmoqda...");
// Keyinroq uni yopish uchun
toast.dismiss(toastId);const myPromise = fetch("/api/data");
toast.promise(myPromise, {
loading: "Ma'lumotlar yuklanmoqda...",
success: "Ma'lumotlar muvaffaqiyatli yuklandi!",
error: "Ma'lumotlarni yuklashda xatolik!"
});toast.custom(
<div className="flex items-center gap-2">
<Icon />
<span>Maxsus xabar</span>
</div>
);- Position:
bottom-right(o'ng taraf pastdan) - Duration:
- Success: 4 soniya
- Error: 5 soniya
- Warning: 4 soniya
- Info: 4 soniya
- Theme: Loyiha temasiga avtomatik mos keladi
- Rich Colors: Yoqilgan
- Close Button: Yoqilgan
- Tema ranglariga mos keladi (light/dark mode)
- Gradient chegaralar har bir toast turi uchun
- Backdrop blur effekti
- Shadow va border
// Login muvaffaqiyatli
toast.success(t("login_success") || "Tizimga muvaffaqiyatli kirdingiz!");
// Login xatoligi
toast.error(t("login_error") || "Login yoki parol noto'g'ri!");const saveData = async () => {
const promise = fetch("/api/save", {
method: "POST",
body: JSON.stringify(data)
});
toast.promise(promise, {
loading: "Saqlash...",
success: "Ma'lumotlar saqlandi!",
error: "Saqlashda xatolik!"
});
};const validateForm = () => {
if (!email) {
toast.warning("Ogohlantirish!", "Email manzilini kiriting.");
return false;
}
if (!isValidEmail(email)) {
toast.error("Xatolik!", "Email manzili noto'g'ri formatda.");
return false;
}
return true;
};- Screen reader lar uchun optimallashtirilgan
- Keyboard navigation qo'llab-quvvatlanadi
- High contrast rejimlarda ham yaxshi ko'rinadi
- ARIA labels va roles mavjud
- Lazy loading
- Minimal bundle size
- Efficient re-renders
- Memory leaks yo'q
Bu toast tizimi loyiha bo'ylab izchil va professional foydalanuvchi tajribasini ta'minlaydi.