mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 01:38:44 +00:00
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>
47 lines
1.5 KiB
TypeScript
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} />;
|
|
}
|