From 7bade312a3a9bde8b50f3799e8f434534d861faa Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Thu, 4 Jul 2024 18:14:25 +0000 Subject: [PATCH 1/9] start adding fileuploader From 4cea07ae2385a1dc7168efed3e190bddc4406363 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Thu, 4 Jul 2024 18:21:45 +0000 Subject: [PATCH 2/9] create FileUploader component --- components/shared/EventForm.tsx | 15 ++++++++++++--- components/shared/FileUploader.tsx | 15 +++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 components/shared/FileUploader.tsx diff --git a/components/shared/EventForm.tsx b/components/shared/EventForm.tsx index e84b65b..1949477 100644 --- a/components/shared/EventForm.tsx +++ b/components/shared/EventForm.tsx @@ -30,6 +30,7 @@ import { useRouter } from "next/navigation"; import { createEvent, updateEvent } from "@/lib/actions/event.actions"; import { IEvent } from "@/lib/database/models/event.model"; import Dropdown from "./Dropdown"; +import FileUploader from "./FileUploader"; type EventFormProps = { userId: string; @@ -39,6 +40,8 @@ type EventFormProps = { }; const EventForm = ({ userId, type, event, eventId }: EventFormProps) => { + const [files, setFiles] = useState([]); + const initialValues = event && type === "Update" ? { @@ -116,16 +119,22 @@ const EventForm = ({ userId, type, event, eventId }: EventFormProps) => { )} /> - {/* ( - + + + )} - /> */} + />
diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx new file mode 100644 index 0000000..25bbbf6 --- /dev/null +++ b/components/shared/FileUploader.tsx @@ -0,0 +1,15 @@ +"use client"; + +import React, { Dispatch, SetStateAction } from "react"; + +type FileUploaderProps = { + onFieldChange: (url: string) => void; + imageUrl: string; + setFiles: Dispatch>; +}; + +const FileUploader = ({}: FileUploaderProps) => { + return
FileUploader
; +}; + +export default FileUploader; From 3f374411a6013d136db1ae8bd6611449aa160af8 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 09:36:57 +0000 Subject: [PATCH 3/9] update --- components/shared/FileUploader.tsx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx index 25bbbf6..396fc70 100644 --- a/components/shared/FileUploader.tsx +++ b/components/shared/FileUploader.tsx @@ -1,6 +1,8 @@ "use client"; import React, { Dispatch, SetStateAction } from "react"; +import { Button } from "../ui/button"; +import Image from "next/image"; type FileUploaderProps = { onFieldChange: (url: string) => void; @@ -9,7 +11,23 @@ type FileUploaderProps = { }; const FileUploader = ({}: FileUploaderProps) => { - return
FileUploader
; + return ( +
+
+ file upload +

Drag photo here

+

SVG, PNG, JPG

+ +
+
+ ); }; export default FileUploader; From 5e006b54f6d41d40659ef4443ee90452797e9763 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 10:48:46 +0000 Subject: [PATCH 4/9] more update --- components/shared/FileUploader.tsx | 70 ++++++++++++++++++++++-------- package-lock.json | 63 ++++++++++++++++++++++++++- package.json | 3 +- 3 files changed, 117 insertions(+), 19 deletions(-) diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx index 396fc70..21034d2 100644 --- a/components/shared/FileUploader.tsx +++ b/components/shared/FileUploader.tsx @@ -1,7 +1,12 @@ "use client"; -import React, { Dispatch, SetStateAction } from "react"; -import { Button } from "../ui/button"; +import { useCallback, Dispatch, SetStateAction } from "react"; +import { FileWithPath } from "@uploadthing/react"; +import { useDropzone } from "@uploadthing/react/hooks"; +import { generateClientDropzoneAccept } from "uploadthing/client"; + +import { Button } from "@/components/ui/button"; +import { convertFileToUrl } from "@/lib/utils"; import Image from "next/image"; type FileUploaderProps = { @@ -10,22 +15,53 @@ type FileUploaderProps = { setFiles: Dispatch>; }; -const FileUploader = ({}: FileUploaderProps) => { +const FileUploader = ({ + onFieldChange, + imageUrl, + setFiles, +}: FileUploaderProps) => { + const onDrop = useCallback((acceptedFiles: FileWithPath[]) => { + setFiles(acceptedFiles); + onFieldChange(convertFileToUrl(acceptedFiles[0])); + }, []); + + const { getRootProps, getInputProps } = useDropzone({ + onDrop, + accept: "image/*" ? generateClientDropzoneAccept(["image/*"]) : undefined, + }); + return ( -
-
- file upload -

Drag photo here

-

SVG, PNG, JPG

- -
+
+ + + {imageUrl ? ( +
+ image +
+ ) : ( +
+ file upload +

Drag photo here

+

SVG, PNG, JPG

+ +
+ )}
); }; diff --git a/package-lock.json b/package-lock.json index 849ab47..63198cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@stripe/stripe-js": "^2.2.1", + "@uploadthing/react": "^6.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "lucide-react": "^0.399.0", @@ -32,7 +33,7 @@ "svix": "^1.24.0", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", - "uploadthing": "^6.13.2", + "uploadthing": "^6.0.4", "zod": "^3.23.8" }, "devDependencies": { @@ -1605,11 +1606,60 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@uploadthing/dropzone": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@uploadthing/dropzone/-/dropzone-0.4.1.tgz", + "integrity": "sha512-RHSpo/2kg/mrRSYQA4EKlyvkOCYWOeE2+QQYW9YiUvWCuawnTfD7DQvk8RN/nYXi1Sw7/v0NegmQpiVELVGtnA==", + "dependencies": { + "file-selector": "^0.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "solid-js": "^1.7.11", + "svelte": "^4.2.12", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "solid-js": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, "node_modules/@uploadthing/mime-types": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/@uploadthing/mime-types/-/mime-types-0.2.10.tgz", "integrity": "sha512-kz3F0oEgAyts25NAGXlUBCWh3mXonbSOQJFGFMawHuIgbUbnzXbe4w5WI+0XdneCbjNmikfWrdWrs8m/7HATfQ==" }, + "node_modules/@uploadthing/react": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-6.7.2.tgz", + "integrity": "sha512-9Mdslj1S24qbISA/LE3In5OFQ/U7OxdMbBlTPkJxKPkh+UW7BqZS0XuRTfkZYPkdBGDoXw5aH7VG3D/vGgpmxg==", + "dependencies": { + "@uploadthing/dropzone": "0.4.1", + "@uploadthing/shared": "6.7.8", + "file-selector": "^0.6.0", + "tailwind-merge": "^2.2.1" + }, + "peerDependencies": { + "next": "*", + "react": "^17.0.2 || ^18.0.0", + "uploadthing": "6.13.2" + }, + "peerDependenciesMeta": { + "next": { + "optional": true + } + } + }, "node_modules/@uploadthing/shared": { "version": "6.7.8", "resolved": "https://registry.npmjs.org/@uploadthing/shared/-/shared-6.7.8.tgz", @@ -3197,6 +3247,17 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-selector": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", + "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", diff --git a/package.json b/package.json index 91186bf..aa723e3 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@stripe/stripe-js": "^2.2.1", + "@uploadthing/react": "^6.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "lucide-react": "^0.399.0", @@ -33,7 +34,7 @@ "svix": "^1.24.0", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", - "uploadthing": "^6.13.2", + "uploadthing": "^6.0.4", "zod": "^3.23.8" }, "devDependencies": { From db6b65bdffa060e2adb675e0c4fa204325376de6 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:07:22 +0000 Subject: [PATCH 5/9] uploadting stuff --- app/api/uploadthing/core.ts | 34 ++++++++++++++++++++++++++++++ app/api/uploadthing/route.ts | 8 +++++++ components/shared/FileUploader.tsx | 2 +- lib/uploadthing.ts | 6 ++++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 app/api/uploadthing/core.ts create mode 100644 app/api/uploadthing/route.ts create mode 100644 lib/uploadthing.ts diff --git a/app/api/uploadthing/core.ts b/app/api/uploadthing/core.ts new file mode 100644 index 0000000..6b36404 --- /dev/null +++ b/app/api/uploadthing/core.ts @@ -0,0 +1,34 @@ +import { createUploadthing, type FileRouter } from "uploadthing/next"; +import { UploadThingError } from "uploadthing/server"; + +const f = createUploadthing(); + +const auth = (req: Request) => ({ id: "fakeId" }); // Fake auth function + +// FileRouter for your app, can contain multiple FileRoutes +export const ourFileRouter = { + // Define as many FileRoutes as you like, each with a unique routeSlug + imageUploader: f({ image: { maxFileSize: "4MB" } }) + // Set permissions and file types for this FileRoute + .middleware(async ({ req }) => { + // This code runs on your server before upload + const user = await auth(req); + + // If you throw, the user will not be able to upload + if (!user) throw new UploadThingError("Unauthorized"); + + // Whatever is returned here is accessible in onUploadComplete as `metadata` + return { userId: user.id }; + }) + .onUploadComplete(async ({ metadata, file }) => { + // This code RUNS ON YOUR SERVER after upload + console.log("Upload complete for userId:", metadata.userId); + + console.log("file url", file.url); + + // !!! Whatever is returned here is sent to the clientside `onClientUploadComplete` callback + return { uploadedBy: metadata.userId }; + }), +} satisfies FileRouter; + +export type OurFileRouter = typeof ourFileRouter; diff --git a/app/api/uploadthing/route.ts b/app/api/uploadthing/route.ts new file mode 100644 index 0000000..be94bb0 --- /dev/null +++ b/app/api/uploadthing/route.ts @@ -0,0 +1,8 @@ +import { createNextRouteHandler } from "uploadthing/next"; + +import { ourFileRouter } from "./core"; + +// Export routes for Next App Router +export const { GET, POST } = createNextRouteHandler({ + router: ourFileRouter, +}); diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx index 21034d2..748839b 100644 --- a/components/shared/FileUploader.tsx +++ b/components/shared/FileUploader.tsx @@ -1,7 +1,7 @@ "use client"; import { useCallback, Dispatch, SetStateAction } from "react"; -import { FileWithPath } from "@uploadthing/react"; +import type { FileWithPath } from "@uploadthing/react"; import { useDropzone } from "@uploadthing/react/hooks"; import { generateClientDropzoneAccept } from "uploadthing/client"; diff --git a/lib/uploadthing.ts b/lib/uploadthing.ts new file mode 100644 index 0000000..352adc4 --- /dev/null +++ b/lib/uploadthing.ts @@ -0,0 +1,6 @@ +import { generateReactHelpers } from "@uploadthing/react/hooks"; + +import type { OurFileRouter } from "@/app/api/uploadthing/core"; + +export const { useUploadThing, uploadFiles } = + generateReactHelpers(); From 987ae1ec5be7e5c57f3bc286e1ea77670a4e8b92 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:11:17 +0000 Subject: [PATCH 6/9] more fixes xD --- components/shared/EventForm.tsx | 2 +- components/shared/FileUploader.tsx | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/components/shared/EventForm.tsx b/components/shared/EventForm.tsx index 1949477..be1023d 100644 --- a/components/shared/EventForm.tsx +++ b/components/shared/EventForm.tsx @@ -30,7 +30,7 @@ import { useRouter } from "next/navigation"; import { createEvent, updateEvent } from "@/lib/actions/event.actions"; import { IEvent } from "@/lib/database/models/event.model"; import Dropdown from "./Dropdown"; -import FileUploader from "./FileUploader"; +import { FileUploader } from "./FileUploader"; type EventFormProps = { userId: string; diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx index 748839b..e8c3b40 100644 --- a/components/shared/FileUploader.tsx +++ b/components/shared/FileUploader.tsx @@ -15,11 +15,11 @@ type FileUploaderProps = { setFiles: Dispatch>; }; -const FileUploader = ({ - onFieldChange, +export function FileUploader({ imageUrl, + onFieldChange, setFiles, -}: FileUploaderProps) => { +}: FileUploaderProps) { const onDrop = useCallback((acceptedFiles: FileWithPath[]) => { setFiles(acceptedFiles); onFieldChange(convertFileToUrl(acceptedFiles[0])); @@ -32,8 +32,8 @@ const FileUploader = ({ return (
@@ -64,6 +64,4 @@ const FileUploader = ({ )}
); -}; - -export default FileUploader; +} From c428da0a4c16dcd24a2b1158866c678e69ba6c02 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:17:31 +0000 Subject: [PATCH 7/9] update --- package-lock.json | 59 +++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63198cf..82c90eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1606,53 +1606,25 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@uploadthing/dropzone": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@uploadthing/dropzone/-/dropzone-0.4.1.tgz", - "integrity": "sha512-RHSpo/2kg/mrRSYQA4EKlyvkOCYWOeE2+QQYW9YiUvWCuawnTfD7DQvk8RN/nYXi1Sw7/v0NegmQpiVELVGtnA==", - "dependencies": { - "file-selector": "^0.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "solid-js": "^1.7.11", - "svelte": "^4.2.12", - "vue": "^3.4.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "solid-js": { - "optional": true - }, - "svelte": { - "optional": true - }, - "vue": { - "optional": true - } - } - }, "node_modules/@uploadthing/mime-types": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/@uploadthing/mime-types/-/mime-types-0.2.10.tgz", "integrity": "sha512-kz3F0oEgAyts25NAGXlUBCWh3mXonbSOQJFGFMawHuIgbUbnzXbe4w5WI+0XdneCbjNmikfWrdWrs8m/7HATfQ==" }, "node_modules/@uploadthing/react": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-6.7.2.tgz", - "integrity": "sha512-9Mdslj1S24qbISA/LE3In5OFQ/U7OxdMbBlTPkJxKPkh+UW7BqZS0XuRTfkZYPkdBGDoXw5aH7VG3D/vGgpmxg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-6.0.2.tgz", + "integrity": "sha512-gUJwNvSFs0bg4m0c6wlFo1Fe3uyGTmAp0BESkRZvqyN4hNhIcxMY0TxjqxCKsYkv1T0/y3dHgN/XU2BDAQQh7w==", "dependencies": { - "@uploadthing/dropzone": "0.4.1", - "@uploadthing/shared": "6.7.8", + "@uploadthing/shared": "^6.0.2", + "attr-accept": "^2.2.2", "file-selector": "^0.6.0", - "tailwind-merge": "^2.2.1" + "tailwind-merge": "^1.13.2" }, "peerDependencies": { "next": "*", "react": "^17.0.2 || ^18.0.0", - "uploadthing": "6.13.2" + "uploadthing": "^6.0.0" }, "peerDependenciesMeta": { "next": { @@ -1660,6 +1632,15 @@ } } }, + "node_modules/@uploadthing/react/node_modules/tailwind-merge": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", + "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/@uploadthing/shared": { "version": "6.7.8", "resolved": "https://registry.npmjs.org/@uploadthing/shared/-/shared-6.7.8.tgz", @@ -1972,6 +1953,14 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/attr-accept": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", + "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", + "engines": { + "node": ">=4" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", From 34fc9b83c63354327ce89f7899bea75b1bc63e39 Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 18:47:05 +0000 Subject: [PATCH 8/9] ignore --- components/shared/FileUploader.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx index e8c3b40..0b506fa 100644 --- a/components/shared/FileUploader.tsx +++ b/components/shared/FileUploader.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react-hooks/exhaustive-deps */ "use client"; import { useCallback, Dispatch, SetStateAction } from "react"; From 8b8df42c2c73fd3391b2319ecd33ca5673ee3f9c Mon Sep 17 00:00:00 2001 From: DevMirza <53424436+Zaid-maker@users.noreply.github.com> Date: Sat, 6 Jul 2024 19:09:15 +0000 Subject: [PATCH 9/9] fix uploadthing finally --- components/shared/FileUploader.tsx | 4 +- package-lock.json | 61 ++++++++++++++++++------------ package.json | 2 +- 3 files changed, 39 insertions(+), 28 deletions(-) diff --git a/components/shared/FileUploader.tsx b/components/shared/FileUploader.tsx index 0b506fa..b00dc7b 100644 --- a/components/shared/FileUploader.tsx +++ b/components/shared/FileUploader.tsx @@ -2,7 +2,7 @@ "use client"; import { useCallback, Dispatch, SetStateAction } from "react"; -import type { FileWithPath } from "@uploadthing/react"; +// import type { FileWithPath } from "@uploadthing/react"; import { useDropzone } from "@uploadthing/react/hooks"; import { generateClientDropzoneAccept } from "uploadthing/client"; @@ -21,7 +21,7 @@ export function FileUploader({ onFieldChange, setFiles, }: FileUploaderProps) { - const onDrop = useCallback((acceptedFiles: FileWithPath[]) => { + const onDrop = useCallback((acceptedFiles: File[]) => { setFiles(acceptedFiles); onFieldChange(convertFileToUrl(acceptedFiles[0])); }, []); diff --git a/package-lock.json b/package-lock.json index 82c90eb..b7c245b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@stripe/stripe-js": "^2.2.1", - "@uploadthing/react": "^6.0.2", + "@uploadthing/react": "^6.0.3", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "lucide-react": "^0.399.0", @@ -1606,25 +1606,53 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@uploadthing/dropzone": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@uploadthing/dropzone/-/dropzone-0.4.1.tgz", + "integrity": "sha512-RHSpo/2kg/mrRSYQA4EKlyvkOCYWOeE2+QQYW9YiUvWCuawnTfD7DQvk8RN/nYXi1Sw7/v0NegmQpiVELVGtnA==", + "dependencies": { + "file-selector": "^0.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "solid-js": "^1.7.11", + "svelte": "^4.2.12", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "solid-js": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, "node_modules/@uploadthing/mime-types": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/@uploadthing/mime-types/-/mime-types-0.2.10.tgz", "integrity": "sha512-kz3F0oEgAyts25NAGXlUBCWh3mXonbSOQJFGFMawHuIgbUbnzXbe4w5WI+0XdneCbjNmikfWrdWrs8m/7HATfQ==" }, "node_modules/@uploadthing/react": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-6.0.2.tgz", - "integrity": "sha512-gUJwNvSFs0bg4m0c6wlFo1Fe3uyGTmAp0BESkRZvqyN4hNhIcxMY0TxjqxCKsYkv1T0/y3dHgN/XU2BDAQQh7w==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@uploadthing/react/-/react-6.7.2.tgz", + "integrity": "sha512-9Mdslj1S24qbISA/LE3In5OFQ/U7OxdMbBlTPkJxKPkh+UW7BqZS0XuRTfkZYPkdBGDoXw5aH7VG3D/vGgpmxg==", "dependencies": { - "@uploadthing/shared": "^6.0.2", - "attr-accept": "^2.2.2", + "@uploadthing/dropzone": "0.4.1", + "@uploadthing/shared": "6.7.8", "file-selector": "^0.6.0", - "tailwind-merge": "^1.13.2" + "tailwind-merge": "^2.2.1" }, "peerDependencies": { "next": "*", "react": "^17.0.2 || ^18.0.0", - "uploadthing": "^6.0.0" + "uploadthing": "6.13.2" }, "peerDependenciesMeta": { "next": { @@ -1632,15 +1660,6 @@ } } }, - "node_modules/@uploadthing/react/node_modules/tailwind-merge": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", - "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, "node_modules/@uploadthing/shared": { "version": "6.7.8", "resolved": "https://registry.npmjs.org/@uploadthing/shared/-/shared-6.7.8.tgz", @@ -1953,14 +1972,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "node_modules/attr-accept": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", - "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", - "engines": { - "node": ">=4" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", diff --git a/package.json b/package.json index aa723e3..fd2fbc3 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@stripe/stripe-js": "^2.2.1", - "@uploadthing/react": "^6.0.2", + "@uploadthing/react": "^6.0.3", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "lucide-react": "^0.399.0",