From 60da84aad915b21b29cfb4a953291319e4a735fc Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Sun, 19 Nov 2023 17:26:29 +0600 Subject: [PATCH] refactor PageCoverProvider --- .../containers/PageCoverProvider/usePageCover.ts | 13 ------------- src/hooks/node/useNodeCoverImage.ts | 2 +- src/layouts/ProfileLayout/index.tsx | 2 +- src/pages/_app.tsx | 2 +- .../providers}/PageCoverProvider/index.tsx | 11 ++++++++++- .../providers}/PageCoverProvider/styles.module.scss | 0 6 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 src/components/containers/PageCoverProvider/usePageCover.ts rename src/{components/containers => utils/providers}/PageCoverProvider/index.tsx (78%) rename src/{components/containers => utils/providers}/PageCoverProvider/styles.module.scss (100%) diff --git a/src/components/containers/PageCoverProvider/usePageCover.ts b/src/components/containers/PageCoverProvider/usePageCover.ts deleted file mode 100644 index 57877806..00000000 --- a/src/components/containers/PageCoverProvider/usePageCover.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { useEffect } from 'react'; - -import { usePageCoverContext } from '~/components/containers/PageCoverProvider/index'; -import { IFile } from '~/types'; - -export const usePageCover = (cover?: IFile) => { - const { setCover } = usePageCoverContext(); - - useEffect(() => { - setCover(cover || null); - return () => setCover(null); - }, [setCover, cover]); -}; diff --git a/src/hooks/node/useNodeCoverImage.ts b/src/hooks/node/useNodeCoverImage.ts index dd9e1e52..d5f1ede9 100644 --- a/src/hooks/node/useNodeCoverImage.ts +++ b/src/hooks/node/useNodeCoverImage.ts @@ -1,5 +1,5 @@ -import { usePageCover } from '~/components/containers/PageCoverProvider/usePageCover'; import { INode } from '~/types'; +import { usePageCover } from '~/utils/providers/PageCoverProvider'; export const useNodeCoverImage = (node: INode) => { usePageCover(node.cover); diff --git a/src/layouts/ProfileLayout/index.tsx b/src/layouts/ProfileLayout/index.tsx index 10753618..542db524 100644 --- a/src/layouts/ProfileLayout/index.tsx +++ b/src/layouts/ProfileLayout/index.tsx @@ -2,13 +2,13 @@ import { FC } from 'react'; import { observer } from 'mobx-react-lite'; -import { usePageCover } from '~/components/containers/PageCoverProvider/usePageCover'; import { FlowGrid } from '~/components/flow/FlowGrid'; import { Container } from '~/containers/main/Container'; import { ProfilePageLeft } from '~/containers/profile/ProfilePageLeft'; import { useUser } from '~/hooks/auth/useUser'; import { useGetProfile } from '~/hooks/profile/useGetProfile'; import { useFlowStore } from '~/store/flow/useFlowStore'; +import { usePageCover } from '~/utils/providers/PageCoverProvider'; import styles from './styles.module.scss'; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 337b0f83..c56775f5 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,7 +1,6 @@ import App from 'next/app'; import Head from 'next/head'; -import { PageCoverProvider } from '~/components/containers/PageCoverProvider'; import { Modal } from '~/containers/dialogs/Modal'; import { BottomContainer } from '~/containers/main/BottomContainer'; import { DragDetectorProvider } from '~/hooks/dom/useDragDetector'; @@ -15,6 +14,7 @@ import { AudioPlayerProvider } from '~/utils/providers/AudioPlayerProvider'; import { AuthProvider } from '~/utils/providers/AuthProvider'; import { MetadataProvider } from '~/utils/providers/MetadataProvider'; import { NotificationProvider } from '~/utils/providers/NotificationProvider'; +import { PageCoverProvider } from '~/utils/providers/PageCoverProvider'; import { SWRConfigProvider } from '~/utils/providers/SWRConfigProvider'; import { SearchProvider } from '~/utils/providers/SearchProvider'; import { SidebarProvider } from '~/utils/providers/SidebarProvider'; diff --git a/src/components/containers/PageCoverProvider/index.tsx b/src/utils/providers/PageCoverProvider/index.tsx similarity index 78% rename from src/components/containers/PageCoverProvider/index.tsx rename to src/utils/providers/PageCoverProvider/index.tsx index acdad00e..7ee64cca 100644 --- a/src/components/containers/PageCoverProvider/index.tsx +++ b/src/utils/providers/PageCoverProvider/index.tsx @@ -1,4 +1,4 @@ -import React, { createContext, FC, useContext, useState } from 'react'; +import { createContext, FC, useContext, useState, useEffect } from 'react'; import { createPortal } from 'react-dom'; @@ -41,4 +41,13 @@ const PageCoverProvider: FC = ({ children }) => { const usePageCoverContext = () => useContext(CoverContext); +export const usePageCover = (cover?: IFile) => { + const { setCover } = usePageCoverContext(); + + useEffect(() => { + setCover(cover || null); + return () => setCover(null); + }, [setCover, cover]); +}; + export { PageCoverProvider, usePageCoverContext }; diff --git a/src/components/containers/PageCoverProvider/styles.module.scss b/src/utils/providers/PageCoverProvider/styles.module.scss similarity index 100% rename from src/components/containers/PageCoverProvider/styles.module.scss rename to src/utils/providers/PageCoverProvider/styles.module.scss