From 554a416bf4b9d63d7ceb6ce65edce112789fa7e6 Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 21:33:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=BB=D0=BE=D0=B0=D0=B4=D0=B5=D1=80=D0=B0,=20?= =?UTF-8?q?=D0=B2=D1=80=D0=BE=D0=B4=D0=B5=20=D0=B1=D1=8B,=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D0=B0=D0=BB=D1=81=D1=8F=20=D0=BE=D1=82=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D1=85=D1=83=D0=BA=20=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81=D0=B0=D0=BB,=20?= =?UTF-8?q?=D0=BA=D0=B0=D0=BA=20=D0=B8=20=D0=B2=D1=81=D0=BF=D0=BB=D1=8B?= =?UTF-8?q?=D0=B2=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BE=D0=BA=D0=BD=D0=B0?= =?UTF-8?q?,=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/hooks/preloader/MagicPreloaderHook.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 resources/js/hooks/preloader/MagicPreloaderHook.tsx diff --git a/resources/js/hooks/preloader/MagicPreloaderHook.tsx b/resources/js/hooks/preloader/MagicPreloaderHook.tsx new file mode 100644 index 0000000..ff5c3b0 --- /dev/null +++ b/resources/js/hooks/preloader/MagicPreloaderHook.tsx @@ -0,0 +1,26 @@ +import React, { useState } from "react"; +import Preloader from "../../components/preloader/Preloader"; + +//Хук для формирования пропсов управления состояний прелоадера, экспортируемых в компоненты страницы, где планируется вызывать прелоадер +export const MagicPreloaderHook = () => { + //Стейт для видимости прелоадера + const [preloaderVisibleState, setPreloaderVisibleState] = useState(true); + //Стейт для текста прелоадера + const [preloaderTextState, setPreloaderTextState] = useState('загрузка'); + //Сеттер для смены состояний прелоадера + function setPreloaderParams (visibleState: boolean, textState?: string) + { + setPreloaderVisibleState(visibleState) + textState ? setPreloaderTextState(textState) : true, [] + }; + + return { + setPreloaderParams, + PreloaderComponent: ( {preloaderVisible = preloaderVisibleState, preloaderText = preloaderTextState} ) => ( + + ) + } +}