useToast — это хук из библиотеки Chakra UI,
предназначенный для создания уведомлений (toasts) в интерфейсе
приложения на React. Уведомления помогают информировать пользователя о
событиях, ошибках или успехах операций, не нарушая поток работы.
Хук возвращает функцию toast, которую можно вызывать с
объектом конфигурации, определяющим поведение уведомления.
import { useToast, Button } from "@chakra-ui/react";
function Example() {
const toast = useToast();
return (
<Button
onCl ick={() =>
toast({
title: "Действие выполнено.",
description: "Ваши изменения успешно сохранены.",
status: "success",
duration: 5000,
isClosable: true,
})
}
>
Показать уведомление
</Button>
);
}
При вызове функции toast можно передавать несколько
ключевых свойств:
success, error,
warning, info.top, top-left,
top-right, bottom, bottom-left,
bottom-right, top-start, top-end,
bottom-start, bottom-end.toast({
title: "Ошибка запроса",
description: "Не удалось загрузить данные.",
status: "error",
duration: 4000,
isClosable: true,
});
toast({
title: "Внимание",
description: "Срок действия сессии истекает.",
status: "warning",
});
toast({
title: "Информация",
description: "Обновление доступно.",
status: "info",
});
useToast позволяет гибко настраивать размещение
уведомлений и время их отображения.
toast({
title: "Сохранено",
position: "bottom-right",
duration: 3000,
});
position определяет угол экрана, где появляется
уведомление.duration контролирует, как долго уведомление будет
видимо. Если указано null, toast останется до закрытия
вручную.useToast поддерживает возврат идентификатора
уведомления, чтобы закрывать его программно:
const id = toast({
title: "Обновление",
description: "Процесс выполняется",
status: "info",
isClosable: true,
});
setTimeout(() => {
toast.close(id);
}, 3000);
Методы toast.closeAll() позволяют закрыть все активные
уведомления сразу.
Можно передавать кастомный React-компонент через render
для полной кастомизации:
toast({
duration: 5000,
render: () => (
<Box color="white" p={3} bg="blue.500" borderRadius="md">
Кастомное уведомление!
</Box>
),
});
Параметр render заменяет стандартный вид уведомления,
позволяя интегрировать любые стили и содержимое.
По умолчанию несколько вызовов toast создают отдельные
уведомления, накладывающиеся друг на друга. Можно управлять количеством
одновременно отображаемых уведомлений с помощью пропса
limit в ChakraProvider или фильтровать
повторяющиеся уведомления, используя id:
toast({
id: "unique-toast",
title: "Уникальное уведомление",
description: "Не будет дублироваться",
});
Если toast с этим id уже активен, новый вызов обновит
существующий.
useToast автоматически наследует тему Chakra UI. Цвета
статусов, шрифты и отступы соответствуют текущей теме приложения. Для
более тонкой настройки можно использовать кастомные значения цвета:
toast({
title: "Кастомный цвет",
status: "success",
variant: "subtle",
duration: 4000,
});
variant может принимать значения solid,
subtle, left-accent, top-accent и
изменяет внешний вид toast.useToast предоставляет мощный и гибкий инструмент для
создания уведомлений в приложениях на React с Chakra UI. Управление
параметрами status, position,
duration, а также возможность кастомизации через
render позволяет создавать как стандартные, так и
уникальные уведомления, полностью интегрированные с интерфейсом и темой
приложения.