From 4a2c2b3d0d6e04a0af62a47da4f285da7570d009 Mon Sep 17 00:00:00 2001 From: Victor Date: Thu, 22 Feb 2024 22:06:56 -0800 Subject: [PATCH] added GetPrompts to useMedia --- .../src/api/media_files/GetMedia.ts | 1 + .../components/src/api/prompts/GetPrompts.ts | 20 +++++++++++++++++++ .../src/hooks/useMedia/useMedia.tsx | 14 +++++++++++-- .../src/v2/view/pages/media/MediaPage.tsx | 1 + 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 packages/components/src/api/prompts/GetPrompts.ts diff --git a/packages/components/src/api/media_files/GetMedia.ts b/packages/components/src/api/media_files/GetMedia.ts index 1fd37c665a..17b635b811 100644 --- a/packages/components/src/api/media_files/GetMedia.ts +++ b/packages/components/src/api/media_files/GetMedia.ts @@ -10,6 +10,7 @@ export interface MediaFile { public_bucket_path: string; maybe_batch_token: string; maybe_creator_user: UserDetailsLight | null; + maybe_prompt_token: string | null; creator_set_visibility: string; created_at: Date; updated_at: Date; diff --git a/packages/components/src/api/prompts/GetPrompts.ts b/packages/components/src/api/prompts/GetPrompts.ts new file mode 100644 index 0000000000..36409e890a --- /dev/null +++ b/packages/components/src/api/prompts/GetPrompts.ts @@ -0,0 +1,20 @@ +import MakeRequest from "../MakeRequest"; + +export interface GetPromptsRequest {} + +export interface Prompt { + created_at: Date, + maybe_positive_prompt?: string, + maybe_negative_prompt?: string, + promptType: string +} + +export interface GetPromptsResponse { + prompt: Prompt + success: boolean +} + +export const GetPrompts = MakeRequest({ + method: "GET", + routingFunction: (token: string) => `/v1/prompts/${ token }`, +}); diff --git a/packages/fakeyou.com/src/hooks/useMedia/useMedia.tsx b/packages/fakeyou.com/src/hooks/useMedia/useMedia.tsx index 7bd1bf7963..79c1cb46ef 100644 --- a/packages/fakeyou.com/src/hooks/useMedia/useMedia.tsx +++ b/packages/fakeyou.com/src/hooks/useMedia/useMedia.tsx @@ -1,5 +1,6 @@ import { useEffect, useState } from 'react'; import { GetMedia, MediaFile } from "@storyteller/components/src/api/media_files/GetMedia"; +import { GetPrompts, Prompt } from "@storyteller/components/src/api/prompts/GetPrompts"; import { DeleteMedia } from "@storyteller/components/src/api/media_files/DeleteMedia"; import { FetchStatus } from "@storyteller/components/src/api/_common/SharedFetchTypes"; import {usePrevious} from "hooks"; @@ -12,6 +13,7 @@ export default function useMedia({ const [status, statusSet] = useState(FetchStatus.ready); const [writeStatus, writeStatusSet] = useState(FetchStatus.paused); const [media,mediaSet] = useState(); + const [prompt, promptSet] = useState(); const remove = (as_mod: boolean) => { writeStatusSet(FetchStatus.in_progress); DeleteMedia(mediaToken, { @@ -37,6 +39,14 @@ export default function useMedia({ statusSet(FetchStatus.success); onSuccess(res.media_file); mediaSet(res.media_file); + if (res.media_file.maybe_prompt_token) { + GetPrompts(res.media_file.maybe_prompt_token,{}) + .then((promptRes) => { + if (promptRes.prompt) { + promptSet(promptRes.prompt); + } + }); + } } }) .catch((err) => { @@ -49,7 +59,7 @@ export default function useMedia({ statusSet(FetchStatus.ready); } - },[media, mediaToken, previousToken, onSuccess, status, statusSet]); + },[media, mediaToken, previousToken, prompt, onSuccess, status, statusSet]); - return { media, mediaSet, remove, status, writeStatus }; + return { media, mediaSet, prompt, remove, status, writeStatus }; }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx b/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx index 87a0068c8f..0a20e94b42 100644 --- a/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx @@ -44,6 +44,7 @@ export default function MediaPage() { const ratings = useRatings(); const { media: mediaFile, + // prompt, remove, status, } = useMedia({