diff --git a/src/components/VideoUploadModal.tsx b/src/components/VideoUploadModal.tsx index 42a30c1..2c5fd67 100644 --- a/src/components/VideoUploadModal.tsx +++ b/src/components/VideoUploadModal.tsx @@ -6,9 +6,11 @@ import { useRouter } from "next/router"; export default function VideoUploadModal() { const router = useRouter(); - const [isOpen, setIsOpen] = useState(false); + const [isOpen, setIsOpen] = useState(false); + const [submitting, setSubmitting] = useState(false); const [file, setFile] = useState(); const getSignedUrl = api.video.getUploadUrl.useMutation(); + const apiUtils = api.useContext(); const handleFileChange = (e: ChangeEvent): void => { if (e.target.files) { @@ -26,6 +28,7 @@ export default function VideoUploadModal() { const handleSubmit = async (): Promise => { if (!file) return; + setSubmitting(true); const { signedUrl, id } = await getSignedUrl.mutateAsync({ key: file.name, }); @@ -34,9 +37,13 @@ export default function VideoUploadModal() { headers: { "Content-Type": file.type }, }) .then(() => { - router.push("share/" + id); + void router.push("share/" + id); }) - .catch((err) => console.error(err)); + .catch((err) => { + console.error(err); + }); + setSubmitting(false); + void apiUtils.video.getAll.invalidate(); }; return ( @@ -110,10 +117,38 @@ export default function VideoUploadModal() { /> diff --git a/src/pages/share/[videoId].tsx b/src/pages/share/[videoId].tsx index c6dd18e..326fd83 100644 --- a/src/pages/share/[videoId].tsx +++ b/src/pages/share/[videoId].tsx @@ -40,7 +40,7 @@ const VideoList: NextPage = () => {
- Screenity | {video?.title ?? ""} + Screenity | {video?.video?.title ?? ""}
@@ -53,12 +53,12 @@ const VideoList: NextPage = () => {
- {video?.video_url && ( + {video?.video?.video_url && ( )}
diff --git a/src/server/api/routers/video.ts b/src/server/api/routers/video.ts index 0766809..9cf0f6e 100644 --- a/src/server/api/routers/video.ts +++ b/src/server/api/routers/video.ts @@ -41,7 +41,10 @@ export const videoRouter = createTRPCRouter({ video.video_url = signedUrl; - return video; + return { + success: true, + video, + }; }), getUploadUrl: protectedProcedure .input(z.object({ key: z.string() }))