27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
import React, { useState } from "react";
|
|
import Preloader from "../../components/preloader/Preloader";
|
|
|
|
//Хук для формирования пропсов управления состояний прелоадера, экспортируемых в компоненты страницы, где планируется вызывать прелоадер
|
|
export const MagicPreloaderHook = () => {
|
|
//Стейт для видимости прелоадера
|
|
const [preloaderVisibleState, setPreloaderVisibleState] = useState<boolean>(true);
|
|
//Стейт для текста прелоадера
|
|
const [preloaderTextState, setPreloaderTextState] = useState<string>('загрузка');
|
|
//Сеттер для смены состояний прелоадера
|
|
function setPreloaderParams (visibleState: boolean, textState?: string)
|
|
{
|
|
setPreloaderVisibleState(visibleState)
|
|
textState ? setPreloaderTextState(textState) : true, []
|
|
};
|
|
|
|
return {
|
|
setPreloaderParams,
|
|
PreloaderComponent: ( {preloaderVisible = preloaderVisibleState, preloaderText = preloaderTextState} ) => (
|
|
<Preloader
|
|
visible={preloaderVisible}
|
|
text={preloaderText}
|
|
/>
|
|
)
|
|
}
|
|
}
|