import React, { useEffect, useMemo, useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { SceneEditPanel } from "./SceneEditPanel"; import queryString from "query-string"; import { useFindScene } from "src/core/StashService"; import { ImageUtils } from "src/utils"; import { LoadingIndicator } from "src/components/Shared"; const SceneCreate: React.FC = () => { const intl = useIntl(); // create scene from provided scene id if applicable const queryParams = queryString.parse(location.search); const fromSceneID = (queryParams?.from_scene_id ?? "") as string; const { data, loading } = useFindScene(fromSceneID ?? ""); const [loadingCoverImage, setLoadingCoverImage] = useState(false); const [coverImage, setCoverImage] = useState(undefined); const scene = useMemo(() => { if (data?.findScene) { return { ...data.findScene, paths: undefined, id: undefined, }; } return {}; }, [data?.findScene]); useEffect(() => { async function fetchCoverImage() { const srcScene = data?.findScene; if (srcScene?.paths.screenshot) { setLoadingCoverImage(true); const imageData = await ImageUtils.imageToDataURL( srcScene.paths.screenshot ); setCoverImage(imageData); setLoadingCoverImage(false); } else { setCoverImage(undefined); } } fetchCoverImage(); }, [data?.findScene]); if (loading || loadingCoverImage) { return ; } return (

); }; export default SceneCreate;