forked from ddrilling/asb_cloud_front
Контексты разнесены по файлам
This commit is contained in:
parent
0e63d93fa7
commit
bfd1e51cfa
@ -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<DepositDto | null>(null)
|
|
||||||
/** Контекст текущей скважины */
|
|
||||||
export const WellContext = createContext<[WellDto, (well: WellDto) => void]>([{}, () => {}])
|
|
||||||
/** Контекст текущего корневого пути */
|
|
||||||
export const RootPathContext = createContext<string>('/')
|
|
||||||
/** Контекст текущего пользователя */
|
|
||||||
export const UserContext = createContext<UserTokenDto>({})
|
|
||||||
/** Контекст метода редактирования параметров заголовка и меню */
|
|
||||||
export const LayoutPropsContext = createContext<(props: LayoutPortalProps) => void>(() => {})
|
|
||||||
/** Контекст для блока справа от крошек на страницах скважин и админки */
|
|
||||||
export const TopRightBlockContext = createContext<(block: JSX.Element) => void>(() => {})
|
|
||||||
/** Контекст со списком месторождений */
|
|
||||||
export const DepositListContext = createContext<DepositDto[]>([])
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Получить текущую скважину
|
|
||||||
*
|
|
||||||
* @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
|
|
||||||
}
|
|
23
src/context/deposit.ts
Normal file
23
src/context/deposit.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { createContext, useContext } from 'react'
|
||||||
|
|
||||||
|
import { DepositDto } from '@api'
|
||||||
|
|
||||||
|
/** Контекст текущего месторождения */
|
||||||
|
export const DepositContext = createContext<DepositDto | null>(null)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Получить текущее месторождение
|
||||||
|
*
|
||||||
|
* @returns Текущее месторождение, либо `null`
|
||||||
|
*/
|
||||||
|
export const useDeposit = () => useContext(DepositContext)
|
||||||
|
|
||||||
|
/** Контекст со списком месторождений */
|
||||||
|
export const DepositListContext = createContext<DepositDto[]>([])
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Получить список скважин
|
||||||
|
*
|
||||||
|
* @returns Список скважин
|
||||||
|
*/
|
||||||
|
export const useDepositList = () => useContext(DepositListContext)
|
5
src/context/index.ts
Normal file
5
src/context/index.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export * from './deposit'
|
||||||
|
export * from './layout_props'
|
||||||
|
export * from './root_path'
|
||||||
|
export * from './user'
|
||||||
|
export * from './well'
|
31
src/context/layout_props.ts
Normal file
31
src/context/layout_props.ts
Normal file
@ -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)
|
11
src/context/root_path.ts
Normal file
11
src/context/root_path.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { createContext, useContext } from 'react'
|
||||||
|
|
||||||
|
/** Контекст текущего корневого пути */
|
||||||
|
export const RootPathContext = createContext<string>('/')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Получить текущий корневой путь
|
||||||
|
*
|
||||||
|
* @returns Текущий корневой путь
|
||||||
|
*/
|
||||||
|
export const useRootPath = () => useContext(RootPathContext)
|
13
src/context/user.ts
Normal file
13
src/context/user.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { createContext, useContext } from 'react'
|
||||||
|
|
||||||
|
import { UserTokenDto } from '@api'
|
||||||
|
|
||||||
|
/** Контекст текущего пользователя */
|
||||||
|
export const UserContext = createContext<UserTokenDto>({})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Получить текущего пользователя
|
||||||
|
*
|
||||||
|
* @returns Текущий пользователь, либо `null`
|
||||||
|
*/
|
||||||
|
export const useUser = () => useContext(UserContext)
|
13
src/context/well.ts
Normal file
13
src/context/well.ts
Normal file
@ -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)
|
Loading…
Reference in New Issue
Block a user