mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-08 02:52:12 +00:00
added GetPrompts to useMedia
This commit is contained in:
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({
|
||||
|
||||
Reference in new issue
Block a user