added GetPrompts to useMedia

This commit is contained in:
Victor committed 2024-02-22 22:06:56 -08:00
1 parent cd855b9d63
commit 4a2c2b3d0d
4 files changed
+34 -2

No files matched your search

@@ -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;
@@ -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<string,GetPromptsRequest,GetPromptsResponse,{}>({
method: "GET",
routingFunction: (token: string) => `/v1/prompts/${ token }`,
});
@@ -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<MediaFile | undefined>();
const [prompt, promptSet] = useState<Prompt | undefined>();
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 };
};
@@ -44,6 +44,7 @@ export default function MediaPage() {
const ratings = useRatings();
const {
media: mediaFile,
// prompt,
remove,
status,
} = useMedia({