первая реализация компонента прелоадера, вроде бы, отказался от реализации через хук и переписал, как и всплывающие окна, через контекст
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
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}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user