diff --git a/packages/components/src/jobs/InferenceJob.ts b/packages/components/src/jobs/InferenceJob.ts index ddc39f2646..53aa9ae0f7 100644 --- a/packages/components/src/jobs/InferenceJob.ts +++ b/packages/components/src/jobs/InferenceJob.ts @@ -11,6 +11,7 @@ export enum FrontendInferenceJobType { ImageGeneration, VideoMotionCapture, ConvertFbxtoGltf, + EngineComposition } // NB: Many of these fields are optional despite the response payload containing them diff --git a/packages/fakeyou.com/src/App.tsx b/packages/fakeyou.com/src/App.tsx index 248fc6b9f2..12e574f6ff 100644 --- a/packages/fakeyou.com/src/App.tsx +++ b/packages/fakeyou.com/src/App.tsx @@ -839,6 +839,7 @@ class App extends React.Component { diff --git a/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx b/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx index c8d7142628..e0d1e5ef76 100644 --- a/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx +++ b/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx @@ -15,13 +15,13 @@ export default function BvhCard({ data, showCreator }: Props) { const timeAgo = useTimeAgo(data.created_at); const handleInnerClick = (event: any) => event.stopPropagation(); return <> - +
- +
diff --git a/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.tsx b/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.tsx index 2aed6ef642..8814e59cae 100644 --- a/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.tsx +++ b/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.tsx @@ -3,17 +3,25 @@ import { Link } from "react-router-dom"; import getCardUrl from "components/common/Card/getCardUrl"; interface Props { + canHover?: boolean, card: any, data: any, onClick?: (e:any) => any, + padding?: boolean, source?: string, type: "media" | "weights" } -export default function CardWrapper({ card: Card, data, onClick, source = "", type, ...rest }: Props) { +export default function CardWrapper({ canHover, card: Card, data, onClick, padding, source = "", type, ...rest }: Props) { const linkUrl = getCardUrl(data,source,type); const cardProps = { data, source, type, ...rest } - return onClick ? : - - ; + const className = `card ${ padding ? "p-3" : "" }${ onClick || canHover ? " card-clickable" : "" }`; + + return onClick ? +
+ +
: + + + ; }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/entities/CardWrapper/index.tsx b/packages/fakeyou.com/src/components/entities/CardWrapper/index.tsx new file mode 100644 index 0000000000..db1ba94dea --- /dev/null +++ b/packages/fakeyou.com/src/components/entities/CardWrapper/index.tsx @@ -0,0 +1 @@ +export { default } from "./CardWrapper"; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/entities/MediaList/MediaList.tsx b/packages/fakeyou.com/src/components/entities/MediaList/MediaList.tsx index 56b4363fb0..7818218c2c 100644 --- a/packages/fakeyou.com/src/components/entities/MediaList/MediaList.tsx +++ b/packages/fakeyou.com/src/components/entities/MediaList/MediaList.tsx @@ -5,7 +5,7 @@ import MasonryGrid from "components/common/MasonryGrid/MasonryGrid"; import AudioCard from "components/common/Card/AudioCard"; import ImageCard from "components/common/Card/ImageCard"; import VideoCard from "components/common/Card/VideoCard"; -import { BvhCard } from "components/entities"; +import { BvhCard, CardWrapper } from "components/entities"; interface MediaCardsProps { props: any, @@ -26,7 +26,7 @@ const MediaCards = ({ props, type }: MediaCardsProps) => { case "video": return ; case "bvh": - return + return default: return
Unsupported media type
; } diff --git a/packages/fakeyou.com/src/components/entities/index.tsx b/packages/fakeyou.com/src/components/entities/index.tsx index f8cd453fd4..a9ee9dddbc 100644 --- a/packages/fakeyou.com/src/components/entities/index.tsx +++ b/packages/fakeyou.com/src/components/entities/index.tsx @@ -1,4 +1,5 @@ import BvhCard from "./BvhCard"; +import CardWrapper from "./CardWrapper"; import MediaList from "./MediaList"; -export { BvhCard, MediaList }; \ No newline at end of file +export { BvhCard, CardWrapper, MediaList }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx b/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx index 83460a23a5..1bc486811d 100644 --- a/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx +++ b/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx @@ -3,11 +3,12 @@ import { InferenceJobsContext } from 'context'; interface Props { children?: any; + enqueue?: any; byCategory?: any; } -export default function InferenceJobs({ children, byCategory }: Props) { - return +export default function InferenceJobs({ byCategory, children, enqueue }: Props) { + return { children } }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/context/InferenceJobsContext.tsx b/packages/fakeyou.com/src/context/InferenceJobsContext.tsx index 5e1720001b..36d4de88de 100644 --- a/packages/fakeyou.com/src/context/InferenceJobsContext.tsx +++ b/packages/fakeyou.com/src/context/InferenceJobsContext.tsx @@ -1,5 +1,5 @@ import { createContext } from 'react'; -interface InferenceJobsContext { byCategory?: any } +interface InferenceJobsContext { byCategory?: any, enqueue?: any } export default createContext({ }); \ No newline at end of file diff --git a/packages/fakeyou.com/src/hooks/useInferenceJobs/useInferenceJobs.tsx b/packages/fakeyou.com/src/hooks/useInferenceJobs/useInferenceJobs.tsx index 18d3f0b929..d614de5ed6 100644 --- a/packages/fakeyou.com/src/hooks/useInferenceJobs/useInferenceJobs.tsx +++ b/packages/fakeyou.com/src/hooks/useInferenceJobs/useInferenceJobs.tsx @@ -4,8 +4,9 @@ import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/Infer import { InferenceJobsContext } from 'context'; export default function useInferenceJobs(jobType: FrontendInferenceJobType) { - const { byCategory } = useContext(InferenceJobsContext); + const { byCategory, enqueue } = useContext(InferenceJobsContext); return { + enqueue, inferenceJobs: (byCategory?.get(jobType) || []), jobStatusDescription: (jobState: JobState) => Object.keys(JobState).filter(key => isNaN(Number(key)))[jobState] }; diff --git a/packages/fakeyou.com/src/v2/view/pages/EngineCompositor/EngineCompositor.tsx b/packages/fakeyou.com/src/v2/view/pages/EngineCompositor/EngineCompositor.tsx index 66b2c0573c..fb9bdbd520 100644 --- a/packages/fakeyou.com/src/v2/view/pages/EngineCompositor/EngineCompositor.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/EngineCompositor/EngineCompositor.tsx @@ -1,6 +1,9 @@ import React, { useState } from "react"; import { Button, MocapInput } from "components/common"; +import { useInferenceJobs } from "hooks"; +import InferenceJobsList from "components/layout/InferenceJobsList"; import { EnqueueEngineCompositing } from "@storyteller/components/src/api/engine_compositor/EnqueueEngineCompositing"; +import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob"; import { v4 as uuidv4 } from "uuid"; import "./EngineCompositor.scss" @@ -11,6 +14,7 @@ interface Props { export default function EngineCompositor({ value }: Props) { const [mediaToken,mediaTokenSet] = useState(); const onChange = ({ target }: any) => mediaTokenSet(target.value); + const inferenceJobs = useInferenceJobs(FrontendInferenceJobType.EngineComposition); const onClick = () => { EnqueueEngineCompositing("",{ @@ -20,15 +24,22 @@ export default function EngineCompositor({ value }: Props) { .then((res: any) => { if (res && res.success) { console.log("🚛 success!",{ mediaToken, res }); - // enqueueInferenceJob( // I need to pass this - // res.inference_job_token, - // FrontendInferenceJobType.THING - // ); + inferenceJobs.enqueue( // I need to pass this + res.inference_job_token, + FrontendInferenceJobType.EngineComposition + ); } }); } + const failures = (fail = "") => { + switch (fail) { + default: + return "Uknown failure"; + } + }; + return
@@ -37,5 +48,11 @@ export default function EngineCompositor({ value }: Props) {
+
; }; \ No newline at end of file