From 09c82d8de0625b91d0ac72260acd41e400c668e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yusuf=20Akg=C3=BCl?= <s86116@bht-berlin.de>
Date: Wed, 28 Jun 2023 18:39:59 +0200
Subject: [PATCH] fixed back button, updated packages, made adjustements

---
 .../(gaming)/games/[gameid]/page.tsx          |  10 +-
 app/(content)/(gaming)/games/page.tsx         |   2 +-
 app/(content)/(home)/home/[postid]/page.tsx   |  19 ---
 .../(user)/[userid]/status/[id]/page.tsx      |  12 +-
 app/(content)/layout.tsx                      |   2 +-
 app/layout.tsx                                |   2 +-
 components/back-button.tsx                    |   2 +-
 components/back-header.tsx                    |  10 ++
 .../create-gweet/components/create-gweet.tsx  |   4 +-
 .../components/actions/comment-button.tsx     |   2 +-
 .../components/actions/regweet-button.tsx     |   2 +-
 components/gweets/components/comments.tsx     |   5 +-
 .../gweets/components/gweet-details.tsx       |   8 +-
 components/gweets/components/gweets.tsx       |   8 +-
 .../gweets/components/infinite-gweets.tsx     |  10 +-
 components/layout/components/gweet-header.tsx |  11 --
 components/layout/index.ts                    |   1 -
 components/loading-item.tsx                   |   9 ++
 .../{site-loading.tsx => loading-site.tsx}    |   0
 .../react-query/getQueryClient.ts             |   0
 .../react-query/hydrate.client.tsx            |   0
 {components => lib}/react-query/provider.tsx  |   0
 package-lock.json                             | 111 +++++++++---------
 package.json                                  |  16 +--
 24 files changed, 118 insertions(+), 128 deletions(-)
 delete mode 100644 app/(content)/(home)/home/[postid]/page.tsx
 create mode 100644 components/back-header.tsx
 delete mode 100644 components/layout/components/gweet-header.tsx
 delete mode 100644 components/layout/index.ts
 create mode 100644 components/loading-item.tsx
 rename components/{site-loading.tsx => loading-site.tsx} (100%)
 rename {components => lib}/react-query/getQueryClient.ts (100%)
 rename {components => lib}/react-query/hydrate.client.tsx (100%)
 rename {components => lib}/react-query/provider.tsx (100%)

diff --git a/app/(content)/(gaming)/games/[gameid]/page.tsx b/app/(content)/(gaming)/games/[gameid]/page.tsx
index b3f1924..dacb61f 100644
--- a/app/(content)/(gaming)/games/[gameid]/page.tsx
+++ b/app/(content)/(gaming)/games/[gameid]/page.tsx
@@ -1,8 +1,6 @@
 import AddGameDropdown from "@/components/add-game-dropdown";
-import AddGameToFinishedList from "@/components/add-game-to-finished-list";
-import AddGameToPlanList from "@/components/add-game-to-plan-list";
-import AddGameToPlayingList from "@/components/add-game-to-playing-list";
 import AddGameToFavList from "@/components/addGameToFavList";
+import { BackHeader } from "@/components/back-header";
 import { AspectRatio } from "@/components/ui/aspect-ratio";
 import { Button } from "@/components/ui/button";
 import { Card } from "@/components/ui/card";
@@ -36,6 +34,12 @@ export default async function GameDetail({ params }: { params: { gameid: string
     return (
         <div className="main-content h-full">
             <Card className="w-full h-full overflow-hidden">
+                <div className="p-3">
+                    <BackHeader>
+                        <h1 className="font-bold">Game</h1>
+                    </BackHeader>
+                </div>
+
                 <div className="h-64 overflow-hidden">
                     <AspectRatio ratio={889 / 500}>
                         <Image
diff --git a/app/(content)/(gaming)/games/page.tsx b/app/(content)/(gaming)/games/page.tsx
index f0af8fc..17586db 100644
--- a/app/(content)/(gaming)/games/page.tsx
+++ b/app/(content)/(gaming)/games/page.tsx
@@ -7,7 +7,7 @@ export default async function GamesPage() {
     return (
         <main className="main-content">
             <div className="flex justify-center">
-                <div className="fixed top-30 z-50">
+                <div className="fixed top-30 z-40">
                     <ScrollToTop />
                 </div>
                 <InfiniteScrollGames />
diff --git a/app/(content)/(home)/home/[postid]/page.tsx b/app/(content)/(home)/home/[postid]/page.tsx
deleted file mode 100644
index 07d1c2a..0000000
--- a/app/(content)/(home)/home/[postid]/page.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-// import { PostCommentForm } from "@/components/comment-gweets";
-
-export default async function PostDetail({ params }: { params: { postid: string } }) {
-    const postid = params.postid
-
-    return (
-        <div className="main-content px-3 pb-3">
-            <div className="lg:col-span-1">
-                {/* <PostCommentForm postid={postid} /> */}
-            </div>
-
-            <div className="side-content">
-                <div className="flex-col">
-
-                </div>
-            </div>
-        </div>
-    )
-}
\ No newline at end of file
diff --git a/app/(content)/(user)/[userid]/status/[id]/page.tsx b/app/(content)/(user)/[userid]/status/[id]/page.tsx
index 6860c70..cae286f 100644
--- a/app/(content)/(user)/[userid]/status/[id]/page.tsx
+++ b/app/(content)/(user)/[userid]/status/[id]/page.tsx
@@ -1,11 +1,15 @@
+import { BackHeader } from "@/components/back-header";
 import { GweetDetails } from "@/components/gweets/components/gweet-details";
-import { GweetHeader } from "@/components/layout";
+import { Card } from "@/components/ui/card";
 
 export default async function GweetDetailPage() {
     return (
-        <div>
-            <GweetHeader />
+        <Card className="w-full h-full p-3 xl:p-6 ">
+            <BackHeader>
+                <h1 className="font-bold">Gweet</h1>
+            </BackHeader>
+
             <GweetDetails />
-        </div>
+        </Card>
     );
 };
\ No newline at end of file
diff --git a/app/(content)/layout.tsx b/app/(content)/layout.tsx
index 3c53c0a..6c0fcad 100644
--- a/app/(content)/layout.tsx
+++ b/app/(content)/layout.tsx
@@ -16,7 +16,7 @@ export default async function ContentLayout({
 
     return (
         <div className="flex min-h-screen flex-col space-y-6">
-            <header className="sticky top-0 z-40 border-b bg-background">
+            <header className="sticky top-0 z-50 border-b bg-background">
                 <div className="container flex h-16 items-center justify-between py-4">
                     <MainNav />
                     <SearchInput className="p-3 md:w-2/3 2xl:w-1/3" />
diff --git a/app/layout.tsx b/app/layout.tsx
index bd44fed..ffdae6c 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,9 +1,9 @@
 import { Inter } from 'next/font/google'
 import './globals.css'
 
-import Providers from '@/components/react-query/provider'
 import { ThemeProvider } from '@/components/ui/theme-provider'
 import { Toaster } from '@/components/ui/toaster'
+import Providers from '@/lib/react-query/provider'
 
 const inter = Inter({ subsets: ['latin'] })
 
diff --git a/components/back-button.tsx b/components/back-button.tsx
index fbe4dd0..a0be855 100644
--- a/components/back-button.tsx
+++ b/components/back-button.tsx
@@ -10,7 +10,7 @@ export const BackButton = () => {
     return (
         <Button
             variant="ghost"
-            size="lg"
+            size="icon"
             onClick={() => router.back()}
             title="Go Back"
         >
diff --git a/components/back-header.tsx b/components/back-header.tsx
new file mode 100644
index 0000000..ac66b0e
--- /dev/null
+++ b/components/back-header.tsx
@@ -0,0 +1,10 @@
+import { BackButton } from "@/components/back-button";
+
+export const BackHeader = ({ children }: { children: React.ReactNode }) => {
+  return (
+    <div className="flex items-center space-x-3">
+      <BackButton />
+      {children}
+    </div>
+  );
+}
\ No newline at end of file
diff --git a/components/create-gweet/components/create-gweet.tsx b/components/create-gweet/components/create-gweet.tsx
index ff8ada1..71bd6bd 100644
--- a/components/create-gweet/components/create-gweet.tsx
+++ b/components/create-gweet/components/create-gweet.tsx
@@ -226,7 +226,7 @@ export const CreateGweet = ({
                             type="button"
                             size="icon"
                             variant="secondary"
-                            className="rounded-full absolute top-1 right-1 z-50"
+                            className="rounded-full absolute top-1 right-1 z-40"
                             onClick={() => {
                               setChosenImages(
                                 chosenImages.filter((img, j) => j !== i),
@@ -251,7 +251,7 @@ export const CreateGweet = ({
             </Card>
 
             <div className="flex justify-end">
-              <Button type="submit" size="lg" className=" w-20" disabled={isLoading || !session.user}>
+              <Button type="submit" size="lg" className="w-20" disabled={isLoading || !session.user}>
                 {isLoading ? (
                   <Icons.spinner className="h-4 w-4 animate-spin" />
                 ) : (
diff --git a/components/gweets/components/actions/comment-button.tsx b/components/gweets/components/actions/comment-button.tsx
index d7103bb..d5c53c4 100644
--- a/components/gweets/components/actions/comment-button.tsx
+++ b/components/gweets/components/actions/comment-button.tsx
@@ -6,7 +6,7 @@ import { Icons } from "@/components/icons";
 export const CommentButton = ({ gweet }: { gweet: IGweet }) => {
   return (
     <div className="relative inline-flex items-center">
-      <Button variant="ghost" size="icon" className="hover:bg-sky-800 z-50">
+      <Button variant="ghost" size="icon" className="hover:bg-sky-800 z-40">
         <Icons.messagecircle className="w-6 h-6" />
       </Button>
 
diff --git a/components/gweets/components/actions/regweet-button.tsx b/components/gweets/components/actions/regweet-button.tsx
index ec5fbde..f02a894 100644
--- a/components/gweets/components/actions/regweet-button.tsx
+++ b/components/gweets/components/actions/regweet-button.tsx
@@ -24,7 +24,7 @@ export const RegweetButton = ({ gweet }: { gweet: IGweet }) => {
             });
           }
         }}
-        variant="ghost" size="icon" className="hover:bg-green-800 z-50"
+        variant="ghost" size="icon" className="hover:bg-green-800 z-40"
       >
         {hasRegweeted ?
           <Icons.regweet className="w-6 h-6 text-green-600" />
diff --git a/components/gweets/components/comments.tsx b/components/gweets/components/comments.tsx
index 969ed9a..f1f5742 100644
--- a/components/gweets/components/comments.tsx
+++ b/components/gweets/components/comments.tsx
@@ -1,8 +1,7 @@
 import { TryAgain } from "@/components/try-again";
 
+import LoadingItem from "@/components/loading-item";
 import { useGweets } from "../hooks/use-gweets";
-
-import { Icons } from "@/components/icons";
 import { InfiniteGweets } from "./infinite-gweets";
 
 export const Comments = ({ gweetId }: { gweetId: string }) => {
@@ -21,7 +20,7 @@ export const Comments = ({ gweetId }: { gweetId: string }) => {
   });
 
   if (isLoading) {
-    return <Icons.spinner className="mt-3 h-4 w-4 animate-spin align-middle" />;
+    return <LoadingItem />;
   }
 
   if (isError) {
diff --git a/components/gweets/components/gweet-details.tsx b/components/gweets/components/gweet-details.tsx
index f7e5832..20fd88c 100644
--- a/components/gweets/components/gweet-details.tsx
+++ b/components/gweets/components/gweet-details.tsx
@@ -1,7 +1,7 @@
 "use client"
 
 import { CreateGweetWrapper } from "@/components/create-gweet/components/create-gweet-wrapper";
-import { Icons } from "@/components/icons";
+import LoadingItem from "@/components/loading-item";
 import { TryAgain } from "@/components/try-again";
 import { Card } from "@/components/ui/card";
 import { Separator } from "@/components/ui/separator";
@@ -21,7 +21,7 @@ export const GweetDetails = () => {
     const { data: gweet, isLoading, isError } = useGweet(id);
 
     if (isLoading) {
-        return <Icons.spinner className="h-4 w-4 animate-spin" />;
+        return <LoadingItem />;
     }
 
     if (isError) {
@@ -33,7 +33,7 @@ export const GweetDetails = () => {
     }
 
     return (
-        <Card className="w-full h-full mt-12 p-3 xl:p-6 ">
+        <>
             <div className="flex flex-col space-y-3 px-3 pt-3">
                 <GweetAuthor gweet={gweet} />
 
@@ -83,6 +83,6 @@ export const GweetDetails = () => {
             </div>
             <Separator className="h-1 mb-3" />
             <Comments gweetId={gweet?.id} />
-        </Card>
+        </>
     );
 };
\ No newline at end of file
diff --git a/components/gweets/components/gweets.tsx b/components/gweets/components/gweets.tsx
index 43bac1b..81fa2ee 100644
--- a/components/gweets/components/gweets.tsx
+++ b/components/gweets/components/gweets.tsx
@@ -1,11 +1,9 @@
 "use client";
 
+import LoadingItem from "@/components/loading-item";
 import { TryAgain } from "@/components/try-again";
-
-import { useGweets } from "../hooks/use-gweets";
-
-import { Icons } from "@/components/icons";
 import { Card } from "@/components/ui/card";
+import { useGweets } from "../hooks/use-gweets";
 import { InfiniteGweets } from "./infinite-gweets";
 
 export const Gweets = () => {
@@ -20,7 +18,7 @@ export const Gweets = () => {
   } = useGweets({});
 
   if (isLoading) {
-    return <Icons.spinner className="mr-2 h-4 w-4 animate-spin" />;
+    return <LoadingItem />;
   }
 
   if (isError) {
diff --git a/components/gweets/components/infinite-gweets.tsx b/components/gweets/components/infinite-gweets.tsx
index e923d87..c86d6ae 100644
--- a/components/gweets/components/infinite-gweets.tsx
+++ b/components/gweets/components/infinite-gweets.tsx
@@ -1,12 +1,10 @@
 "use client"
 
+import LoadingItem from "@/components/loading-item";
+import { Separator } from "@/components/ui/separator";
 import { useEffect } from "react";
 import { useInView } from "react-intersection-observer";
-
 import { IInfiniteGweets } from "../types";
-
-import { Icons } from "@/components/icons";
-import { Separator } from "@/components/ui/separator";
 import { Gweet } from "./gweet";
 
 export const InfiniteGweets = ({
@@ -47,7 +45,7 @@ export const InfiniteGweets = ({
           ));
         })}
 
-      {isFetchingNextPage && <Icons.spinner className="mr-2 h-4 w-4 animate-spin" />}
+      {isFetchingNextPage && <LoadingItem />}
     </div>
   );
-};
+};
\ No newline at end of file
diff --git a/components/layout/components/gweet-header.tsx b/components/layout/components/gweet-header.tsx
deleted file mode 100644
index 0f5d3aa..0000000
--- a/components/layout/components/gweet-header.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { BackButton } from "@/components/back-button";
-
-
-export const GweetHeader = () => {
-  return (
-    <div className="">
-      <BackButton />
-      <h2 className="">Gweet</h2>
-    </div>
-  );
-};
diff --git a/components/layout/index.ts b/components/layout/index.ts
deleted file mode 100644
index 347adfc..0000000
--- a/components/layout/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./components/gweet-header";
diff --git a/components/loading-item.tsx b/components/loading-item.tsx
new file mode 100644
index 0000000..ccb16e1
--- /dev/null
+++ b/components/loading-item.tsx
@@ -0,0 +1,9 @@
+import { Icons } from "./icons"
+
+export default function LoadingItem() {
+    return (
+        <div className="w-full m-6 flex items-center justify-center">
+            <Icons.spinner className="h-6 w-6 animate-spin" />
+        </div>
+    )
+}
\ No newline at end of file
diff --git a/components/site-loading.tsx b/components/loading-site.tsx
similarity index 100%
rename from components/site-loading.tsx
rename to components/loading-site.tsx
diff --git a/components/react-query/getQueryClient.ts b/lib/react-query/getQueryClient.ts
similarity index 100%
rename from components/react-query/getQueryClient.ts
rename to lib/react-query/getQueryClient.ts
diff --git a/components/react-query/hydrate.client.tsx b/lib/react-query/hydrate.client.tsx
similarity index 100%
rename from components/react-query/hydrate.client.tsx
rename to lib/react-query/hydrate.client.tsx
diff --git a/components/react-query/provider.tsx b/lib/react-query/provider.tsx
similarity index 100%
rename from components/react-query/provider.tsx
rename to lib/react-query/provider.tsx
diff --git a/package-lock.json b/package-lock.json
index b5be777..d1a0a32 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,13 +23,13 @@
                 "@radix-ui/react-slot": "^1.0.2",
                 "@radix-ui/react-toast": "^1.1.4",
                 "@t3-oss/env-nextjs": "^0.6.0",
-                "@tanstack/react-query": "^4.29.17",
-                "@uploadthing/react": "^5.0.0",
+                "@tanstack/react-query": "^4.29.19",
+                "@uploadthing/react": "^5.1.0",
                 "bcrypt": "^5.1.0",
                 "class-variance-authority": "^0.6.1",
                 "clsx": "^1.2.1",
                 "dayjs": "^1.11.8",
-                "lucide-react": "^0.252.0",
+                "lucide-react": "^0.256.0",
                 "next": "^13.4.7",
                 "next-auth": "^4.22.1",
                 "next-themes": "^0.2.1",
@@ -37,18 +37,18 @@
                 "react": "18.2.0",
                 "react-dom": "18.2.0",
                 "react-dropzone": "^14.2.3",
-                "react-hook-form": "^7.45.0",
+                "react-hook-form": "^7.45.1",
                 "react-infinite-scroll-component": "^6.1.0",
-                "react-intersection-observer": "^9.5.1",
+                "react-intersection-observer": "^9.5.2",
                 "tailwind-merge": "^1.13.2",
                 "tailwindcss-animate": "^1.0.6",
-                "uploadthing": "^5.0.0",
+                "uploadthing": "^5.1.0",
                 "zod": "^3.21.4"
             },
             "devDependencies": {
                 "@tanstack/eslint-plugin-query": "^4.29.9",
                 "@types/bcrypt": "^5.0.0",
-                "@types/node": "^20.3.1",
+                "@types/node": "^20.3.2",
                 "@types/react": "^18.2.14",
                 "@types/react-dom": "^18.2.6",
                 "autoprefixer": "10.4.14",
@@ -57,7 +57,16 @@
                 "postcss": "8.4.24",
                 "prisma": "^4.16.1",
                 "tailwindcss": "3.3.2",
-                "typescript": "^5.1.3"
+                "typescript": "^5.1.5"
+            }
+        },
+        "node_modules/@aashutoshrathi/word-wrap": {
+            "version": "1.2.6",
+            "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+            "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.10.0"
             }
         },
         "node_modules/@alloc/quick-lru": {
@@ -1437,21 +1446,20 @@
             }
         },
         "node_modules/@tanstack/query-core": {
-            "version": "4.29.17",
-            "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.29.17.tgz",
-            "integrity": "sha512-iDbO8yZOpm1lqgq6L8mpxGbKaoiyZSjthxEB3WGU7mNPYss9q4H3Q67+e2xXGwkemEVmtEX/WwvtFitrvVU8TA==",
+            "version": "4.29.19",
+            "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.29.19.tgz",
+            "integrity": "sha512-uPe1DukeIpIHpQi6UzIgBcXsjjsDaLnc7hF+zLBKnaUlh7jFE/A+P8t4cU4VzKPMFB/C970n/9SxtpO5hmIRgw==",
             "funding": {
                 "type": "github",
                 "url": "https://github.com/sponsors/tannerlinsley"
             }
         },
         "node_modules/@tanstack/react-query": {
-            "version": "4.29.17",
-            "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.29.17.tgz",
-            "integrity": "sha512-udOy/jgqiBHBAP93YPAU3QoVYO+Rtx9HT/10xGDQzC8iQU/wIxcIaT/usX+1NSzoUFYU5hUcPaNErPWZnR7XgA==",
+            "version": "4.29.19",
+            "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.29.19.tgz",
+            "integrity": "sha512-XiTIOHHQ5Cw1WUlHaD4fmVUMhoWjuNJlAeJGq7eM4BraI5z7y8WkZO+NR8PSuRnQGblpuVdjClQbDFtwxTtTUw==",
             "dependencies": {
-                "@tanstack/query-core": "4.29.17",
-                "client-only": "0.0.1",
+                "@tanstack/query-core": "4.29.19",
                 "use-sync-external-store": "^1.2.0"
             },
             "funding": {
@@ -1488,9 +1496,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "20.3.1",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz",
-            "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==",
+            "version": "20.3.2",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz",
+            "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==",
             "dev": true
         },
         "node_modules/@types/prop-types": {
@@ -1632,11 +1640,11 @@
             "integrity": "sha512-nRcdyM622+GYT9SdaJIVLknqoc8i7krItinfuBPtvmPc+UNGDJ+pMkr4AatYp88cEc4iYtPlN8flJvZ3dNtgrg=="
         },
         "node_modules/@uploadthing/react": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-5.0.0.tgz",
-            "integrity": "sha512-rWqL9V/gyCa+rWB0XNPSUEdy0w9Mlx/I/LxQkmzC2NCAwIUeub11pecdMwlKdVsogg45oMhzEI3odA2g9a5Scw==",
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-5.1.0.tgz",
+            "integrity": "sha512-gBcw7A6I3/1APqSB2tRk81JNRYdopurt5cHrTdlrLQakH2XnCTs+1Ptl+Tx6MP/zVPajJHdW5B3JB8iQc4SHoQ==",
             "dependencies": {
-                "@uploadthing/shared": "^5.0.0"
+                "@uploadthing/shared": "^5.0.1"
             },
             "peerDependencies": {
                 "react": "^17.0.2 || ^18.0.0",
@@ -1645,9 +1653,9 @@
             }
         },
         "node_modules/@uploadthing/shared": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/@uploadthing/shared/-/shared-5.0.0.tgz",
-            "integrity": "sha512-Owr/RbSZgThcjZWWy6xTcmRH6jNcCfTGtrH3jAftA1nlGW1g4FzrdTZIHB2fdjZ5qJJ2KoyY3cPY1wEdE4FjaQ==",
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/@uploadthing/shared/-/shared-5.0.1.tgz",
+            "integrity": "sha512-SMIM9Dyxu/LuKZCM0w/yCXL/wrZedUHKiEK022y5LXhbG7uApVFBPChC2+CCY7ZRU3O9sCCNsDj6OjdygIOEQw==",
             "peerDependencies": {
                 "@uploadthing/mime-types": "^0.2.0",
                 "zod": "^3.21.4"
@@ -4158,9 +4166,9 @@
             }
         },
         "node_modules/lucide-react": {
-            "version": "0.252.0",
-            "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.252.0.tgz",
-            "integrity": "sha512-98hUdm23F3YlC3UN4mzv1FAsWr81YYdxF31cYhm19c51FwOph4dn5B4NjKp45UXBiR1Xx+cKrdmSIZX0ldS8zw==",
+            "version": "0.256.0",
+            "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.256.0.tgz",
+            "integrity": "sha512-uqw4MijZS29zePSBtkEIdOAp2Mn2mE6lVgFxaUd/MpclVUOuwacpRF67s1y3ErEIcR9aSBO0F1e6G56Ci8VUKA==",
             "peerDependencies": {
                 "react": "^16.5.1 || ^17.0.0 || ^18.0.0"
             }
@@ -4739,17 +4747,17 @@
             }
         },
         "node_modules/optionator": {
-            "version": "0.9.1",
-            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-            "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+            "version": "0.9.3",
+            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+            "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
             "dev": true,
             "dependencies": {
+                "@aashutoshrathi/word-wrap": "^1.2.3",
                 "deep-is": "^0.1.3",
                 "fast-levenshtein": "^2.0.6",
                 "levn": "^0.4.1",
                 "prelude-ls": "^1.2.1",
-                "type-check": "^0.4.0",
-                "word-wrap": "^1.2.3"
+                "type-check": "^0.4.0"
             },
             "engines": {
                 "node": ">= 0.8.0"
@@ -5122,9 +5130,9 @@
             }
         },
         "node_modules/react-hook-form": {
-            "version": "7.45.0",
-            "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.45.0.tgz",
-            "integrity": "sha512-AbHeZ4ad+0dEIknSW9dBgIwcvRDfZ1O97sgj75WaMdOX0eg8TBiUf9wxzVkIjZbk76BBIE9lmFOzyD4PN80ZQg==",
+            "version": "7.45.1",
+            "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.45.1.tgz",
+            "integrity": "sha512-6dWoFJwycbuFfw/iKMcl+RdAOAOHDiF11KWYhNDRN/OkUt+Di5qsZHwA0OwsVnu9y135gkHpTw9DJA+WzCeR9w==",
             "engines": {
                 "node": ">=12.22.0"
             },
@@ -5148,9 +5156,9 @@
             }
         },
         "node_modules/react-intersection-observer": {
-            "version": "9.5.1",
-            "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.1.tgz",
-            "integrity": "sha512-YwcNF/4WsMAG1rLVDQHSbpdEW9vDaIl4QW88d+vqeXNUewFV4AJDQB14oHpAJ3rRCnKRmwu3nqfwwYe6wioNIg==",
+            "version": "9.5.2",
+            "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.2.tgz",
+            "integrity": "sha512-EmoV66/yvksJcGa1rdW0nDNc4I1RifDWkT50gXSFnPLYQ4xUptuDD4V7k+Rj1OgVAlww628KLGcxPXFlOkkU/Q==",
             "peerDependencies": {
                 "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
             }
@@ -6061,9 +6069,9 @@
             }
         },
         "node_modules/typescript": {
-            "version": "5.1.3",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
-            "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.5.tgz",
+            "integrity": "sha512-FOH+WN/DQjUvN6WgW+c4Ml3yi0PH+a/8q+kNIfRehv1wLhWONedw85iu+vQ39Wp49IzTJEsZ2lyLXpBF7mkF1g==",
             "bin": {
                 "tsc": "bin/tsc",
                 "tsserver": "bin/tsserver"
@@ -6127,12 +6135,12 @@
             }
         },
         "node_modules/uploadthing": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/uploadthing/-/uploadthing-5.0.0.tgz",
-            "integrity": "sha512-ahWcBKkcOrEF3NpTH9bpZWS4ZDim92lezd3+uSLkvhUg5kKoGT1+lyOWUUWgiIq9HlYwN8oXIb8LFvg6jLv05Q==",
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/uploadthing/-/uploadthing-5.1.0.tgz",
+            "integrity": "sha512-adWd3D0/r25EspS1s+p2RLvSpDPLOQC+AM+mH1JomsTdEDiderjxMeo6juZUWnq96O/Dsumh97SeFJXDLWI+Qw==",
             "dependencies": {
                 "@uploadthing/mime-types": "^0.2.0",
-                "@uploadthing/shared": "^5.0.0"
+                "@uploadthing/shared": "^5.0.1"
             }
         },
         "node_modules/uri-js": {
@@ -6291,15 +6299,6 @@
                 "string-width": "^1.0.2 || 2 || 3 || 4"
             }
         },
-        "node_modules/word-wrap": {
-            "version": "1.2.3",
-            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-            "dev": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
         "node_modules/wrappy": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index f75fac3..a7cb10f 100644
--- a/package.json
+++ b/package.json
@@ -27,13 +27,13 @@
         "@radix-ui/react-slot": "^1.0.2",
         "@radix-ui/react-toast": "^1.1.4",
         "@t3-oss/env-nextjs": "^0.6.0",
-        "@tanstack/react-query": "^4.29.17",
-        "@uploadthing/react": "^5.0.0",
+        "@tanstack/react-query": "^4.29.19",
+        "@uploadthing/react": "^5.1.0",
         "bcrypt": "^5.1.0",
         "class-variance-authority": "^0.6.1",
         "clsx": "^1.2.1",
         "dayjs": "^1.11.8",
-        "lucide-react": "^0.252.0",
+        "lucide-react": "^0.256.0",
         "next": "^13.4.7",
         "next-auth": "^4.22.1",
         "next-themes": "^0.2.1",
@@ -41,18 +41,18 @@
         "react": "18.2.0",
         "react-dom": "18.2.0",
         "react-dropzone": "^14.2.3",
-        "react-hook-form": "^7.45.0",
+        "react-hook-form": "^7.45.1",
         "react-infinite-scroll-component": "^6.1.0",
-        "react-intersection-observer": "^9.5.1",
+        "react-intersection-observer": "^9.5.2",
         "tailwind-merge": "^1.13.2",
         "tailwindcss-animate": "^1.0.6",
-        "uploadthing": "^5.0.0",
+        "uploadthing": "^5.1.0",
         "zod": "^3.21.4"
     },
     "devDependencies": {
         "@tanstack/eslint-plugin-query": "^4.29.9",
         "@types/bcrypt": "^5.0.0",
-        "@types/node": "^20.3.1",
+        "@types/node": "^20.3.2",
         "@types/react": "^18.2.14",
         "@types/react-dom": "^18.2.6",
         "autoprefixer": "10.4.14",
@@ -61,6 +61,6 @@
         "postcss": "8.4.24",
         "prisma": "^4.16.1",
         "tailwindcss": "3.3.2",
-        "typescript": "^5.1.3"
+        "typescript": "^5.1.5"
     }
 }
-- 
GitLab