diff --git a/src/context.ts b/src/context.ts deleted file mode 100644 index c638ae6..0000000 --- a/src/context.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { createContext, useContext, useEffect } from 'react' - -import { LayoutPortalProps } from '@components/LayoutPortal' -import { DepositDto, UserTokenDto, WellDto } from '@api' - -/** Контекст текущего месторождения */ -export const DepositContext = createContext(null) -/** Контекст текущей скважины */ -export const WellContext = createContext<[WellDto, (well: WellDto) => void]>([{}, () => {}]) -/** Контекст текущего корневого пути */ -export const RootPathContext = createContext('/') -/** Контекст текущего пользователя */ -export const UserContext = createContext({}) -/** Контекст метода редактирования параметров заголовка и меню */ -export const LayoutPropsContext = createContext<(props: LayoutPortalProps) => void>(() => {}) -/** Контекст для блока справа от крошек на страницах скважин и админки */ -export const TopRightBlockContext = createContext<(block: JSX.Element) => void>(() => {}) -/** Контекст со списком месторождений */ -export const DepositListContext = createContext([]) - -/** - * Получить текущую скважину - * - * @returns Текущая скважина, либо пустой объект - */ -export const useWell = () => useContext(WellContext) - -/** - * Получить текущее месторождение - * - * @returns Текущее месторождение, либо `null` - */ -export const useDeposit = () => useContext(DepositContext) - -/** - * Получить текущий корневой путь - * - * @returns Текущий корневой путь - */ -export const useRootPath = () => useContext(RootPathContext) - -/** - * Получить текущего пользователя - * - * @returns Текущий пользователь, либо `null` - */ -export const useUser = () => useContext(UserContext) - -/** - * Получить список скважин - * - * @returns Список скважин - */ -export const useDepositList = () => useContext(DepositListContext) - -/** - * Получить метод задания элементов справа от крошек - * - * @returns Метод задания элементов справа от крошек - */ -export const useTopRightBlock = () => useContext(TopRightBlockContext) - -/** - * Получить метод задания параметров заголовка и меню - * - * @returns Получить метод задания параметров заголовка и меню - */ -export const useLayoutProps = (props?: LayoutPortalProps) => { - const setLayoutProps = useContext(LayoutPropsContext) - - useEffect(() => { - if (props) setLayoutProps(props) - }, [setLayoutProps, props]) - - return setLayoutProps -} diff --git a/src/context/deposit.ts b/src/context/deposit.ts new file mode 100644 index 0000000..86fa5a2 --- /dev/null +++ b/src/context/deposit.ts @@ -0,0 +1,23 @@ +import { createContext, useContext } from 'react' + +import { DepositDto } from '@api' + +/** Контекст текущего месторождения */ +export const DepositContext = createContext(null) + +/** + * Получить текущее месторождение + * + * @returns Текущее месторождение, либо `null` + */ +export const useDeposit = () => useContext(DepositContext) + +/** Контекст со списком месторождений */ +export const DepositListContext = createContext([]) + +/** + * Получить список скважин + * + * @returns Список скважин + */ +export const useDepositList = () => useContext(DepositListContext) diff --git a/src/context/index.ts b/src/context/index.ts new file mode 100644 index 0000000..34fcba9 --- /dev/null +++ b/src/context/index.ts @@ -0,0 +1,5 @@ +export * from './deposit' +export * from './layout_props' +export * from './root_path' +export * from './user' +export * from './well' diff --git a/src/context/layout_props.ts b/src/context/layout_props.ts new file mode 100644 index 0000000..cd07ff3 --- /dev/null +++ b/src/context/layout_props.ts @@ -0,0 +1,31 @@ +import { createContext, useContext, useEffect } from 'react' + +import { LayoutPortalProps } from '@components/LayoutPortal' + +/** Контекст метода редактирования параметров заголовка и меню */ +export const LayoutPropsContext = createContext<(props: LayoutPortalProps) => void>(() => {}) + +/** + * Получить метод задания параметров заголовка и меню + * + * @returns Получить метод задания параметров заголовка и меню + */ +export const useLayoutProps = (props?: LayoutPortalProps) => { + const setLayoutProps = useContext(LayoutPropsContext) + + useEffect(() => { + if (props) setLayoutProps(props) + }, [setLayoutProps, props]) + + return setLayoutProps +} + +/** Контекст для блока справа от крошек на страницах скважин и админки */ +export const TopRightBlockContext = createContext<(block: JSX.Element) => void>(() => {}) + +/** + * Получить метод задания элементов справа от крошек + * + * @returns Метод задания элементов справа от крошек + */ +export const useTopRightBlock = () => useContext(TopRightBlockContext) diff --git a/src/context/root_path.ts b/src/context/root_path.ts new file mode 100644 index 0000000..6c03374 --- /dev/null +++ b/src/context/root_path.ts @@ -0,0 +1,11 @@ +import { createContext, useContext } from 'react' + +/** Контекст текущего корневого пути */ +export const RootPathContext = createContext('/') + +/** + * Получить текущий корневой путь + * + * @returns Текущий корневой путь + */ +export const useRootPath = () => useContext(RootPathContext) diff --git a/src/context/user.ts b/src/context/user.ts new file mode 100644 index 0000000..671d565 --- /dev/null +++ b/src/context/user.ts @@ -0,0 +1,13 @@ +import { createContext, useContext } from 'react' + +import { UserTokenDto } from '@api' + +/** Контекст текущего пользователя */ +export const UserContext = createContext({}) + +/** + * Получить текущего пользователя + * + * @returns Текущий пользователь, либо `null` + */ +export const useUser = () => useContext(UserContext) diff --git a/src/context/well.ts b/src/context/well.ts new file mode 100644 index 0000000..54a2075 --- /dev/null +++ b/src/context/well.ts @@ -0,0 +1,13 @@ +import { createContext, useContext } from 'react' + +import { WellDto } from '@api' + +/** Контекст текущей скважины */ +export const WellContext = createContext<[WellDto, (well: WellDto) => void]>([{}, () => {}]) + +/** + * Получить текущую скважину + * + * @returns Текущая скважина, либо пустой объект + */ +export const useWell = () => useContext(WellContext)