Files
artcraft/app/pages/PageEnigma/comps/GenerateModals/GenerateModals.tsx
T
wilandwil d19fa3cb82 Api2.5/ MyMovies aka Generate Modal (#499)
the MyMovies button is named GenerateModal in the code for reason I am
not sure about

anyway, only 1 endpoint left here, it's getting the info of the details
of the movie, it works if you can click a completed movie and it brings
you to its detailed page

Co-authored-by: wil <wil@storyteller.ai>
2024-06-18 23:42:36 -04:00

47 lines
1.5 KiB
TypeScript

import { useCallback, useState } from "react";
import { useSignals, useSignalEffect } from "@preact/signals-react/runtime";
import { MediaFile } from "~/pages/PageEnigma/models";
import { generateMovieId } from "~/pages/PageEnigma/signals";
import { ToastTypes } from "~/enums";
import { addToast } from "~/signals";
import { MyMovies } from "~/pages/PageEnigma/comps/GenerateModals/MyMovies";
import { Sharing } from "~/pages/PageEnigma/comps/GenerateModals/Sharing";
import { MediaFilesApi } from "~/Classes/ApiManager/MediaFilesApi";
export function GenerateModals() {
useSignals();
const [mediaFile, setMediaFile] = useState<MediaFile | null>(null);
const GetMediaFileByToken = useCallback(async (movieId: string) => {
const mediaFilesApi = new MediaFilesApi();
const response = await mediaFilesApi.GetMediaFileByToken({
mediaFileToken: movieId,
});
if (response.success && response.data) {
setMediaFile(response.data);
return;
}
addToast(
ToastTypes.ERROR,
response.errorMessage ||
`Unknown Error in Getting Movie (token=${movieId}`,
);
}, []);
const setMovieId = useCallback((movieId: string) => {
generateMovieId.value = movieId;
}, []);
useSignalEffect(() => {
if (generateMovieId.value) {
GetMediaFileByToken(generateMovieId.value);
}
});
if (!mediaFile) {
return <MyMovies setMovieId={setMovieId} />;
}
return <Sharing mediaFile={mediaFile!} setMediaFile={setMediaFile} />;
}