diff --git a/src/components/boris/BorisComments/index.tsx b/src/components/boris/BorisComments/index.tsx index 2925f2b5..9f79ccf6 100644 --- a/src/components/boris/BorisComments/index.tsx +++ b/src/components/boris/BorisComments/index.tsx @@ -5,9 +5,9 @@ import { NodeCommentForm } from '~/components/node/NodeCommentForm'; import { NodeNoComments } from '~/components/node/NodeNoComments'; import { NodeComments } from '~/views/node/NodeComments'; import { Footer } from '~/components/main/Footer'; -import { CommentProvider, useCommentContext } from '~/utils/providers/CommentProvider'; -import { useUserContext } from '~/utils/providers/UserProvider'; -import { useNodeContext } from '~/utils/providers/NodeProvider'; +import { CommentContextProvider, useCommentContext } from '~/utils/context/CommentContextProvider'; +import { useUserContext } from '~/utils/context/UserContextProvider'; +import { useNodeContext } from '~/utils/context/NodeContextProvider'; interface IProps {} @@ -31,7 +31,7 @@ const BorisComments: FC<IProps> = () => { {isLoading ? ( <NodeNoComments is_loading count={7} /> ) : ( - <CommentProvider + <CommentContextProvider comments={comments} count={count} onDeleteComment={onDeleteComment} @@ -40,7 +40,7 @@ const BorisComments: FC<IProps> = () => { isLoading={isLoading} > <NodeComments order="ASC" /> - </CommentProvider> + </CommentContextProvider> )} </Group> diff --git a/src/components/node/NodeTagsBlock/index.tsx b/src/components/node/NodeTagsBlock/index.tsx index a23f9609..6e29226d 100644 --- a/src/components/node/NodeTagsBlock/index.tsx +++ b/src/components/node/NodeTagsBlock/index.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; import { NodeTags } from '~/components/node/NodeTags'; -import { useTagContext } from '~/utils/providers/TagProvider'; +import { useTagContext } from '~/utils/context/TagsContextProvider'; interface IProps {} diff --git a/src/containers/App.tsx b/src/containers/App.tsx index 52db42bc..115bf213 100644 --- a/src/containers/App.tsx +++ b/src/containers/App.tsx @@ -9,14 +9,14 @@ import { BottomContainer } from '~/containers/main/BottomContainer'; import { MainRouter } from '~/containers/main/MainRouter'; import { DragDetectorProvider } from '~/utils/hooks/useDragDetector'; import { useUser } from '~/utils/hooks/user/userUser'; -import { UserProvider } from '~/utils/providers/UserProvider'; +import { UserContextProvider } from '~/utils/context/UserContextProvider'; const App: VFC = () => { const user = useUser(); return ( <ConnectedRouter history={history}> - <UserProvider user={user}> + <UserContextProvider user={user}> <DragDetectorProvider> <PageCover /> @@ -28,7 +28,7 @@ const App: VFC = () => { </MainLayout> <BottomContainer /> </DragDetectorProvider> - </UserProvider> + </UserContextProvider> </ConnectedRouter> ); }; diff --git a/src/layouts/BorisLayout/index.tsx b/src/layouts/BorisLayout/index.tsx index 11cf7eb9..6a97617a 100644 --- a/src/layouts/BorisLayout/index.tsx +++ b/src/layouts/BorisLayout/index.tsx @@ -8,7 +8,7 @@ import { BorisComments } from '~/components/boris/BorisComments'; import { Card } from '~/components/containers/Card'; import { SidebarRouter } from '~/containers/main/SidebarRouter'; import { BorisSidebar } from '~/components/boris/BorisSidebar'; -import { useUserContext } from '~/utils/providers/UserProvider'; +import { useUserContext } from '~/utils/context/UserContextProvider'; import { BorisUsageStats } from '~/redux/boris/reducer'; type IProps = { diff --git a/src/layouts/NodeLayout/index.tsx b/src/layouts/NodeLayout/index.tsx index cc779d4d..0f334e56 100644 --- a/src/layouts/NodeLayout/index.tsx +++ b/src/layouts/NodeLayout/index.tsx @@ -14,7 +14,7 @@ import { URLS } from '~/constants/urls'; import { EditorEditDialog } from '~/containers/dialogs/EditorEditDialog'; import styles from './styles.module.scss'; -import { useNodeContext } from '~/utils/providers/NodeProvider'; +import { useNodeContext } from '~/utils/context/NodeContextProvider'; type IProps = {}; diff --git a/src/pages/boris.tsx b/src/pages/boris.tsx index 5ceb949f..87fe183c 100644 --- a/src/pages/boris.tsx +++ b/src/pages/boris.tsx @@ -4,7 +4,7 @@ import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; import { selectNode } from '~/redux/node/selectors'; import { BorisLayout } from '~/layouts/BorisLayout'; import { nodeLoadNode } from '~/redux/node/actions'; -import { CommentProvider } from '~/utils/providers/CommentProvider'; +import { CommentContextProvider } from '~/utils/context/CommentContextProvider'; import { useImageModal } from '~/utils/hooks/useImageModal'; import { useNodeComments } from '~/utils/hooks/node/useNodeComments'; import { useBoris } from '~/utils/hooks/boris/useBoris'; @@ -28,7 +28,7 @@ const BorisPage: VFC = () => { }, [dispatch, node.is_loading]); return ( - <CommentProvider + <CommentContextProvider comments={comments} count={count} isLoading={isLoadingComments} @@ -42,7 +42,7 @@ const BorisPage: VFC = () => { isTester={isTester} stats={stats} /> - </CommentProvider> + </CommentContextProvider> ); }; diff --git a/src/pages/node/[id].tsx b/src/pages/node/[id].tsx index 56b8fe40..90bb6209 100644 --- a/src/pages/node/[id].tsx +++ b/src/pages/node/[id].tsx @@ -7,11 +7,11 @@ import { useImageModal } from '~/utils/hooks/useImageModal'; import { useNodeComments } from '~/utils/hooks/node/useNodeComments'; import { useUser } from '~/utils/hooks/user/userUser'; import { useNodeTags } from '~/utils/hooks/node/useNodeTags'; -import { NodeProvider } from '~/utils/providers/NodeProvider'; -import { CommentProvider } from '~/utils/providers/CommentProvider'; -import { TagProvider } from '~/utils/providers/TagProvider'; +import { NodeContextProvider } from '~/utils/context/NodeContextProvider'; +import { CommentContextProvider } from '~/utils/context/CommentContextProvider'; +import { TagsContextProvider } from '~/utils/context/TagsContextProvider'; import { useNodePermissions } from '~/utils/hooks/node/useNodePermissions'; -import { NodeRelatedProvider } from '~/utils/providers/NodeRelatedProvider'; +import { NodeRelatedContextProvider } from '~/utils/context/NodeRelatedContextProvider'; type Props = RouteComponentProps<{ id: string }> & {}; @@ -41,9 +41,9 @@ const NodePage: FC<Props> = ({ useScrollToTop([id, isLoadingComments]); return ( - <NodeProvider node={node} isLoading={isLoading}> - <NodeRelatedProvider related={related} isLoading={isLoading}> - <CommentProvider + <NodeContextProvider node={node} isLoading={isLoading}> + <NodeRelatedContextProvider related={related} isLoading={isLoading}> + <CommentContextProvider comments={comments} count={commentsCount} lastSeenCurrent={lastSeenCurrent} @@ -52,7 +52,7 @@ const NodePage: FC<Props> = ({ onLoadMoreComments={onLoadMoreComments} onDeleteComment={onDeleteComment} > - <TagProvider + <TagsContextProvider tags={node.tags} canAppend={user.is_user} canDelete={canEdit} @@ -62,10 +62,10 @@ const NodePage: FC<Props> = ({ onTagDelete={onTagDelete} > <NodeLayout /> - </TagProvider> - </CommentProvider> - </NodeRelatedProvider> - </NodeProvider> + </TagsContextProvider> + </CommentContextProvider> + </NodeRelatedContextProvider> + </NodeContextProvider> ); }; diff --git a/src/utils/providers/CommentProvider.tsx b/src/utils/context/CommentContextProvider.tsx similarity index 89% rename from src/utils/providers/CommentProvider.tsx rename to src/utils/context/CommentContextProvider.tsx index 9badfe16..b8e8617b 100644 --- a/src/utils/providers/CommentProvider.tsx +++ b/src/utils/context/CommentContextProvider.tsx @@ -23,7 +23,7 @@ const CommentContext = createContext<CommentProviderProps>({ onDeleteComment: () => {}, }); -export const CommentProvider: FC<CommentProviderProps> = ({ children, ...contextValue }) => { +export const CommentContextProvider: FC<CommentProviderProps> = ({ children, ...contextValue }) => { return <CommentContext.Provider value={contextValue}>{children}</CommentContext.Provider>; }; diff --git a/src/utils/providers/NodeProvider.tsx b/src/utils/context/NodeContextProvider.tsx similarity index 83% rename from src/utils/providers/NodeProvider.tsx rename to src/utils/context/NodeContextProvider.tsx index a044268c..b3e21715 100644 --- a/src/utils/providers/NodeProvider.tsx +++ b/src/utils/context/NodeContextProvider.tsx @@ -12,7 +12,7 @@ export const NodeContext = createContext<NodeContextProps>({ isLoading: false, }); -export const NodeProvider: FC<NodeContextProps> = ({ children, ...contextValue }) => { +export const NodeContextProvider: FC<NodeContextProps> = ({ children, ...contextValue }) => { return <NodeContext.Provider value={contextValue}>{children}</NodeContext.Provider>; }; diff --git a/src/utils/context/NodeRelatedContextProvider.tsx b/src/utils/context/NodeRelatedContextProvider.tsx new file mode 100644 index 00000000..0307651b --- /dev/null +++ b/src/utils/context/NodeRelatedContextProvider.tsx @@ -0,0 +1,18 @@ +import { INodeRelated } from '~/redux/node/types'; +import React, { createContext, FC, useContext } from 'react'; + +interface NodeRelatedProviderProps { + related: INodeRelated; + isLoading: boolean; +} + +const NodeRelatedContext = createContext<NodeRelatedProviderProps>({ + related: { albums: {}, similar: [] }, + isLoading: false, +}); + +export const NodeRelatedContextProvider: FC<NodeRelatedProviderProps> = ({ children, ...rest }) => ( + <NodeRelatedContext.Provider value={rest}>{children}</NodeRelatedContext.Provider> +); + +export const useNodeRelatedContext = () => useContext<NodeRelatedProviderProps>(NodeRelatedContext); diff --git a/src/utils/providers/TagProvider.tsx b/src/utils/context/TagsContextProvider.tsx similarity index 88% rename from src/utils/providers/TagProvider.tsx rename to src/utils/context/TagsContextProvider.tsx index fdff839a..d2d71810 100644 --- a/src/utils/providers/TagProvider.tsx +++ b/src/utils/context/TagsContextProvider.tsx @@ -21,7 +21,7 @@ const TagContext = createContext<TagContextProps>({ onTagDelete: () => {}, }); -export const TagProvider: FC<TagContextProps> = ({ children, ...contextValue }) => { +export const TagsContextProvider: FC<TagContextProps> = ({ children, ...contextValue }) => { return <TagContext.Provider value={contextValue}>{children}</TagContext.Provider>; }; diff --git a/src/utils/providers/UserProvider.tsx b/src/utils/context/UserContextProvider.tsx similarity index 81% rename from src/utils/providers/UserProvider.tsx rename to src/utils/context/UserContextProvider.tsx index 9f3b344d..5d77ec75 100644 --- a/src/utils/providers/UserProvider.tsx +++ b/src/utils/context/UserContextProvider.tsx @@ -4,7 +4,7 @@ import { EMPTY_USER } from '~/redux/auth/constants'; const UserContext = createContext<IUser>(EMPTY_USER); -export const UserProvider: FC<{ user: IUser }> = ({ children, user }) => ( +export const UserContextProvider: FC<{ user: IUser }> = ({ children, user }) => ( <UserContext.Provider value={user}>{children}</UserContext.Provider> ); diff --git a/src/views/node/NodeBottomBlock/index.tsx b/src/views/node/NodeBottomBlock/index.tsx index aa95a2c9..4627a02f 100644 --- a/src/views/node/NodeBottomBlock/index.tsx +++ b/src/views/node/NodeBottomBlock/index.tsx @@ -9,12 +9,12 @@ import { NodeTagsBlock } from '~/components/node/NodeTagsBlock'; import StickyBox from 'react-sticky-box/dist/esnext'; import styles from './styles.module.scss'; import { NodeAuthorBlock } from '~/components/node/NodeAuthorBlock'; -import { useNodeContext } from '~/utils/providers/NodeProvider'; -import { useCommentContext } from '~/utils/providers/CommentProvider'; +import { useNodeContext } from '~/utils/context/NodeContextProvider'; +import { useCommentContext } from '~/utils/context/CommentContextProvider'; import { NodeNoComments } from '~/components/node/NodeNoComments'; import { NodeComments } from '~/views/node/NodeComments'; -import { useUserContext } from '~/utils/providers/UserProvider'; -import { useNodeRelatedContext } from '~/utils/providers/NodeRelatedProvider'; +import { useUserContext } from '~/utils/context/UserContextProvider'; +import { useNodeRelatedContext } from '~/utils/context/NodeRelatedContextProvider'; interface IProps { commentsOrder: 'ASC' | 'DESC'; diff --git a/src/views/node/NodeComments/index.tsx b/src/views/node/NodeComments/index.tsx index 2719645b..4cedbe28 100644 --- a/src/views/node/NodeComments/index.tsx +++ b/src/views/node/NodeComments/index.tsx @@ -6,9 +6,9 @@ import { canEditComment } from '~/utils/node'; import { COMMENTS_DISPLAY } from '~/redux/node/constants'; import { plural } from '~/utils/dom'; import { useGrouppedComments } from '~/utils/hooks/node/useGrouppedComments'; -import { useCommentContext } from '~/utils/providers/CommentProvider'; +import { useCommentContext } from '~/utils/context/CommentContextProvider'; import { Comment } from '~/components/comment/Comment'; -import { useUserContext } from '~/utils/providers/UserProvider'; +import { useUserContext } from '~/utils/context/UserContextProvider'; interface IProps { order: 'ASC' | 'DESC';