Refactor: change directory structure of hooks to organize by task

This commit is contained in:
Aaron William Po
2023-05-02 21:54:49 -04:00
parent 94d5d318ca
commit 283b944c6b
44 changed files with 38 additions and 34 deletions

View File

@@ -7,7 +7,7 @@ import { FunctionComponent } from 'react';
import { useForm, SubmitHandler } from 'react-hook-form'; import { useForm, SubmitHandler } from 'react-hook-form';
import { z } from 'zod'; import { z } from 'zod';
import useBeerPostComments from '@/hooks/useBeerPostComments'; import useBeerPostComments from '@/hooks/data-fetching/beer-comments/useBeerPostComments';
import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema'; import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema';
import CommentForm from '../ui/CommentForm'; import CommentForm from '../ui/CommentForm';

View File

@@ -6,8 +6,8 @@ import UserContext from '@/contexts/userContext';
import { FaRegEdit } from 'react-icons/fa'; import { FaRegEdit } from 'react-icons/fa';
import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'; import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult';
import { z } from 'zod'; import { z } from 'zod';
import useGetBeerPostLikeCount from '@/hooks/useBeerPostLikeCount'; import useGetBeerPostLikeCount from '@/hooks/data-fetching/beer-likes/useBeerPostLikeCount';
import useTimeDistance from '@/hooks/useTimeDistance'; import useTimeDistance from '@/hooks/utilities/useTimeDistance';
import BeerPostLikeButton from './BeerPostLikeButton'; import BeerPostLikeButton from './BeerPostLikeButton';
interface BeerInfoHeaderProps { interface BeerInfoHeaderProps {

View File

@@ -4,7 +4,7 @@ import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'
import { FC, MutableRefObject, useContext, useRef } from 'react'; import { FC, MutableRefObject, useContext, useRef } from 'react';
import { z } from 'zod'; import { z } from 'zod';
import useBeerPostComments from '@/hooks/useBeerPostComments'; import useBeerPostComments from '@/hooks/data-fetching/beer-comments/useBeerPostComments';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import BeerCommentForm from './BeerCommentForm'; import BeerCommentForm from './BeerCommentForm';

View File

@@ -1,8 +1,8 @@
import useCheckIfUserLikesBeerPost from '@/hooks/useCheckIfUserLikesBeerPost'; import useCheckIfUserLikesBeerPost from '@/hooks/data-fetching/beer-likes/useCheckIfUserLikesBeerPost';
import sendBeerPostLikeRequest from '@/requests/sendBeerPostLikeRequest'; import sendBeerPostLikeRequest from '@/requests/sendBeerPostLikeRequest';
import { FC, useEffect, useState } from 'react'; import { FC, useEffect, useState } from 'react';
import useGetBeerPostLikeCount from '@/hooks/useBeerPostLikeCount'; import useGetBeerPostLikeCount from '@/hooks/data-fetching/beer-likes/useBeerPostLikeCount';
import LikeButton from '../ui/LikeButton'; import LikeButton from '../ui/LikeButton';
const BeerPostLikeButton: FC<{ const BeerPostLikeButton: FC<{

View File

@@ -1,4 +1,4 @@
import useBeerPostComments from '@/hooks/useBeerPostComments'; import useBeerPostComments from '@/hooks/data-fetching/beer-comments/useBeerPostComments';
import CommentQueryResult from '@/services/types/CommentSchema/CommentQueryResult'; import CommentQueryResult from '@/services/types/CommentSchema/CommentQueryResult';
import { FC, useState } from 'react'; import { FC, useState } from 'react';
import { useInView } from 'react-intersection-observer'; import { useInView } from 'react-intersection-observer';

View File

@@ -1,5 +1,5 @@
import UserContext from '@/contexts/userContext'; import UserContext from '@/contexts/userContext';
import useTimeDistance from '@/hooks/useTimeDistance'; import useTimeDistance from '@/hooks/utilities/useTimeDistance';
import { format } from 'date-fns'; import { format } from 'date-fns';
import { Dispatch, FC, SetStateAction, useContext } from 'react'; import { Dispatch, FC, SetStateAction, useContext } from 'react';
import { Link, Rating } from 'react-daisyui'; import { Link, Rating } from 'react-daisyui';

View File

@@ -3,7 +3,7 @@ import { FC, useState, useEffect, Dispatch, SetStateAction } from 'react';
import { Rating } from 'react-daisyui'; import { Rating } from 'react-daisyui';
import { useForm, SubmitHandler } from 'react-hook-form'; import { useForm, SubmitHandler } from 'react-hook-form';
import { z } from 'zod'; import { z } from 'zod';
import useBeerPostComments from '@/hooks/useBeerPostComments'; import useBeerPostComments from '@/hooks/data-fetching/beer-comments/useBeerPostComments';
import CommentQueryResult from '@/services/types/CommentSchema/CommentQueryResult'; import CommentQueryResult from '@/services/types/CommentSchema/CommentQueryResult';
import { useInView } from 'react-intersection-observer'; import { useInView } from 'react-intersection-observer';
import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema'; import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema';

View File

@@ -4,7 +4,7 @@ import Image from 'next/image';
import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'; import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult';
import { z } from 'zod'; import { z } from 'zod';
import UserContext from '@/contexts/userContext'; import UserContext from '@/contexts/userContext';
import useGetBeerPostLikeCount from '@/hooks/useBeerPostLikeCount'; import useGetBeerPostLikeCount from '@/hooks/data-fetching/beer-likes/useBeerPostLikeCount';
import BeerPostLikeButton from '../BeerById/BeerPostLikeButton'; import BeerPostLikeButton from '../BeerById/BeerPostLikeButton';
const BeerCard: FC<{ post: z.infer<typeof beerPostQueryResult> }> = ({ post }) => { const BeerCard: FC<{ post: z.infer<typeof beerPostQueryResult> }> = ({ post }) => {

View File

@@ -1,4 +1,4 @@
import UseBeerPostsByBrewery from '@/hooks/useBeerPostsByBrewery'; import UseBeerPostsByBrewery from '@/hooks/data-fetching/beer-posts/useBeerPostsByBrewery';
import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult'; import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult';
import Link from 'next/link'; import Link from 'next/link';
import { FC } from 'react'; import { FC } from 'react';

View File

@@ -2,12 +2,13 @@ import UserContext from '@/contexts/userContext';
import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult'; import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult';
import { FC, MutableRefObject, useContext, useRef } from 'react'; import { FC, MutableRefObject, useContext, useRef } from 'react';
import { z } from 'zod'; import { z } from 'zod';
import useBreweryPostComments from '@/hooks/useBreweryPostComments';
import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema'; import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema';
import { zodResolver } from '@hookform/resolvers/zod'; import { zodResolver } from '@hookform/resolvers/zod';
import { useForm, SubmitHandler } from 'react-hook-form'; import { useForm, SubmitHandler } from 'react-hook-form';
import APIResponseValidationSchema from '@/validation/APIResponseValidationSchema'; import APIResponseValidationSchema from '@/validation/APIResponseValidationSchema';
import CommentQueryResult from '@/services/types/CommentSchema/CommentQueryResult'; import CommentQueryResult from '@/services/types/CommentSchema/CommentQueryResult';
import useBreweryPostComments from '@/hooks/data-fetching/brewery-comments/useBreweryPostComments';
import LoadingComponent from '../BeerById/LoadingComponent'; import LoadingComponent from '../BeerById/LoadingComponent';
import CommentsComponent from '../ui/CommentsComponent'; import CommentsComponent from '../ui/CommentsComponent';
import CommentForm from '../ui/CommentForm'; import CommentForm from '../ui/CommentForm';

View File

@@ -1,6 +1,6 @@
import UserContext from '@/contexts/userContext'; import UserContext from '@/contexts/userContext';
import useGetBreweryPostLikeCount from '@/hooks/useGetBreweryPostLikeCount'; import useGetBreweryPostLikeCount from '@/hooks/data-fetching/brewery-likes/useGetBreweryPostLikeCount';
import useTimeDistance from '@/hooks/useTimeDistance'; import useTimeDistance from '@/hooks/utilities/useTimeDistance';
import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult'; import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult';
import { format } from 'date-fns'; import { format } from 'date-fns';
import { FC, useContext } from 'react'; import { FC, useContext } from 'react';

View File

@@ -1,4 +1,4 @@
import useMediaQuery from '@/hooks/useMediaQuery'; import useMediaQuery from '@/hooks/utilities/useMediaQuery';
import 'mapbox-gl/dist/mapbox-gl.css'; import 'mapbox-gl/dist/mapbox-gl.css';
import { FC, useMemo } from 'react'; import { FC, useMemo } from 'react';
import Map, { Marker } from 'react-map-gl'; import Map, { Marker } from 'react-map-gl';

View File

@@ -1,5 +1,5 @@
import UserContext from '@/contexts/userContext'; import UserContext from '@/contexts/userContext';
import useGetBreweryPostLikeCount from '@/hooks/useGetBreweryPostLikeCount'; import useGetBreweryPostLikeCount from '@/hooks/data-fetching/brewery-likes/useGetBreweryPostLikeCount';
import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult'; import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult';
import { FC, useContext } from 'react'; import { FC, useContext } from 'react';
import Link from 'next/link'; import Link from 'next/link';

View File

@@ -1,5 +1,5 @@
import useCheckIfUserLikesBreweryPost from '@/hooks/useCheckIfUserLikesBreweryPost'; import useCheckIfUserLikesBreweryPost from '@/hooks/data-fetching/brewery-likes/useCheckIfUserLikesBreweryPost';
import useGetBreweryPostLikeCount from '@/hooks/useGetBreweryPostLikeCount'; import useGetBreweryPostLikeCount from '@/hooks/data-fetching/brewery-likes/useGetBreweryPostLikeCount';
import sendBreweryPostLikeRequest from '@/requests/sendBreweryPostLikeRequest'; import sendBreweryPostLikeRequest from '@/requests/sendBreweryPostLikeRequest';
import { FC, useState } from 'react'; import { FC, useState } from 'react';
import LikeButton from '../ui/LikeButton'; import LikeButton from '../ui/LikeButton';

View File

@@ -3,8 +3,9 @@ import { FaArrowUp } from 'react-icons/fa';
import { useInView } from 'react-intersection-observer'; import { useInView } from 'react-intersection-observer';
import useBeerPostComments from '@/hooks/useBeerPostComments'; import useBeerPostComments from '@/hooks/data-fetching/beer-comments/useBeerPostComments';
import useBreweryPostComments from '@/hooks/useBreweryPostComments';
import useBreweryPostComments from '@/hooks/data-fetching/brewery-comments/useBreweryPostComments';
import NoCommentsCard from '../BeerById/NoCommentsCard'; import NoCommentsCard from '../BeerById/NoCommentsCard';
import LoadingComponent from '../BeerById/LoadingComponent'; import LoadingComponent from '../BeerById/LoadingComponent';
import CommentCardBody from '../BeerById/CommentCardBody'; import CommentCardBody from '../BeerById/CommentCardBody';

View File

@@ -1,10 +1,11 @@
import useMediaQuery from '@/hooks/useMediaQuery'; import useMediaQuery from '@/hooks/utilities/useMediaQuery';
import useNavbar from '@/hooks/useNavbar'; import useNavbar from '@/hooks/utilities/useNavbar';
import useTheme from '@/hooks/utilities/useTheme';
import Link from 'next/link'; import Link from 'next/link';
import { FC } from 'react'; import { FC } from 'react';
import { MdDarkMode, MdLightMode } from 'react-icons/md'; import { MdDarkMode, MdLightMode } from 'react-icons/md';
import { GiHamburgerMenu } from 'react-icons/gi'; import { GiHamburgerMenu } from 'react-icons/gi';
import useTheme from '@/hooks/useTheme';
const DesktopLinks: FC = () => { const DesktopLinks: FC = () => {
const { pages, currentURL } = useNavbar(); const { pages, currentURL } = useNavbar();

View File

@@ -1,4 +1,4 @@
import useUser from '@/hooks/useUser'; import useUser from '@/hooks/auth/useUser';
import GetUserSchema from '@/services/User/schema/GetUserSchema'; import GetUserSchema from '@/services/User/schema/GetUserSchema';
import { createContext } from 'react'; import { createContext } from 'react';
import { z } from 'zod'; import { z } from 'zod';

View File

@@ -1,5 +1,5 @@
import UserContext from '@/contexts/userContext'; import UserContext from '@/contexts/userContext';
import useUser from '@/hooks/useUser';
import '@/styles/globals.css'; import '@/styles/globals.css';
import type { AppProps } from 'next/app'; import type { AppProps } from 'next/app';
import { useEffect } from 'react'; import { useEffect } from 'react';
@@ -10,6 +10,7 @@ import { Analytics } from '@vercel/analytics/react';
import { Space_Grotesk } from 'next/font/google'; import { Space_Grotesk } from 'next/font/google';
import Head from 'next/head'; import Head from 'next/head';
import Layout from '@/components/ui/Layout'; import Layout from '@/components/ui/Layout';
import useUser from '@/hooks/auth/useUser';
const spaceGrotesk = Space_Grotesk({ const spaceGrotesk = Space_Grotesk({
subsets: ['latin'], subsets: ['latin'],

View File

@@ -16,7 +16,7 @@ import { z } from 'zod';
import 'react-responsive-carousel/lib/styles/carousel.min.css'; import 'react-responsive-carousel/lib/styles/carousel.min.css';
import { Carousel } from 'react-responsive-carousel'; import { Carousel } from 'react-responsive-carousel';
import useMediaQuery from '@/hooks/useMediaQuery'; import useMediaQuery from '@/hooks/utilities/useMediaQuery';
import { Tab } from '@headlessui/react'; import { Tab } from '@headlessui/react';
interface BeerPageProps { interface BeerPageProps {

View File

@@ -9,7 +9,7 @@ import { MutableRefObject, useContext, useRef } from 'react';
import { useInView } from 'react-intersection-observer'; import { useInView } from 'react-intersection-observer';
import Spinner from '@/components/ui/Spinner'; import Spinner from '@/components/ui/Spinner';
import useBeerPosts from '@/hooks/useBeerPosts'; import useBeerPosts from '@/hooks/data-fetching/beer-posts/useBeerPosts';
import { FaArrowUp, FaPlus } from 'react-icons/fa'; import { FaArrowUp, FaPlus } from 'react-icons/fa';
import LoadingCard from '@/components/ui/LoadingCard'; import LoadingCard from '@/components/ui/LoadingCard';

View File

@@ -6,7 +6,7 @@ import { ChangeEvent, useEffect, useState } from 'react';
import Spinner from '@/components/ui/Spinner'; import Spinner from '@/components/ui/Spinner';
import debounce from 'lodash/debounce'; import debounce from 'lodash/debounce';
import useBeerPostSearch from '@/hooks/useBeerPostSearch'; import useBeerPostSearch from '@/hooks/data-fetching/beer-posts/useBeerPostSearch';
import FormLabel from '@/components/ui/forms/FormLabel'; import FormLabel from '@/components/ui/forms/FormLabel';
const DEBOUNCE_DELAY = 300; const DEBOUNCE_DELAY = 300;

View File

@@ -7,7 +7,7 @@ import Head from 'next/head';
import Image from 'next/image'; import Image from 'next/image';
import 'react-responsive-carousel/lib/styles/carousel.min.css'; // requires a loader import 'react-responsive-carousel/lib/styles/carousel.min.css'; // requires a loader
import { Carousel } from 'react-responsive-carousel'; import { Carousel } from 'react-responsive-carousel';
import useMediaQuery from '@/hooks/useMediaQuery'; import useMediaQuery from '@/hooks/utilities/useMediaQuery';
import { Tab } from '@headlessui/react'; import { Tab } from '@headlessui/react';
import BreweryInfoHeader from '@/components/BreweryById/BreweryInfoHeader'; import BreweryInfoHeader from '@/components/BreweryById/BreweryInfoHeader';
import BreweryPostMap from '@/components/BreweryById/BreweryPostMap'; import BreweryPostMap from '@/components/BreweryById/BreweryPostMap';

View File

@@ -2,7 +2,7 @@ import BreweryCard from '@/components/BreweryIndex/BreweryCard';
import LoadingCard from '@/components/ui/LoadingCard'; import LoadingCard from '@/components/ui/LoadingCard';
import Spinner from '@/components/ui/Spinner'; import Spinner from '@/components/ui/Spinner';
import UserContext from '@/contexts/userContext'; import UserContext from '@/contexts/userContext';
import useBreweryPosts from '@/hooks/useBreweryPosts'; import useBreweryPosts from '@/hooks/data-fetching/brewery-posts/useBreweryPosts';
import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult'; import BreweryPostQueryResult from '@/services/BreweryPost/types/BreweryPostQueryResult';
import { NextPage } from 'next'; import { NextPage } from 'next';
import Head from 'next/head'; import Head from 'next/head';

View File

@@ -13,7 +13,7 @@ import DBClient from '@/prisma/DBClient';
import LocationMarker from '@/components/ui/LocationMarker'; import LocationMarker from '@/components/ui/LocationMarker';
import Link from 'next/link'; import Link from 'next/link';
import Head from 'next/head'; import Head from 'next/head';
import useGeolocation from '@/hooks/useGeolocation'; import useGeolocation from '@/hooks/utilities/useGeolocation';
type MapStyles = Record<'light' | 'dark', `mapbox://styles/mapbox/${string}`>; type MapStyles = Record<'light' | 'dark', `mapbox://styles/mapbox/${string}`>;

View File

@@ -7,7 +7,7 @@ import { FaUserCircle } from 'react-icons/fa';
import Head from 'next/head'; import Head from 'next/head';
import Link from 'next/link'; import Link from 'next/link';
import useRedirectWhenLoggedIn from '@/hooks/useRedirectIfLoggedIn'; import useRedirectWhenLoggedIn from '@/hooks/auth/useRedirectIfLoggedIn';
const LoginPage: NextPage = () => { const LoginPage: NextPage = () => {
useRedirectWhenLoggedIn(); useRedirectWhenLoggedIn();

View File

@@ -1,7 +1,7 @@
import RegisterUserForm from '@/components/RegisterUserForm'; import RegisterUserForm from '@/components/RegisterUserForm';
import FormPageLayout from '@/components/ui/forms/FormPageLayout'; import FormPageLayout from '@/components/ui/forms/FormPageLayout';
import useRedirectWhenLoggedIn from '@/hooks/useRedirectIfLoggedIn'; import useRedirectWhenLoggedIn from '@/hooks/auth/useRedirectIfLoggedIn';
import { NextPage } from 'next'; import { NextPage } from 'next';
import Head from 'next/head'; import Head from 'next/head';
import { BiUser } from 'react-icons/bi'; import { BiUser } from 'react-icons/bi';

View File

@@ -4,7 +4,7 @@ import UserContext from '@/contexts/userContext';
import { GetServerSideProps, NextPage } from 'next'; import { GetServerSideProps, NextPage } from 'next';
import { useContext } from 'react'; import { useContext } from 'react';
import useMediaQuery from '@/hooks/useMediaQuery'; import useMediaQuery from '@/hooks/utilities/useMediaQuery';
const ProtectedPage: NextPage = () => { const ProtectedPage: NextPage = () => {
const { user, isLoading } = useContext(UserContext); const { user, isLoading } = useContext(UserContext);