From f76a5a4798264ebb1ae0dbba14683a6600c605aa Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Sun, 2 Jan 2022 18:17:09 +0700 Subject: [PATCH] refactored hooks directory --- src/components/boris/Superpower/index.tsx | 2 +- src/components/comment/CommentForm/index.tsx | 6 ++--- .../comment/CommentFormAttaches/index.tsx | 4 ++-- .../CommentFormFormatButtons/index.tsx | 2 +- .../LocalCommentFormTextarea/index.tsx | 2 +- .../containers/Authorized/index.tsx | 2 +- src/components/editors/AudioEditor/index.tsx | 8 +++---- .../editors/EditorActionsPanel/index.tsx | 2 +- .../editors/EditorButtons/index.tsx | 2 +- .../editors/EditorPublicSwitch/index.tsx | 2 +- .../editors/EditorUploadButton/index.tsx | 4 ++-- .../editors/EditorUploadCoverButton/index.tsx | 4 ++-- src/components/editors/ImageEditor/index.tsx | 2 +- src/components/editors/TextEditor/index.tsx | 2 +- src/components/editors/VideoEditor/index.tsx | 2 +- src/components/flow/FlowCell/index.tsx | 4 ++-- src/components/input/InputText/index.tsx | 2 +- src/components/lab/LabDescription/index.tsx | 2 +- src/components/lab/LabImage/index.tsx | 4 ++-- src/components/lab/LabLine/index.tsx | 2 +- src/components/lab/LabNode/index.tsx | 4 ++-- src/components/lab/LabNodeTitle/index.tsx | 2 +- src/components/lab/LabPad/index.tsx | 2 +- src/components/lab/LabText/index.tsx | 2 +- src/components/main/Header/index.tsx | 2 +- src/components/media/ImagePreloader/index.tsx | 2 +- src/components/node/NodeAudioBlock/index.tsx | 2 +- .../node/NodeAudioImageBlock/index.tsx | 2 +- src/components/node/NodeAuthorBlock/index.tsx | 2 +- .../node/NodeImageSwiperBlock/index.tsx | 11 ++++----- src/components/node/NodeRelatedItem/index.tsx | 2 +- .../upload/UploadDropzone/index.tsx | 2 +- src/containers/App.tsx | 4 ++-- .../dialogs/BetterScrollDialog/index.tsx | 2 +- .../dialogs/EditorCreateDialog/index.tsx | 4 ++-- src/containers/dialogs/EditorDialog/index.tsx | 8 +++---- .../dialogs/EditorEditDialog/index.tsx | 4 ++-- src/containers/dialogs/LoginDialog/index.tsx | 6 ++--- .../LoginSocialRegisterDialog/index.tsx | 2 +- src/containers/dialogs/Modal/index.tsx | 2 +- src/containers/dialogs/PhotoSwipe/index.tsx | 2 +- .../dialogs/RestorePasswordDialog/index.tsx | 2 +- .../dialogs/RestoreRequestDialog/index.tsx | 2 +- src/containers/lab/LabGrid/index.tsx | 2 +- src/containers/main/MainRouter/index.tsx | 2 +- src/containers/node/NodeBottomBlock/index.tsx | 2 +- src/containers/node/NodeComments/index.tsx | 2 +- src/containers/player/PlayerView/index.tsx | 2 +- .../sidebars/ProfileSidebar/index.tsx | 2 +- .../sidebars/SidebarWrapper/index.tsx | 2 +- src/{utils => }/hooks/boris/useBoris.ts | 4 ++-- .../color}/useColorFromString.ts | 0 .../color}/useColorGradientFromString.ts | 0 .../comments}/useCommentFormFormik.ts | 2 +- .../hooks => hooks/data}/useFileUploader.tsx | 2 +- .../hooks => hooks/data}/usePersistedState.ts | 0 .../hooks => hooks/data}/useShallowSelect.ts | 0 .../data}/useTranslatedError.ts | 0 .../dom}/useClickOutsideFocus.ts | 2 +- .../hooks => hooks/dom}/useDragDetector.tsx | 0 .../hooks => hooks/dom}/useFocusEvent.ts | 0 .../hooks => hooks/dom}/useFormatWrapper.ts | 2 ++ .../hooks => hooks/dom}/useInfiniteLoader.ts | 0 .../dom}/useInputPasteUpload.ts | 0 .../hooks => hooks/dom}/usePopperModifiers.ts | 0 .../hooks => hooks/dom}/useResizeHandler.ts | 0 .../hooks => hooks/dom}/useScrollToTop.ts | 0 src/{utils => }/hooks/flow/useFlow.ts | 6 ++--- .../hooks/flow/useFlowCellControls.ts | 0 src/{utils => }/hooks/flow/useFlowLayout.ts | 2 +- .../hooks/flow/useFlowPagination.ts | 2 +- src/{utils => }/hooks/index.ts | 0 src/{utils => }/hooks/lab/useLab.ts | 2 +- src/{utils => }/hooks/lab/useLabPagination.ts | 0 .../navigation}/useBlockBackButton.ts | 0 .../navigation}/useImageModal.ts | 0 .../data => hooks/node}/useCreateNode.ts | 2 +- src/{utils => }/hooks/node/useFullNode.ts | 6 ++--- .../hooks/data => hooks/node}/useGetNode.ts | 2 +- .../data => hooks/node}/useGetNodeRelated.ts | 0 src/{utils => }/hooks/node/useGotoNode.ts | 0 .../hooks/node/useGrouppedComments.ts | 0 src/{utils => }/hooks/node/useLoadNode.ts | 0 src/{utils => }/hooks/node/useNodeActions.ts | 0 src/{utils => }/hooks/node/useNodeAudios.ts | 0 src/{utils => }/hooks/node/useNodeBlocks.ts | 0 src/{utils => }/hooks/node/useNodeComments.ts | 0 .../hooks/node/useNodeCoverImage.ts | 0 .../hooks/node/useNodeFormFormik.ts | 2 +- src/{utils => }/hooks/node/useNodeImages.ts | 0 .../hooks/node/useNodePermissions.ts | 2 +- src/{utils => }/hooks/node/useNodeTags.ts | 2 +- src/{utils => }/hooks/node/useOnNodeSeen.ts | 0 .../data => hooks/node}/useUpdateNode.ts | 4 ++-- src/{utils => }/hooks/player/usePlayer.ts | 2 +- src/{utils => }/hooks/search/useSearch.ts | 2 +- .../hooks/user/useUserDescription.ts | 0 src/{utils => }/hooks/user/userUser.ts | 2 +- src/layouts/NodeLayout/index.tsx | 8 +++---- src/layouts/ProfileLayout/index.tsx | 2 +- src/pages/boris.tsx | 10 ++++---- src/pages/index.tsx | 6 ++--- src/pages/node/[id].tsx | 16 ++++++------- src/utils/hooks/keys.ts | 23 ------------------- src/utils/providers/LabProvider.tsx | 2 +- src/utils/providers/NodeRelatedProvider.tsx | 2 +- 106 files changed, 122 insertions(+), 144 deletions(-) rename src/{utils => }/hooks/boris/useBoris.ts (92%) rename src/{utils/hooks => hooks/color}/useColorFromString.ts (100%) rename src/{utils/hooks => hooks/color}/useColorGradientFromString.ts (100%) rename src/{utils/hooks => hooks/comments}/useCommentFormFormik.ts (96%) rename src/{utils/hooks => hooks/data}/useFileUploader.tsx (97%) rename src/{utils/hooks => hooks/data}/usePersistedState.ts (100%) rename src/{utils/hooks => hooks/data}/useShallowSelect.ts (100%) rename src/{utils/hooks => hooks/data}/useTranslatedError.ts (100%) rename src/{utils/hooks => hooks/dom}/useClickOutsideFocus.ts (93%) rename src/{utils/hooks => hooks/dom}/useDragDetector.tsx (100%) rename src/{utils/hooks => hooks/dom}/useFocusEvent.ts (100%) rename src/{utils/hooks => hooks/dom}/useFormatWrapper.ts (92%) rename src/{utils/hooks => hooks/dom}/useInfiniteLoader.ts (100%) rename src/{utils/hooks => hooks/dom}/useInputPasteUpload.ts (100%) rename src/{utils/hooks => hooks/dom}/usePopperModifiers.ts (100%) rename src/{utils/hooks => hooks/dom}/useResizeHandler.ts (100%) rename src/{utils/hooks => hooks/dom}/useScrollToTop.ts (100%) rename src/{utils => }/hooks/flow/useFlow.ts (82%) rename src/{utils => }/hooks/flow/useFlowCellControls.ts (100%) rename src/{utils => }/hooks/flow/useFlowLayout.ts (88%) rename src/{utils => }/hooks/flow/useFlowPagination.ts (83%) rename src/{utils => }/hooks/index.ts (100%) rename src/{utils => }/hooks/lab/useLab.ts (93%) rename src/{utils => }/hooks/lab/useLabPagination.ts (100%) rename src/{utils/hooks => hooks/navigation}/useBlockBackButton.ts (100%) rename src/{utils/hooks => hooks/navigation}/useImageModal.ts (100%) rename src/{utils/hooks/data => hooks/node}/useCreateNode.ts (94%) rename src/{utils => }/hooks/node/useFullNode.ts (69%) rename src/{utils/hooks/data => hooks/node}/useGetNode.ts (92%) rename src/{utils/hooks/data => hooks/node}/useGetNodeRelated.ts (100%) rename src/{utils => }/hooks/node/useGotoNode.ts (100%) rename src/{utils => }/hooks/node/useGrouppedComments.ts (100%) rename src/{utils => }/hooks/node/useLoadNode.ts (100%) rename src/{utils => }/hooks/node/useNodeActions.ts (100%) rename src/{utils => }/hooks/node/useNodeAudios.ts (100%) rename src/{utils => }/hooks/node/useNodeBlocks.ts (100%) rename src/{utils => }/hooks/node/useNodeComments.ts (100%) rename src/{utils => }/hooks/node/useNodeCoverImage.ts (100%) rename src/{utils => }/hooks/node/useNodeFormFormik.ts (96%) rename src/{utils => }/hooks/node/useNodeImages.ts (100%) rename src/{utils => }/hooks/node/useNodePermissions.ts (88%) rename src/{utils => }/hooks/node/useNodeTags.ts (95%) rename src/{utils => }/hooks/node/useOnNodeSeen.ts (100%) rename src/{utils/hooks/data => hooks/node}/useUpdateNode.ts (91%) rename src/{utils => }/hooks/player/usePlayer.ts (92%) rename src/{utils => }/hooks/search/useSearch.ts (91%) rename src/{utils => }/hooks/user/useUserDescription.ts (100%) rename src/{utils => }/hooks/user/userUser.ts (62%) delete mode 100644 src/utils/hooks/keys.ts diff --git a/src/components/boris/Superpower/index.tsx b/src/components/boris/Superpower/index.tsx index 1864c677..cbb117b7 100644 --- a/src/components/boris/Superpower/index.tsx +++ b/src/components/boris/Superpower/index.tsx @@ -1,5 +1,5 @@ import React, { FC } from 'react'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectAuthIsTester, selectUser } from '~/redux/auth/selectors'; interface IProps {} diff --git a/src/components/comment/CommentForm/index.tsx b/src/components/comment/CommentForm/index.tsx index 0f1a2b2b..235d3707 100644 --- a/src/components/comment/CommentForm/index.tsx +++ b/src/components/comment/CommentForm/index.tsx @@ -1,9 +1,9 @@ import React, { FC, useCallback, useState } from 'react'; -import { useCommentFormFormik } from '~/utils/hooks/useCommentFormFormik'; +import { useCommentFormFormik } from '~/hooks/comments/useCommentFormFormik'; import { FormikProvider } from 'formik'; import { LocalCommentFormTextarea } from '~/components/comment/LocalCommentFormTextarea'; import { Button } from '~/components/input/Button'; -import { FileUploaderProvider, useFileUploader } from '~/utils/hooks/useFileUploader'; +import { FileUploaderProvider, useFileUploader } from '~/hooks/data/useFileUploader'; import { UPLOAD_SUBJECTS, UPLOAD_TARGETS } from '~/redux/uploads/constants'; import { CommentFormAttachButtons } from '~/components/comment/CommentFormAttachButtons'; import { CommentFormFormatButtons } from '~/components/comment/CommentFormFormatButtons'; @@ -14,7 +14,7 @@ import { EMPTY_COMMENT } from '~/redux/node/constants'; import { UploadDropzone } from '~/components/upload/UploadDropzone'; import styles from './styles.module.scss'; import { ERROR_LITERAL } from '~/constants/errors'; -import { useInputPasteUpload } from '~/utils/hooks/useInputPasteUpload'; +import { useInputPasteUpload } from '~/hooks/dom/useInputPasteUpload'; import { Filler } from '~/components/containers/Filler'; interface IProps { diff --git a/src/components/comment/CommentFormAttaches/index.tsx b/src/components/comment/CommentFormAttaches/index.tsx index 1523a578..52d970d3 100644 --- a/src/components/comment/CommentFormAttaches/index.tsx +++ b/src/components/comment/CommentFormAttaches/index.tsx @@ -5,9 +5,9 @@ import { SortableAudioGrid } from '~/components/editors/SortableAudioGrid'; import { IFile } from '~/redux/types'; import { SortEnd } from 'react-sortable-hoc'; import { moveArrItem } from '~/utils/fn'; -import { useFileDropZone } from '~/utils/hooks'; +import { useFileDropZone } from '~/hooks'; import { COMMENT_FILE_TYPES, UPLOAD_TYPES } from '~/redux/uploads/constants'; -import { useFileUploaderContext } from '~/utils/hooks/useFileUploader'; +import { useFileUploaderContext } from '~/hooks/data/useFileUploader'; const CommentFormAttaches: FC = () => { const uploader = useFileUploaderContext(); diff --git a/src/components/comment/CommentFormFormatButtons/index.tsx b/src/components/comment/CommentFormFormatButtons/index.tsx index 17df65e6..5de43ccc 100644 --- a/src/components/comment/CommentFormFormatButtons/index.tsx +++ b/src/components/comment/CommentFormFormatButtons/index.tsx @@ -1,7 +1,7 @@ import React, { FC, useCallback, useEffect } from 'react'; import { ButtonGroup } from '~/components/input/ButtonGroup'; import { Button } from '~/components/input/Button'; -import { useFormatWrapper, wrapTextInsideInput } from '~/utils/hooks/useFormatWrapper'; +import { useFormatWrapper, wrapTextInsideInput } from '~/hooks/dom/useFormatWrapper'; import styles from './styles.module.scss'; interface IProps { diff --git a/src/components/comment/LocalCommentFormTextarea/index.tsx b/src/components/comment/LocalCommentFormTextarea/index.tsx index 2dab51fb..36234743 100644 --- a/src/components/comment/LocalCommentFormTextarea/index.tsx +++ b/src/components/comment/LocalCommentFormTextarea/index.tsx @@ -1,6 +1,6 @@ import React, { FC, KeyboardEventHandler, useCallback } from 'react'; import { Textarea } from '~/components/input/Textarea'; -import { useCommentFormContext } from '~/utils/hooks/useCommentFormFormik'; +import { useCommentFormContext } from '~/hooks/comments/useCommentFormFormik'; import { useRandomPhrase } from '~/constants/phrases'; interface IProps { diff --git a/src/components/containers/Authorized/index.tsx b/src/components/containers/Authorized/index.tsx index e0b6085b..08fc6e69 100644 --- a/src/components/containers/Authorized/index.tsx +++ b/src/components/containers/Authorized/index.tsx @@ -1,5 +1,5 @@ import React, { FC } from 'react'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectUser } from '~/redux/auth/selectors'; interface IProps {} diff --git a/src/components/editors/AudioEditor/index.tsx b/src/components/editors/AudioEditor/index.tsx index 335f651c..4ac55d37 100644 --- a/src/components/editors/AudioEditor/index.tsx +++ b/src/components/editors/AudioEditor/index.tsx @@ -8,10 +8,10 @@ import { selectUploads } from '~/redux/uploads/selectors'; import * as UPLOAD_ACTIONS from '~/redux/uploads/actions'; import styles from './styles.module.scss'; import { NodeEditorProps } from '~/redux/node/types'; -import { useNodeImages } from '~/utils/hooks/node/useNodeImages'; -import { useNodeAudios } from '~/utils/hooks/node/useNodeAudios'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; -import { useFileUploaderContext } from '~/utils/hooks/useFileUploader'; +import { useNodeImages } from '~/hooks/node/useNodeImages'; +import { useNodeAudios } from '~/hooks/node/useNodeAudios'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; +import { useFileUploaderContext } from '~/hooks/data/useFileUploader'; import { UploadDropzone } from '~/components/upload/UploadDropzone'; type IProps = NodeEditorProps; diff --git a/src/components/editors/EditorActionsPanel/index.tsx b/src/components/editors/EditorActionsPanel/index.tsx index 4a1f9164..a0771b43 100644 --- a/src/components/editors/EditorActionsPanel/index.tsx +++ b/src/components/editors/EditorActionsPanel/index.tsx @@ -2,7 +2,7 @@ import React, { FC, createElement } from 'react'; import styles from './styles.module.scss'; import { NODE_PANEL_COMPONENTS } from '~/redux/node/constants'; import { has } from 'ramda'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; const EditorActionsPanel: FC = () => { const { values } = useNodeFormContext(); diff --git a/src/components/editors/EditorButtons/index.tsx b/src/components/editors/EditorButtons/index.tsx index 996dd2ba..b0679907 100644 --- a/src/components/editors/EditorButtons/index.tsx +++ b/src/components/editors/EditorButtons/index.tsx @@ -4,7 +4,7 @@ import { Group } from '~/components/containers/Group'; import { InputText } from '~/components/input/InputText'; import { Button } from '~/components/input/Button'; import { Padder } from '~/components/containers/Padder'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; const EditorButtons: FC = () => { const { values, handleChange, isSubmitting } = useNodeFormContext(); diff --git a/src/components/editors/EditorPublicSwitch/index.tsx b/src/components/editors/EditorPublicSwitch/index.tsx index 0022db25..fa94f004 100644 --- a/src/components/editors/EditorPublicSwitch/index.tsx +++ b/src/components/editors/EditorPublicSwitch/index.tsx @@ -3,7 +3,7 @@ import { IEditorComponentProps } from '~/redux/node/types'; import { Button } from '~/components/input/Button'; import { Icon } from '~/components/input/Icon'; import styles from './styles.module.scss'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; interface IProps extends IEditorComponentProps {} diff --git a/src/components/editors/EditorUploadButton/index.tsx b/src/components/editors/EditorUploadButton/index.tsx index a5b0849c..42a45b37 100644 --- a/src/components/editors/EditorUploadButton/index.tsx +++ b/src/components/editors/EditorUploadButton/index.tsx @@ -3,9 +3,9 @@ import styles from './styles.module.scss'; import { Icon } from '~/components/input/Icon'; import { UPLOAD_TYPES } from '~/redux/uploads/constants'; import { IEditorComponentProps } from '~/redux/node/types'; -import { useFileUploaderContext } from '~/utils/hooks/useFileUploader'; +import { useFileUploaderContext } from '~/hooks/data/useFileUploader'; import { getFileType } from '~/utils/uploader'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; import { Button } from '~/components/input/Button'; type IProps = IEditorComponentProps & { diff --git a/src/components/editors/EditorUploadCoverButton/index.tsx b/src/components/editors/EditorUploadCoverButton/index.tsx index f74ddfa1..140d2242 100644 --- a/src/components/editors/EditorUploadCoverButton/index.tsx +++ b/src/components/editors/EditorUploadCoverButton/index.tsx @@ -11,8 +11,8 @@ import { getURL } from '~/utils/dom'; import { Icon } from '~/components/input/Icon'; import { PRESETS } from '~/constants/urls'; import { IEditorComponentProps } from '~/redux/node/types'; -import { useFileUploader, useFileUploaderContext } from '~/utils/hooks/useFileUploader'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useFileUploader, useFileUploaderContext } from '~/hooks/data/useFileUploader'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; import { getFileType } from '~/utils/uploader'; type IProps = IEditorComponentProps & {}; diff --git a/src/components/editors/ImageEditor/index.tsx b/src/components/editors/ImageEditor/index.tsx index 8dc2a0f0..90b9e0c4 100644 --- a/src/components/editors/ImageEditor/index.tsx +++ b/src/components/editors/ImageEditor/index.tsx @@ -2,7 +2,7 @@ import React, { FC } from 'react'; import { ImageGrid } from '~/components/editors/ImageGrid'; import styles from './styles.module.scss'; import { NodeEditorProps } from '~/redux/node/types'; -import { useFileUploaderContext } from '~/utils/hooks/useFileUploader'; +import { useFileUploaderContext } from '~/hooks/data/useFileUploader'; import { UploadDropzone } from '~/components/upload/UploadDropzone'; type IProps = NodeEditorProps; diff --git a/src/components/editors/TextEditor/index.tsx b/src/components/editors/TextEditor/index.tsx index a6d7e217..cdba234b 100644 --- a/src/components/editors/TextEditor/index.tsx +++ b/src/components/editors/TextEditor/index.tsx @@ -4,7 +4,7 @@ import styles from './styles.module.scss'; import { Textarea } from '~/components/input/Textarea'; import { path } from 'ramda'; import { NodeEditorProps } from '~/redux/node/types'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; type IProps = NodeEditorProps & {}; diff --git a/src/components/editors/VideoEditor/index.tsx b/src/components/editors/VideoEditor/index.tsx index 489046ac..dc0caced 100644 --- a/src/components/editors/VideoEditor/index.tsx +++ b/src/components/editors/VideoEditor/index.tsx @@ -6,7 +6,7 @@ import { InputText } from '~/components/input/InputText'; import classnames from 'classnames'; import { getYoutubeThumb } from '~/utils/dom'; import { NodeEditorProps } from '~/redux/node/types'; -import { useNodeFormContext } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik'; type IProps = NodeEditorProps & {}; diff --git a/src/components/flow/FlowCell/index.tsx b/src/components/flow/FlowCell/index.tsx index cd48a6f6..a0a182f2 100644 --- a/src/components/flow/FlowCell/index.tsx +++ b/src/components/flow/FlowCell/index.tsx @@ -6,8 +6,8 @@ import { FlowDisplay, INode } from '~/redux/types'; import { FlowCellText } from '~/components/flow/FlowCellText'; import classNames from 'classnames'; import { FlowCellMenu } from '~/components/flow/FlowCellMenu'; -import { useFlowCellControls } from '~/utils/hooks/flow/useFlowCellControls'; -import { useClickOutsideFocus } from '~/utils/hooks/useClickOutsideFocus'; +import { useFlowCellControls } from '~/hooks/flow/useFlowCellControls'; +import { useClickOutsideFocus } from '~/hooks/dom/useClickOutsideFocus'; import { MenuDots } from '~/components/common/MenuDots'; import { FlowCellImage } from '~/components/flow/FlowCellImage'; diff --git a/src/components/input/InputText/index.tsx b/src/components/input/InputText/index.tsx index 737b1485..3899fac4 100644 --- a/src/components/input/InputText/index.tsx +++ b/src/components/input/InputText/index.tsx @@ -4,7 +4,7 @@ import styles from '~/styles/common/inputs.module.scss'; import { Icon } from '~/components/input/Icon'; import { IInputTextProps } from '~/redux/types'; import { LoaderCircle } from '~/components/input/LoaderCircle'; -import { useTranslatedError } from '~/utils/hooks/useTranslatedError'; +import { useTranslatedError } from '~/hooks/data/useTranslatedError'; const InputText: FC = ({ wrapperClassName, diff --git a/src/components/lab/LabDescription/index.tsx b/src/components/lab/LabDescription/index.tsx index 05a0c537..f71fe917 100644 --- a/src/components/lab/LabDescription/index.tsx +++ b/src/components/lab/LabDescription/index.tsx @@ -3,7 +3,7 @@ import { INodeComponentProps } from '~/redux/node/constants'; import styles from './styles.module.scss'; import { Markdown } from '~/components/containers/Markdown'; import { formatText } from '~/utils/dom'; -import { useGotoNode } from '~/utils/hooks/node/useGotoNode'; +import { useGotoNode } from '~/hooks/node/useGotoNode'; import { Paragraph } from '~/components/placeholders/Paragraph'; const LabDescription: FC = ({ node, isLoading }) => { diff --git a/src/components/lab/LabImage/index.tsx b/src/components/lab/LabImage/index.tsx index b8205e5e..715d4991 100644 --- a/src/components/lab/LabImage/index.tsx +++ b/src/components/lab/LabImage/index.tsx @@ -9,8 +9,8 @@ import 'swiper/components/zoom/zoom.scss'; import 'swiper/components/navigation/navigation.scss'; import styles from './styles.module.scss'; -import { useNodeImages } from '~/utils/hooks/node/useNodeImages'; -import { useGotoNode } from '~/utils/hooks/node/useGotoNode'; +import { useNodeImages } from '~/hooks/node/useNodeImages'; +import { useGotoNode } from '~/hooks/node/useGotoNode'; import { Placeholder } from '~/components/placeholders/Placeholder'; import { normalizeBrightColor } from '~/utils/color'; import { ImagePreloader } from '~/components/media/ImagePreloader'; diff --git a/src/components/lab/LabLine/index.tsx b/src/components/lab/LabLine/index.tsx index 5c863b61..5096d117 100644 --- a/src/components/lab/LabLine/index.tsx +++ b/src/components/lab/LabLine/index.tsx @@ -1,7 +1,7 @@ import React, { FC } from 'react'; import styles from './styles.module.scss'; import { INodeComponentProps } from '~/redux/node/constants'; -import { useColorGradientFromString } from '~/utils/hooks/useColorGradientFromString'; +import { useColorGradientFromString } from '~/hooks/color/useColorGradientFromString'; interface Props extends INodeComponentProps {} diff --git a/src/components/lab/LabNode/index.tsx b/src/components/lab/LabNode/index.tsx index 83b6da31..32d608a9 100644 --- a/src/components/lab/LabNode/index.tsx +++ b/src/components/lab/LabNode/index.tsx @@ -1,11 +1,11 @@ import React, { FC, useMemo } from 'react'; import { INode } from '~/redux/types'; -import { useNodeBlocks } from '~/utils/hooks/node/useNodeBlocks'; +import { useNodeBlocks } from '~/hooks/node/useNodeBlocks'; import styles from './styles.module.scss'; import { LabBottomPanel } from '~/components/lab/LabBottomPanel'; import { isAfter, parseISO } from 'date-fns'; import classNames from 'classnames'; -import { useColorGradientFromString } from '~/utils/hooks/useColorGradientFromString'; +import { useColorGradientFromString } from '~/hooks/color/useColorGradientFromString'; interface IProps { node: INode; diff --git a/src/components/lab/LabNodeTitle/index.tsx b/src/components/lab/LabNodeTitle/index.tsx index 45e37624..fad48b86 100644 --- a/src/components/lab/LabNodeTitle/index.tsx +++ b/src/components/lab/LabNodeTitle/index.tsx @@ -4,7 +4,7 @@ import styles from './styles.module.scss'; import { Group } from '~/components/containers/Group'; import { Icon } from '~/components/input/Icon'; import Tippy from '@tippy.js/react'; -import { useGotoNode } from '~/utils/hooks/node/useGotoNode'; +import { useGotoNode } from '~/hooks/node/useGotoNode'; import { INodeComponentProps } from '~/redux/node/constants'; import { Placeholder } from '~/components/placeholders/Placeholder'; diff --git a/src/components/lab/LabPad/index.tsx b/src/components/lab/LabPad/index.tsx index cee7be45..45dd71da 100644 --- a/src/components/lab/LabPad/index.tsx +++ b/src/components/lab/LabPad/index.tsx @@ -1,7 +1,7 @@ import React, { FC } from 'react'; import styles from './styles.module.scss'; import { INodeComponentProps } from '~/redux/node/constants'; -import { useGotoNode } from '~/utils/hooks/node/useGotoNode'; +import { useGotoNode } from '~/hooks/node/useGotoNode'; const LabPad: FC = ({ node }) => { const onClick = useGotoNode(node.id); diff --git a/src/components/lab/LabText/index.tsx b/src/components/lab/LabText/index.tsx index aeeb61ee..9c562b0a 100644 --- a/src/components/lab/LabText/index.tsx +++ b/src/components/lab/LabText/index.tsx @@ -4,7 +4,7 @@ import { INodeComponentProps } from '~/redux/node/constants'; import { formatTextParagraphs } from '~/utils/dom'; import { path } from 'ramda'; import styles from './styles.module.scss'; -import { useGotoNode } from '~/utils/hooks/node/useGotoNode'; +import { useGotoNode } from '~/hooks/node/useGotoNode'; import { Paragraph } from '~/components/placeholders/Paragraph'; const LabText: FC = ({ node, isLoading }) => { diff --git a/src/components/main/Header/index.tsx b/src/components/main/Header/index.tsx index f8f26e8d..d343a561 100644 --- a/src/components/main/Header/index.tsx +++ b/src/components/main/Header/index.tsx @@ -19,7 +19,7 @@ import * as AUTH_ACTIONS from '~/redux/auth/actions'; import { IState } from '~/redux/store'; import isBefore from 'date-fns/isBefore'; import { Authorized } from '~/components/containers/Authorized'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectLabUpdatesNodes } from '~/redux/lab/selectors'; import { selectFlowUpdated } from '~/redux/flow/selectors'; import { Button } from '~/components/input/Button'; diff --git a/src/components/media/ImagePreloader/index.tsx b/src/components/media/ImagePreloader/index.tsx index 0afa1743..d37a738d 100644 --- a/src/components/media/ImagePreloader/index.tsx +++ b/src/components/media/ImagePreloader/index.tsx @@ -6,7 +6,7 @@ import styles from './styles.module.scss'; import { IFile } from '~/redux/types'; import { LoaderCircle } from '~/components/input/LoaderCircle'; import { Icon } from '~/components/input/Icon'; -import { useResizeHandler } from '~/utils/hooks/useResizeHandler'; +import { useResizeHandler } from '~/hooks/dom/useResizeHandler'; import { DEFAULT_DOMINANT_COLOR } from '~/constants/node'; interface IProps { diff --git a/src/components/node/NodeAudioBlock/index.tsx b/src/components/node/NodeAudioBlock/index.tsx index c064e831..1a44d2fd 100644 --- a/src/components/node/NodeAudioBlock/index.tsx +++ b/src/components/node/NodeAudioBlock/index.tsx @@ -4,7 +4,7 @@ import { UPLOAD_TYPES } from '~/redux/uploads/constants'; import { AudioPlayer } from '~/components/media/AudioPlayer'; import styles from './styles.module.scss'; import { INodeComponentProps } from '~/redux/node/constants'; -import { useNodeAudios } from '~/utils/hooks/node/useNodeAudios'; +import { useNodeAudios } from '~/hooks/node/useNodeAudios'; interface IProps extends INodeComponentProps {} diff --git a/src/components/node/NodeAudioImageBlock/index.tsx b/src/components/node/NodeAudioImageBlock/index.tsx index e7834737..60ac2148 100644 --- a/src/components/node/NodeAudioImageBlock/index.tsx +++ b/src/components/node/NodeAudioImageBlock/index.tsx @@ -6,7 +6,7 @@ import { path } from 'ramda'; import { getURL } from '~/utils/dom'; import { PRESETS } from '~/constants/urls'; import { INodeComponentProps } from '~/redux/node/constants'; -import { useNodeImages } from '~/utils/hooks/node/useNodeImages'; +import { useNodeImages } from '~/hooks/node/useNodeImages'; interface IProps extends INodeComponentProps {} diff --git a/src/components/node/NodeAuthorBlock/index.tsx b/src/components/node/NodeAuthorBlock/index.tsx index da314400..66ba3662 100644 --- a/src/components/node/NodeAuthorBlock/index.tsx +++ b/src/components/node/NodeAuthorBlock/index.tsx @@ -2,7 +2,7 @@ import React, { FC, useCallback } from 'react'; import styles from './styles.module.scss'; import { Avatar } from '~/components/common/Avatar'; import { openUserProfile } from '~/utils/user'; -import { useUserDescription } from '~/utils/hooks/user/useUserDescription'; +import { useUserDescription } from '~/hooks/user/useUserDescription'; import { INodeUser } from '~/redux/types'; interface Props { diff --git a/src/components/node/NodeImageSwiperBlock/index.tsx b/src/components/node/NodeImageSwiperBlock/index.tsx index cc52d330..c7e5a8c1 100644 --- a/src/components/node/NodeImageSwiperBlock/index.tsx +++ b/src/components/node/NodeImageSwiperBlock/index.tsx @@ -10,12 +10,11 @@ import styles from './styles.module.scss'; import SwiperCore, { Keyboard, Navigation, Pagination, SwiperOptions } from 'swiper'; -import { useNodeImages } from '~/utils/hooks/node/useNodeImages'; +import { useNodeImages } from '~/hooks/node/useNodeImages'; import SwiperClass from 'swiper/types/swiper-class'; -import { modalShowPhotoswipe } from '~/redux/modal/actions'; -import { useDispatch } from 'react-redux'; import { ImagePreloader } from '~/components/media/ImagePreloader'; import { normalizeBrightColor } from '~/utils/color'; +import { useImageModal } from '~/hooks/navigation/useImageModal'; SwiperCore.use([Navigation, Pagination, Keyboard]); @@ -28,8 +27,8 @@ const breakpoints: SwiperOptions['breakpoints'] = { }; const NodeImageSwiperBlock: FC = ({ node }) => { - const dispatch = useDispatch(); const [controlledSwiper, setControlledSwiper] = useState(undefined); + const showPhotoSwiper = useImageModal(); const images = useNodeImages(node); @@ -50,9 +49,9 @@ const NodeImageSwiperBlock: FC = ({ node }) => { return; } - dispatch(modalShowPhotoswipe(images, index)); + showPhotoSwiper(images, index); }, - [dispatch, images, controlledSwiper] + [images, controlledSwiper, showPhotoSwiper] ); if (!images?.length) { diff --git a/src/components/node/NodeRelatedItem/index.tsx b/src/components/node/NodeRelatedItem/index.tsx index c3d6e0d3..d5bda108 100644 --- a/src/components/node/NodeRelatedItem/index.tsx +++ b/src/components/node/NodeRelatedItem/index.tsx @@ -6,7 +6,7 @@ import { PRESETS, URLS } from '~/constants/urls'; import { RouteComponentProps, withRouter } from 'react-router'; import { getURL } from '~/utils/dom'; import { Avatar } from '~/components/common/Avatar'; -import { useColorGradientFromString } from '~/utils/hooks/useColorGradientFromString'; +import { useColorGradientFromString } from '~/hooks/color/useColorGradientFromString'; type IProps = RouteComponentProps & { item: Partial; diff --git a/src/components/upload/UploadDropzone/index.tsx b/src/components/upload/UploadDropzone/index.tsx index a4e70e8f..c72f71a9 100644 --- a/src/components/upload/UploadDropzone/index.tsx +++ b/src/components/upload/UploadDropzone/index.tsx @@ -5,7 +5,7 @@ import classNames from 'classnames'; import styles from './styles.module.scss'; import { DivProps } from '~/utils/types'; import { DropHereIcon } from '~/components/input/DropHereIcon'; -import { useDragDetector } from '~/utils/hooks/useDragDetector'; +import { useDragDetector } from '~/hooks/dom/useDragDetector'; interface IProps extends DivProps { onUpload: (files: File[]) => void; diff --git a/src/containers/App.tsx b/src/containers/App.tsx index c69ff69c..63395741 100644 --- a/src/containers/App.tsx +++ b/src/containers/App.tsx @@ -7,8 +7,8 @@ import { Modal } from '~/containers/dialogs/Modal'; import { PageCover } from '~/components/containers/PageCover'; 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 { DragDetectorProvider } from '~/hooks/dom/useDragDetector'; +import { useUser } from '~/hooks/user/userUser'; import { UserContextProvider } from '~/utils/context/UserContextProvider'; import { SWRConfigProvider } from '~/utils/providers/SWRConfigProvider'; diff --git a/src/containers/dialogs/BetterScrollDialog/index.tsx b/src/containers/dialogs/BetterScrollDialog/index.tsx index f2a42838..7b7d6d98 100644 --- a/src/containers/dialogs/BetterScrollDialog/index.tsx +++ b/src/containers/dialogs/BetterScrollDialog/index.tsx @@ -3,7 +3,7 @@ import styles from './styles.module.scss'; import { clearAllBodyScrollLocks, disableBodyScroll } from 'body-scroll-lock'; import { Icon } from '~/components/input/Icon'; import { LoaderCircle } from '~/components/input/LoaderCircle'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; interface IProps { children: React.ReactChild; diff --git a/src/containers/dialogs/EditorCreateDialog/index.tsx b/src/containers/dialogs/EditorCreateDialog/index.tsx index ab13143a..867e75ee 100644 --- a/src/containers/dialogs/EditorCreateDialog/index.tsx +++ b/src/containers/dialogs/EditorCreateDialog/index.tsx @@ -5,8 +5,8 @@ import { useHistory, useRouteMatch } from 'react-router'; import { values } from 'ramda'; import { INode } from '~/redux/types'; import { apiPostNode } from '~/redux/node/api'; -import { useUpdateNode } from '~/utils/hooks/data/useUpdateNode'; -import { useCreateNode } from '~/utils/hooks/data/useCreateNode'; +import { useUpdateNode } from '~/hooks/node/useUpdateNode'; +import { useCreateNode } from '~/hooks/node/useCreateNode'; const EditorCreateDialog: FC = () => { const history = useHistory(); diff --git a/src/containers/dialogs/EditorDialog/index.tsx b/src/containers/dialogs/EditorDialog/index.tsx index ebb67a0e..7982e156 100644 --- a/src/containers/dialogs/EditorDialog/index.tsx +++ b/src/containers/dialogs/EditorDialog/index.tsx @@ -5,15 +5,15 @@ import { NODE_EDITORS } from '~/redux/node/constants'; import { BetterScrollDialog } from '../BetterScrollDialog'; import { CoverBackdrop } from '~/components/containers/CoverBackdrop'; import { prop } from 'ramda'; -import { useNodeFormFormik } from '~/utils/hooks/node/useNodeFormFormik'; +import { useNodeFormFormik } from '~/hooks/node/useNodeFormFormik'; import { EditorButtons } from '~/components/editors/EditorButtons'; -import { FileUploaderProvider, useFileUploader } from '~/utils/hooks/useFileUploader'; +import { FileUploaderProvider, useFileUploader } from '~/hooks/data/useFileUploader'; import { UPLOAD_SUBJECTS, UPLOAD_TARGETS } from '~/redux/uploads/constants'; import { FormikProvider } from 'formik'; import { INode } from '~/redux/types'; import { ModalWrapper } from '~/components/dialogs/ModalWrapper'; -import { useTranslatedError } from '~/utils/hooks/useTranslatedError'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useTranslatedError } from '~/hooks/data/useTranslatedError'; +import { useCloseOnEscape } from '~/hooks'; import { EditorConfirmClose } from '~/components/editors/EditorConfirmClose'; import { on } from 'cluster'; diff --git a/src/containers/dialogs/EditorEditDialog/index.tsx b/src/containers/dialogs/EditorEditDialog/index.tsx index 61afe612..3ef76cde 100644 --- a/src/containers/dialogs/EditorEditDialog/index.tsx +++ b/src/containers/dialogs/EditorEditDialog/index.tsx @@ -4,8 +4,8 @@ import { useHistory, useRouteMatch } from 'react-router'; import { ModalWrapper } from '~/components/dialogs/ModalWrapper'; import { LoaderCircle } from '~/components/input/LoaderCircle'; import styles from './styles.module.scss'; -import { useGetNode } from '~/utils/hooks/data/useGetNode'; -import { useUpdateNode } from '~/utils/hooks/data/useUpdateNode'; +import { useGetNode } from '~/hooks/node/useGetNode'; +import { useUpdateNode } from '~/hooks/node/useUpdateNode'; import { INode } from '~/redux/types'; const EditorEditDialog: FC = () => { diff --git a/src/containers/dialogs/LoginDialog/index.tsx b/src/containers/dialogs/LoginDialog/index.tsx index 607dd7e6..f10f46cc 100644 --- a/src/containers/dialogs/LoginDialog/index.tsx +++ b/src/containers/dialogs/LoginDialog/index.tsx @@ -1,7 +1,7 @@ import React, { FC, FormEvent, useCallback, useEffect, useState } from 'react'; import { connect } from 'react-redux'; import { DIALOGS, IDialogProps } from '~/redux/modal/constants'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; import { Group } from '~/components/containers/Group'; import { InputText } from '~/components/input/InputText'; import { Button } from '~/components/input/Button'; @@ -18,7 +18,7 @@ import { pick } from 'ramda'; import { LoginDialogButtons } from '~/containers/dialogs/LoginDialogButtons'; import { OAUTH_EVENT_TYPES } from '~/redux/types'; import { DialogTitle } from '~/components/dialogs/DialogTitle'; -import { useTranslatedError } from '~/utils/hooks/useTranslatedError'; +import { useTranslatedError } from '~/hooks/data/useTranslatedError'; const mapStateToProps = state => ({ ...pick(['error', 'is_registering'], selectAuthLogin(state)), @@ -80,7 +80,7 @@ const LoginDialogUnconnected: FC = ({ [authGotOauthLoginEvent] ); - useEffect(() => { + useEffect(() => { if (error) userSetLoginError(''); // eslint-disable-next-line react-hooks/exhaustive-deps }, [username, password]); diff --git a/src/containers/dialogs/LoginSocialRegisterDialog/index.tsx b/src/containers/dialogs/LoginSocialRegisterDialog/index.tsx index 658d9fbc..3db43cdf 100644 --- a/src/containers/dialogs/LoginSocialRegisterDialog/index.tsx +++ b/src/containers/dialogs/LoginSocialRegisterDialog/index.tsx @@ -9,7 +9,7 @@ import { InputText } from '~/components/input/InputText'; import styles from './styles.module.scss'; import { selectAuthRegisterSocial } from '~/redux/auth/selectors'; import * as AUTH_ACTIONS from '~/redux/auth/actions'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; import { LoginSocialRegisterButtons } from '~/containers/dialogs/LoginSocialRegisterButtons'; import { Toggle } from '~/components/input/Toggle'; diff --git a/src/containers/dialogs/Modal/index.tsx b/src/containers/dialogs/Modal/index.tsx index 12184b9a..d9ee618d 100644 --- a/src/containers/dialogs/Modal/index.tsx +++ b/src/containers/dialogs/Modal/index.tsx @@ -1,7 +1,7 @@ import React, { FC, useCallback } from 'react'; import { useDispatch } from 'react-redux'; import { DIALOG_CONTENT } from '~/constants/dialogs'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectModal } from '~/redux/modal/selectors'; import { modalSetDialog, modalSetShown, modalShowDialog } from '~/redux/modal/actions'; import { ModalWrapper } from '~/components/dialogs/ModalWrapper'; diff --git a/src/containers/dialogs/PhotoSwipe/index.tsx b/src/containers/dialogs/PhotoSwipe/index.tsx index e0ef6d33..1a70f0dc 100644 --- a/src/containers/dialogs/PhotoSwipe/index.tsx +++ b/src/containers/dialogs/PhotoSwipe/index.tsx @@ -12,7 +12,7 @@ import { PRESETS } from '~/constants/urls'; import * as MODAL_ACTIONS from '~/redux/modal/actions'; import styles from './styles.module.scss'; import classNames from 'classnames'; -import { useBlockBackButton } from '~/utils/hooks/useBlockBackButton'; +import { useBlockBackButton } from '~/hooks/navigation/useBlockBackButton'; const mapStateToProps = (state: IState) => ({ photoswipe: selectModal(state).photoswipe, diff --git a/src/containers/dialogs/RestorePasswordDialog/index.tsx b/src/containers/dialogs/RestorePasswordDialog/index.tsx index b47ab5f1..5f00a682 100644 --- a/src/containers/dialogs/RestorePasswordDialog/index.tsx +++ b/src/containers/dialogs/RestorePasswordDialog/index.tsx @@ -12,7 +12,7 @@ import { pick } from 'ramda'; import { selectAuthRestore } from '~/redux/auth/selectors'; import { ERROR_LITERAL, ERRORS } from '~/constants/errors'; import { Icon } from '~/components/input/Icon'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; const mapStateToProps = state => ({ restore: selectAuthRestore(state), diff --git a/src/containers/dialogs/RestoreRequestDialog/index.tsx b/src/containers/dialogs/RestoreRequestDialog/index.tsx index 3e1c7fd1..3faa6394 100644 --- a/src/containers/dialogs/RestoreRequestDialog/index.tsx +++ b/src/containers/dialogs/RestoreRequestDialog/index.tsx @@ -12,7 +12,7 @@ import { pick } from 'ramda'; import { selectAuthRestore } from '~/redux/auth/selectors'; import { ERROR_LITERAL } from '~/constants/errors'; import { Icon } from '~/components/input/Icon'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; const mapStateToProps = state => ({ restore: selectAuthRestore(state), diff --git a/src/containers/lab/LabGrid/index.tsx b/src/containers/lab/LabGrid/index.tsx index 4bc112c2..792cd8bc 100644 --- a/src/containers/lab/LabGrid/index.tsx +++ b/src/containers/lab/LabGrid/index.tsx @@ -4,7 +4,7 @@ import styles from './styles.module.scss'; import { LabNode } from '~/components/lab/LabNode'; import { EMPTY_NODE, NODE_TYPES } from '~/redux/node/constants'; import { values } from 'ramda'; -import { useLabPagination } from '~/utils/hooks/lab/useLabPagination'; +import { useLabPagination } from '~/hooks/lab/useLabPagination'; import { useLabContext } from '~/utils/context/LabContextProvider'; interface IProps {} diff --git a/src/containers/main/MainRouter/index.tsx b/src/containers/main/MainRouter/index.tsx index 09e681e6..8d62488c 100644 --- a/src/containers/main/MainRouter/index.tsx +++ b/src/containers/main/MainRouter/index.tsx @@ -2,7 +2,7 @@ import React, { FC } from 'react'; import { URLS } from '~/constants/urls'; import { ErrorNotFound } from '~/containers/pages/ErrorNotFound'; import { Redirect, Route, Switch, useLocation } from 'react-router'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectAuthUser } from '~/redux/auth/selectors'; import { ProfileLayout } from '~/layouts/ProfileLayout'; import FlowPage from '~/pages'; diff --git a/src/containers/node/NodeBottomBlock/index.tsx b/src/containers/node/NodeBottomBlock/index.tsx index 348891a1..32e67c47 100644 --- a/src/containers/node/NodeBottomBlock/index.tsx +++ b/src/containers/node/NodeBottomBlock/index.tsx @@ -4,7 +4,7 @@ import { Group } from '~/components/containers/Group'; import { Padder } from '~/components/containers/Padder'; import { NodeCommentForm } from '~/components/node/NodeCommentForm'; import { NodeRelatedBlock } from '~/components/node/NodeRelatedBlock'; -import { useNodeBlocks } from '~/utils/hooks/node/useNodeBlocks'; +import { useNodeBlocks } from '~/hooks/node/useNodeBlocks'; import { NodeTagsBlock } from '~/components/node/NodeTagsBlock'; import StickyBox from 'react-sticky-box/dist/esnext'; import styles from './styles.module.scss'; diff --git a/src/containers/node/NodeComments/index.tsx b/src/containers/node/NodeComments/index.tsx index 0d129c4a..0410039b 100644 --- a/src/containers/node/NodeComments/index.tsx +++ b/src/containers/node/NodeComments/index.tsx @@ -5,7 +5,7 @@ import { ICommentGroup } from '~/redux/types'; 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 { useGrouppedComments } from '~/hooks/node/useGrouppedComments'; import { useCommentContext } from '~/utils/context/CommentContextProvider'; import { Comment } from '~/components/comment/Comment'; import { useUserContext } from '~/utils/context/UserContextProvider'; diff --git a/src/containers/player/PlayerView/index.tsx b/src/containers/player/PlayerView/index.tsx index b7ba2824..441fd16e 100644 --- a/src/containers/player/PlayerView/index.tsx +++ b/src/containers/player/PlayerView/index.tsx @@ -1,6 +1,6 @@ import React, { VFC } from 'react'; import { PlayerBar } from '~/components/bars/PlayerBar'; -import { usePlayer } from '~/utils/hooks/player/usePlayer'; +import { usePlayer } from '~/hooks/player/usePlayer'; interface PlayerViewProps {} diff --git a/src/containers/sidebars/ProfileSidebar/index.tsx b/src/containers/sidebars/ProfileSidebar/index.tsx index 0d8195bc..8408a83b 100644 --- a/src/containers/sidebars/ProfileSidebar/index.tsx +++ b/src/containers/sidebars/ProfileSidebar/index.tsx @@ -9,7 +9,7 @@ import { Filler } from '~/components/containers/Filler'; import { Route, Switch, useHistory, useRouteMatch } from 'react-router'; import * as USER_ACTIONS from '~/redux/auth/actions'; import { ProfileSidebarMenu } from '~/components/profile/ProfileSidebarMenu'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; import { Icon } from '~/components/input/Icon'; import { ProfileSidebarSettings } from '~/components/profile/ProfileSidebarSettings'; import classNames from 'classnames'; diff --git a/src/containers/sidebars/SidebarWrapper/index.tsx b/src/containers/sidebars/SidebarWrapper/index.tsx index fb16af23..29f88b00 100644 --- a/src/containers/sidebars/SidebarWrapper/index.tsx +++ b/src/containers/sidebars/SidebarWrapper/index.tsx @@ -2,7 +2,7 @@ import React, { FC, useEffect, useRef } from 'react'; import styles from './styles.module.scss'; import { createPortal } from 'react-dom'; import { clearAllBodyScrollLocks, disableBodyScroll } from 'body-scroll-lock'; -import { useCloseOnEscape } from '~/utils/hooks'; +import { useCloseOnEscape } from '~/hooks'; interface IProps { onClose?: () => void; diff --git a/src/utils/hooks/boris/useBoris.ts b/src/hooks/boris/useBoris.ts similarity index 92% rename from src/utils/hooks/boris/useBoris.ts rename to src/hooks/boris/useBoris.ts index a29cfd9d..17067d90 100644 --- a/src/utils/hooks/boris/useBoris.ts +++ b/src/hooks/boris/useBoris.ts @@ -3,9 +3,9 @@ import { useCallback, useEffect } from 'react'; import isBefore from 'date-fns/isBefore'; import { authSetState, authSetUser } from '~/redux/auth/actions'; import { borisLoadStats } from '~/redux/boris/actions'; -import { useUser } from '~/utils/hooks/user/userUser'; +import { useUser } from '~/hooks/user/userUser'; import { IComment } from '~/redux/types'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectAuthIsTester } from '~/redux/auth/selectors'; import { selectBorisStats } from '~/redux/boris/selectors'; import { useRandomPhrase } from '~/constants/phrases'; diff --git a/src/utils/hooks/useColorFromString.ts b/src/hooks/color/useColorFromString.ts similarity index 100% rename from src/utils/hooks/useColorFromString.ts rename to src/hooks/color/useColorFromString.ts diff --git a/src/utils/hooks/useColorGradientFromString.ts b/src/hooks/color/useColorGradientFromString.ts similarity index 100% rename from src/utils/hooks/useColorGradientFromString.ts rename to src/hooks/color/useColorGradientFromString.ts diff --git a/src/utils/hooks/useCommentFormFormik.ts b/src/hooks/comments/useCommentFormFormik.ts similarity index 96% rename from src/utils/hooks/useCommentFormFormik.ts rename to src/hooks/comments/useCommentFormFormik.ts index 5b666a15..7e814fcc 100644 --- a/src/utils/hooks/useCommentFormFormik.ts +++ b/src/hooks/comments/useCommentFormFormik.ts @@ -2,7 +2,7 @@ import { IComment, INode } from '~/redux/types'; import { useCallback, useEffect, useRef } from 'react'; import { FormikHelpers, useFormik, useFormikContext } from 'formik'; import { array, object, string } from 'yup'; -import { FileUploader } from '~/utils/hooks/useFileUploader'; +import { FileUploader } from '~/hooks/data/useFileUploader'; import { useDispatch } from 'react-redux'; import { nodePostLocalComment } from '~/redux/node/actions'; diff --git a/src/utils/hooks/useFileUploader.tsx b/src/hooks/data/useFileUploader.tsx similarity index 97% rename from src/utils/hooks/useFileUploader.tsx rename to src/hooks/data/useFileUploader.tsx index 4d6b834b..79179f88 100644 --- a/src/utils/hooks/useFileUploader.tsx +++ b/src/hooks/data/useFileUploader.tsx @@ -13,7 +13,7 @@ import { getFileType } from '~/utils/uploader'; import uuid from 'uuid4'; import { useDispatch } from 'react-redux'; import { uploadUploadFiles } from '~/redux/uploads/actions'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectUploads } from '~/redux/uploads/selectors'; import { path } from 'ramda'; import { IUploadStatus } from '~/redux/uploads/reducer'; diff --git a/src/utils/hooks/usePersistedState.ts b/src/hooks/data/usePersistedState.ts similarity index 100% rename from src/utils/hooks/usePersistedState.ts rename to src/hooks/data/usePersistedState.ts diff --git a/src/utils/hooks/useShallowSelect.ts b/src/hooks/data/useShallowSelect.ts similarity index 100% rename from src/utils/hooks/useShallowSelect.ts rename to src/hooks/data/useShallowSelect.ts diff --git a/src/utils/hooks/useTranslatedError.ts b/src/hooks/data/useTranslatedError.ts similarity index 100% rename from src/utils/hooks/useTranslatedError.ts rename to src/hooks/data/useTranslatedError.ts diff --git a/src/utils/hooks/useClickOutsideFocus.ts b/src/hooks/dom/useClickOutsideFocus.ts similarity index 93% rename from src/utils/hooks/useClickOutsideFocus.ts rename to src/hooks/dom/useClickOutsideFocus.ts index 17500715..7fd0d045 100644 --- a/src/utils/hooks/useClickOutsideFocus.ts +++ b/src/hooks/dom/useClickOutsideFocus.ts @@ -2,7 +2,7 @@ * Handles blur by detecting clicks outside refs. */ import { useCallback, useEffect, useRef, useState } from 'react'; -import { useCloseOnEscape } from '~/utils/hooks/index'; +import { useCloseOnEscape } from '~/hooks'; export const useClickOutsideFocus = () => { const ref = useRef(); diff --git a/src/utils/hooks/useDragDetector.tsx b/src/hooks/dom/useDragDetector.tsx similarity index 100% rename from src/utils/hooks/useDragDetector.tsx rename to src/hooks/dom/useDragDetector.tsx diff --git a/src/utils/hooks/useFocusEvent.ts b/src/hooks/dom/useFocusEvent.ts similarity index 100% rename from src/utils/hooks/useFocusEvent.ts rename to src/hooks/dom/useFocusEvent.ts diff --git a/src/utils/hooks/useFormatWrapper.ts b/src/hooks/dom/useFormatWrapper.ts similarity index 92% rename from src/utils/hooks/useFormatWrapper.ts rename to src/hooks/dom/useFormatWrapper.ts index 3ffa2f9f..1ef5cddc 100644 --- a/src/utils/hooks/useFormatWrapper.ts +++ b/src/hooks/dom/useFormatWrapper.ts @@ -1,5 +1,6 @@ import { useCallback } from 'react'; +/** wraps text inside textarea with tags */ export const useFormatWrapper = ( target: HTMLTextAreaElement, onChange: (val: string) => void, @@ -15,6 +16,7 @@ export const useFormatWrapper = ( ); }; +/** wraps text inside textarea with tags */ export const wrapTextInsideInput = ( target: HTMLTextAreaElement, prefix: string, diff --git a/src/utils/hooks/useInfiniteLoader.ts b/src/hooks/dom/useInfiniteLoader.ts similarity index 100% rename from src/utils/hooks/useInfiniteLoader.ts rename to src/hooks/dom/useInfiniteLoader.ts diff --git a/src/utils/hooks/useInputPasteUpload.ts b/src/hooks/dom/useInputPasteUpload.ts similarity index 100% rename from src/utils/hooks/useInputPasteUpload.ts rename to src/hooks/dom/useInputPasteUpload.ts diff --git a/src/utils/hooks/usePopperModifiers.ts b/src/hooks/dom/usePopperModifiers.ts similarity index 100% rename from src/utils/hooks/usePopperModifiers.ts rename to src/hooks/dom/usePopperModifiers.ts diff --git a/src/utils/hooks/useResizeHandler.ts b/src/hooks/dom/useResizeHandler.ts similarity index 100% rename from src/utils/hooks/useResizeHandler.ts rename to src/hooks/dom/useResizeHandler.ts diff --git a/src/utils/hooks/useScrollToTop.ts b/src/hooks/dom/useScrollToTop.ts similarity index 100% rename from src/utils/hooks/useScrollToTop.ts rename to src/hooks/dom/useScrollToTop.ts diff --git a/src/utils/hooks/flow/useFlow.ts b/src/hooks/flow/useFlow.ts similarity index 82% rename from src/utils/hooks/flow/useFlow.ts rename to src/hooks/flow/useFlow.ts index 275af84d..6f7ab46e 100644 --- a/src/utils/hooks/flow/useFlow.ts +++ b/src/hooks/flow/useFlow.ts @@ -1,9 +1,9 @@ -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectFlow } from '~/redux/flow/selectors'; -import { useFlowLayout } from '~/utils/hooks/flow/useFlowLayout'; +import { useFlowLayout } from '~/hooks/flow/useFlowLayout'; import { selectLabUpdatesNodes } from '~/redux/lab/selectors'; import { useDispatch } from 'react-redux'; -import { useFlowPagination } from '~/utils/hooks/flow/useFlowPagination'; +import { useFlowPagination } from '~/hooks/flow/useFlowPagination'; import { useCallback, useMemo } from 'react'; import { FlowDisplay, INode } from '~/redux/types'; import { flowSetCellView } from '~/redux/flow/actions'; diff --git a/src/utils/hooks/flow/useFlowCellControls.ts b/src/hooks/flow/useFlowCellControls.ts similarity index 100% rename from src/utils/hooks/flow/useFlowCellControls.ts rename to src/hooks/flow/useFlowCellControls.ts diff --git a/src/utils/hooks/flow/useFlowLayout.ts b/src/hooks/flow/useFlowLayout.ts similarity index 88% rename from src/utils/hooks/flow/useFlowLayout.ts rename to src/hooks/flow/useFlowLayout.ts index edcab5e9..aedd1555 100644 --- a/src/utils/hooks/flow/useFlowLayout.ts +++ b/src/hooks/flow/useFlowLayout.ts @@ -1,5 +1,5 @@ import { useCallback } from 'react'; -import { usePersistedState } from '~/utils/hooks/usePersistedState'; +import { usePersistedState } from '~/hooks/data/usePersistedState'; import { experimentalFeatures } from '~/constants/features'; enum Layout { diff --git a/src/utils/hooks/flow/useFlowPagination.ts b/src/hooks/flow/useFlowPagination.ts similarity index 83% rename from src/utils/hooks/flow/useFlowPagination.ts rename to src/hooks/flow/useFlowPagination.ts index de0b6c15..31dd5596 100644 --- a/src/utils/hooks/flow/useFlowPagination.ts +++ b/src/hooks/flow/useFlowPagination.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import { flowGetMore } from '~/redux/flow/actions'; import { useDispatch } from 'react-redux'; -import { useInfiniteLoader } from '~/utils/hooks/useInfiniteLoader'; +import { useInfiniteLoader } from '~/hooks/dom/useInfiniteLoader'; export const useFlowPagination = ({ isLoading }) => { const dispatch = useDispatch(); diff --git a/src/utils/hooks/index.ts b/src/hooks/index.ts similarity index 100% rename from src/utils/hooks/index.ts rename to src/hooks/index.ts diff --git a/src/utils/hooks/lab/useLab.ts b/src/hooks/lab/useLab.ts similarity index 93% rename from src/utils/hooks/lab/useLab.ts rename to src/hooks/lab/useLab.ts index aefeb123..e3005ed9 100644 --- a/src/utils/hooks/lab/useLab.ts +++ b/src/hooks/lab/useLab.ts @@ -1,4 +1,4 @@ -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectLabList, selectLabStatsHeroes, diff --git a/src/utils/hooks/lab/useLabPagination.ts b/src/hooks/lab/useLabPagination.ts similarity index 100% rename from src/utils/hooks/lab/useLabPagination.ts rename to src/hooks/lab/useLabPagination.ts diff --git a/src/utils/hooks/useBlockBackButton.ts b/src/hooks/navigation/useBlockBackButton.ts similarity index 100% rename from src/utils/hooks/useBlockBackButton.ts rename to src/hooks/navigation/useBlockBackButton.ts diff --git a/src/utils/hooks/useImageModal.ts b/src/hooks/navigation/useImageModal.ts similarity index 100% rename from src/utils/hooks/useImageModal.ts rename to src/hooks/navigation/useImageModal.ts diff --git a/src/utils/hooks/data/useCreateNode.ts b/src/hooks/node/useCreateNode.ts similarity index 94% rename from src/utils/hooks/data/useCreateNode.ts rename to src/hooks/node/useCreateNode.ts index 91f46546..1f02c85a 100644 --- a/src/utils/hooks/data/useCreateNode.ts +++ b/src/hooks/node/useCreateNode.ts @@ -5,7 +5,7 @@ import { selectFlowNodes } from '~/redux/flow/selectors'; import { flowSetNodes } from '~/redux/flow/actions'; import { selectLabListNodes } from '~/redux/lab/selectors'; import { labSetList } from '~/redux/lab/actions'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { useDispatch } from 'react-redux'; export const useCreateNode = () => { diff --git a/src/utils/hooks/node/useFullNode.ts b/src/hooks/node/useFullNode.ts similarity index 69% rename from src/utils/hooks/node/useFullNode.ts rename to src/hooks/node/useFullNode.ts index 8ace61f7..4ee20fe6 100644 --- a/src/utils/hooks/node/useFullNode.ts +++ b/src/hooks/node/useFullNode.ts @@ -1,7 +1,7 @@ -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectNode } from '~/redux/node/selectors'; -import { useLoadNode } from '~/utils/hooks/node/useLoadNode'; -import { useOnNodeSeen } from '~/utils/hooks/node/useOnNodeSeen'; +import { useLoadNode } from '~/hooks/node/useLoadNode'; +import { useOnNodeSeen } from '~/hooks/node/useOnNodeSeen'; export const useFullNode = (id: string) => { const { diff --git a/src/utils/hooks/data/useGetNode.ts b/src/hooks/node/useGetNode.ts similarity index 92% rename from src/utils/hooks/data/useGetNode.ts rename to src/hooks/node/useGetNode.ts index 547f8315..de1d35e5 100644 --- a/src/utils/hooks/data/useGetNode.ts +++ b/src/hooks/node/useGetNode.ts @@ -1,7 +1,7 @@ import useSWR from 'swr'; import { ApiGetNodeResponse } from '~/redux/node/types'; import { API } from '~/constants/api'; -import { useOnNodeSeen } from '~/utils/hooks/node/useOnNodeSeen'; +import { useOnNodeSeen } from '~/hooks/node/useOnNodeSeen'; import { apiGetNode } from '~/redux/node/api'; import { useCallback } from 'react'; import { INode } from '~/redux/types'; diff --git a/src/utils/hooks/data/useGetNodeRelated.ts b/src/hooks/node/useGetNodeRelated.ts similarity index 100% rename from src/utils/hooks/data/useGetNodeRelated.ts rename to src/hooks/node/useGetNodeRelated.ts diff --git a/src/utils/hooks/node/useGotoNode.ts b/src/hooks/node/useGotoNode.ts similarity index 100% rename from src/utils/hooks/node/useGotoNode.ts rename to src/hooks/node/useGotoNode.ts diff --git a/src/utils/hooks/node/useGrouppedComments.ts b/src/hooks/node/useGrouppedComments.ts similarity index 100% rename from src/utils/hooks/node/useGrouppedComments.ts rename to src/hooks/node/useGrouppedComments.ts diff --git a/src/utils/hooks/node/useLoadNode.ts b/src/hooks/node/useLoadNode.ts similarity index 100% rename from src/utils/hooks/node/useLoadNode.ts rename to src/hooks/node/useLoadNode.ts diff --git a/src/utils/hooks/node/useNodeActions.ts b/src/hooks/node/useNodeActions.ts similarity index 100% rename from src/utils/hooks/node/useNodeActions.ts rename to src/hooks/node/useNodeActions.ts diff --git a/src/utils/hooks/node/useNodeAudios.ts b/src/hooks/node/useNodeAudios.ts similarity index 100% rename from src/utils/hooks/node/useNodeAudios.ts rename to src/hooks/node/useNodeAudios.ts diff --git a/src/utils/hooks/node/useNodeBlocks.ts b/src/hooks/node/useNodeBlocks.ts similarity index 100% rename from src/utils/hooks/node/useNodeBlocks.ts rename to src/hooks/node/useNodeBlocks.ts diff --git a/src/utils/hooks/node/useNodeComments.ts b/src/hooks/node/useNodeComments.ts similarity index 100% rename from src/utils/hooks/node/useNodeComments.ts rename to src/hooks/node/useNodeComments.ts diff --git a/src/utils/hooks/node/useNodeCoverImage.ts b/src/hooks/node/useNodeCoverImage.ts similarity index 100% rename from src/utils/hooks/node/useNodeCoverImage.ts rename to src/hooks/node/useNodeCoverImage.ts diff --git a/src/utils/hooks/node/useNodeFormFormik.ts b/src/hooks/node/useNodeFormFormik.ts similarity index 96% rename from src/utils/hooks/node/useNodeFormFormik.ts rename to src/hooks/node/useNodeFormFormik.ts index 43e95829..00b43af4 100644 --- a/src/utils/hooks/node/useNodeFormFormik.ts +++ b/src/hooks/node/useNodeFormFormik.ts @@ -1,5 +1,5 @@ import { INode } from '~/redux/types'; -import { FileUploader } from '~/utils/hooks/useFileUploader'; +import { FileUploader } from '~/hooks/data/useFileUploader'; import { useCallback, useRef } from 'react'; import { FormikConfig, FormikHelpers, useFormik, useFormikContext } from 'formik'; import { object } from 'yup'; diff --git a/src/utils/hooks/node/useNodeImages.ts b/src/hooks/node/useNodeImages.ts similarity index 100% rename from src/utils/hooks/node/useNodeImages.ts rename to src/hooks/node/useNodeImages.ts diff --git a/src/utils/hooks/node/useNodePermissions.ts b/src/hooks/node/useNodePermissions.ts similarity index 88% rename from src/utils/hooks/node/useNodePermissions.ts rename to src/hooks/node/useNodePermissions.ts index 08eea085..681d789a 100644 --- a/src/utils/hooks/node/useNodePermissions.ts +++ b/src/hooks/node/useNodePermissions.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { canEditNode, canLikeNode, canStarNode } from '~/utils/node'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectUser } from '~/redux/auth/selectors'; import { INode } from '~/redux/types'; diff --git a/src/utils/hooks/node/useNodeTags.ts b/src/hooks/node/useNodeTags.ts similarity index 95% rename from src/utils/hooks/node/useNodeTags.ts rename to src/hooks/node/useNodeTags.ts index ff175f15..0838978e 100644 --- a/src/utils/hooks/node/useNodeTags.ts +++ b/src/hooks/node/useNodeTags.ts @@ -2,7 +2,7 @@ import { useHistory } from 'react-router'; import { useCallback } from 'react'; import { ITag } from '~/redux/types'; import { URLS } from '~/constants/urls'; -import { useGetNode } from '~/utils/hooks/data/useGetNode'; +import { useGetNode } from '~/hooks/node/useGetNode'; import { apiDeleteNodeTag, apiPostNodeTags } from '~/redux/node/api'; export const useNodeTags = (id: number) => { diff --git a/src/utils/hooks/node/useOnNodeSeen.ts b/src/hooks/node/useOnNodeSeen.ts similarity index 100% rename from src/utils/hooks/node/useOnNodeSeen.ts rename to src/hooks/node/useOnNodeSeen.ts diff --git a/src/utils/hooks/data/useUpdateNode.ts b/src/hooks/node/useUpdateNode.ts similarity index 91% rename from src/utils/hooks/data/useUpdateNode.ts rename to src/hooks/node/useUpdateNode.ts index 6a9a8277..5d8bd35a 100644 --- a/src/utils/hooks/data/useUpdateNode.ts +++ b/src/hooks/node/useUpdateNode.ts @@ -1,4 +1,4 @@ -import { useGetNode } from '~/utils/hooks/data/useGetNode'; +import { useGetNode } from '~/hooks/node/useGetNode'; import { useCallback } from 'react'; import { INode } from '~/redux/types'; import { apiPostNode } from '~/redux/node/api'; @@ -6,7 +6,7 @@ import { selectFlowNodes } from '~/redux/flow/selectors'; import { flowSetNodes } from '~/redux/flow/actions'; import { selectLabListNodes } from '~/redux/lab/selectors'; import { labSetList } from '~/redux/lab/actions'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { useDispatch } from 'react-redux'; export const useUpdateNode = (id: number) => { diff --git a/src/utils/hooks/player/usePlayer.ts b/src/hooks/player/usePlayer.ts similarity index 92% rename from src/utils/hooks/player/usePlayer.ts rename to src/hooks/player/usePlayer.ts index 56aba1e8..7a99e83e 100644 --- a/src/utils/hooks/player/usePlayer.ts +++ b/src/hooks/player/usePlayer.ts @@ -1,4 +1,4 @@ -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectPlayer } from '~/redux/player/selectors'; import { useCallback } from 'react'; import { playerPause, playerPlay, playerSeek, playerStop } from '~/redux/player/actions'; diff --git a/src/utils/hooks/search/useSearch.ts b/src/hooks/search/useSearch.ts similarity index 91% rename from src/utils/hooks/search/useSearch.ts rename to src/hooks/search/useSearch.ts index e2aff97e..dad36945 100644 --- a/src/utils/hooks/search/useSearch.ts +++ b/src/hooks/search/useSearch.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import { flowChangeSearch, flowLoadMoreSearch } from '~/redux/flow/actions'; import { useDispatch } from 'react-redux'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectFlow } from '~/redux/flow/selectors'; export const useSearch = () => { diff --git a/src/utils/hooks/user/useUserDescription.ts b/src/hooks/user/useUserDescription.ts similarity index 100% rename from src/utils/hooks/user/useUserDescription.ts rename to src/hooks/user/useUserDescription.ts diff --git a/src/utils/hooks/user/userUser.ts b/src/hooks/user/userUser.ts similarity index 62% rename from src/utils/hooks/user/userUser.ts rename to src/hooks/user/userUser.ts index 018b5fde..5c0693ad 100644 --- a/src/utils/hooks/user/userUser.ts +++ b/src/hooks/user/userUser.ts @@ -1,4 +1,4 @@ -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectUser } from '~/redux/auth/selectors'; export const useUser = () => useShallowSelect(selectUser); diff --git a/src/layouts/NodeLayout/index.tsx b/src/layouts/NodeLayout/index.tsx index 6bbce31d..1f641a3d 100644 --- a/src/layouts/NodeLayout/index.tsx +++ b/src/layouts/NodeLayout/index.tsx @@ -6,16 +6,16 @@ import { Footer } from '~/components/main/Footer'; import { SidebarRouter } from '~/containers/main/SidebarRouter'; import { Container } from '~/containers/main/Container'; -import { useNodeBlocks } from '~/utils/hooks/node/useNodeBlocks'; +import { useNodeBlocks } from '~/hooks/node/useNodeBlocks'; import { NodeBottomBlock } from '~/containers/node/NodeBottomBlock'; -import { useNodeCoverImage } from '~/utils/hooks/node/useNodeCoverImage'; +import { useNodeCoverImage } from '~/hooks/node/useNodeCoverImage'; import { URLS } from '~/constants/urls'; import { EditorEditDialog } from '~/containers/dialogs/EditorEditDialog'; import styles from './styles.module.scss'; import { useNodeContext } from '~/utils/context/NodeContextProvider'; -import { useNodePermissions } from '~/utils/hooks/node/useNodePermissions'; -import { useNodeActions } from '~/utils/hooks/node/useNodeActions'; +import { useNodePermissions } from '~/hooks/node/useNodePermissions'; +import { useNodeActions } from '~/hooks/node/useNodeActions'; import { NodeTitle } from '~/components/node/NodeTitle'; type IProps = {}; diff --git a/src/layouts/ProfileLayout/index.tsx b/src/layouts/ProfileLayout/index.tsx index bcd70fa5..f20ca4f0 100644 --- a/src/layouts/ProfileLayout/index.tsx +++ b/src/layouts/ProfileLayout/index.tsx @@ -3,7 +3,7 @@ import styles from './styles.module.scss'; import { RouteComponentProps } from 'react-router'; import { useDispatch } from 'react-redux'; import { authLoadProfile } from '~/redux/auth/actions'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectAuthProfile, selectUser } from '~/redux/auth/selectors'; import { ProfilePageLeft } from '~/containers/profile/ProfilePageLeft'; import { Container } from '~/containers/main/Container'; diff --git a/src/pages/boris.tsx b/src/pages/boris.tsx index 936b1b87..b4d017fd 100644 --- a/src/pages/boris.tsx +++ b/src/pages/boris.tsx @@ -1,15 +1,15 @@ import React, { useEffect, VFC } from 'react'; import { useDispatch } from 'react-redux'; -import { useShallowSelect } from '~/utils/hooks/useShallowSelect'; +import { useShallowSelect } from '~/hooks/data/useShallowSelect'; import { selectNode } from '~/redux/node/selectors'; import { BorisLayout } from '~/layouts/BorisLayout'; import { nodeLoadNode } from '~/redux/node/actions'; 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'; +import { useImageModal } from '~/hooks/navigation/useImageModal'; +import { useNodeComments } from '~/hooks/node/useNodeComments'; +import { useBoris } from '~/hooks/boris/useBoris'; import { NodeContextProvider } from '~/utils/context/NodeContextProvider'; -import { useGetNode } from '~/utils/hooks/data/useGetNode'; +import { useGetNode } from '~/hooks/node/useGetNode'; const BorisPage: VFC = () => { const dispatch = useDispatch(); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 01943ef9..eac397d7 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,8 +1,8 @@ import React, { FC } from 'react'; import { FlowLayout } from '~/layouts/FlowLayout'; -import { useFlow } from '~/utils/hooks/flow/useFlow'; -import { useSearch } from '~/utils/hooks/search/useSearch'; -import { useUser } from '~/utils/hooks/user/userUser'; +import { useFlow } from '~/hooks/flow/useFlow'; +import { useSearch } from '~/hooks/search/useSearch'; +import { useUser } from '~/hooks/user/userUser'; interface Props {} diff --git a/src/pages/node/[id].tsx b/src/pages/node/[id].tsx index 92a941b6..f9c7fd1a 100644 --- a/src/pages/node/[id].tsx +++ b/src/pages/node/[id].tsx @@ -1,18 +1,18 @@ import React, { FC } from 'react'; import { NodeLayout } from '~/layouts/NodeLayout'; import { RouteComponentProps } from 'react-router'; -import { useScrollToTop } from '~/utils/hooks/useScrollToTop'; -import { useFullNode } from '~/utils/hooks/node/useFullNode'; -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 { useScrollToTop } from '~/hooks/dom/useScrollToTop'; +import { useFullNode } from '~/hooks/node/useFullNode'; +import { useImageModal } from '~/hooks/navigation/useImageModal'; +import { useNodeComments } from '~/hooks/node/useNodeComments'; +import { useUser } from '~/hooks/user/userUser'; +import { useNodeTags } from '~/hooks/node/useNodeTags'; 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 { useNodePermissions } from '~/hooks/node/useNodePermissions'; import { NodeRelatedProvider } from '~/utils/providers/NodeRelatedProvider'; -import { useGetNode } from '~/utils/hooks/data/useGetNode'; +import { useGetNode } from '~/hooks/node/useGetNode'; type Props = RouteComponentProps<{ id: string }> & {}; diff --git a/src/utils/hooks/keys.ts b/src/utils/hooks/keys.ts deleted file mode 100644 index 93432d00..00000000 --- a/src/utils/hooks/keys.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { useCallback, useEffect } from 'react'; - -export const useArrows = (onNext: () => void, onPrev: () => void, locked) => { - const onKeyDown = useCallback( - event => { - if ((event.target.tagName && ['TEXTAREA', 'INPUT'].includes(event.target.tagName)) || locked) - return; - - switch (event.key) { - case 'ArrowLeft': - return onPrev(); - case 'ArrowRight': - return onNext(); - } - }, - [onNext, onPrev, locked] - ); - - useEffect(() => { - window.addEventListener('keydown', onKeyDown); - return () => window.removeEventListener('keydown', onKeyDown); - }, [onKeyDown]); -}; diff --git a/src/utils/providers/LabProvider.tsx b/src/utils/providers/LabProvider.tsx index d33accc6..087f19aa 100644 --- a/src/utils/providers/LabProvider.tsx +++ b/src/utils/providers/LabProvider.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; import { LabContextProvider } from '~/utils/context/LabContextProvider'; -import { useLab } from '~/utils/hooks/lab/useLab'; +import { useLab } from '~/hooks/lab/useLab'; interface LabProviderProps {} diff --git a/src/utils/providers/NodeRelatedProvider.tsx b/src/utils/providers/NodeRelatedProvider.tsx index 5211b2a1..31d9c4ce 100644 --- a/src/utils/providers/NodeRelatedProvider.tsx +++ b/src/utils/providers/NodeRelatedProvider.tsx @@ -2,7 +2,7 @@ import React, { FC, useEffect } from 'react'; import { INode, ITag } from '~/redux/types'; import { NodeRelatedContextProvider } from '~/utils/context/NodeRelatedContextProvider'; import { INodeRelated } from '~/redux/node/types'; -import { useGetNodeRelated } from '~/utils/hooks/data/useGetNodeRelated'; +import { useGetNodeRelated } from '~/hooks/node/useGetNodeRelated'; interface NodeRelatedProviderProps { id: INode['id'];