From f7f6a28e12930aeb6d3c8de712a5b50ac9df43aa Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 5 Dec 2023 21:57:11 -0800 Subject: [PATCH] cleanup of inference jobs --- .../InferenceJobsList/InferenceJobsList.tsx | 50 +++---------------- .../providers/InferenceJobs/InferenceJobs.tsx | 5 +- .../useInferenceJobs/useInferenceJobs.tsx | 11 +--- .../fakeyou.com/src/v2/view/PageContainer.tsx | 11 +--- .../view/pages/face_animator/FaceAnimator.tsx | 2 +- .../pages/face_animator/FaceAnimatorJobs.tsx | 3 +- .../voice_designer/VoiceDesignerMainPage.tsx | 24 ++------- 7 files changed, 21 insertions(+), 85 deletions(-) diff --git a/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.tsx b/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.tsx index 2acd014f4e..092344bcfe 100644 --- a/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.tsx +++ b/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.tsx @@ -1,16 +1,11 @@ import React, { useEffect, useState } from 'react'; // import { a } from '@react-spring/web'; import { - GetPendingTtsJobCount, - GetPendingTtsJobCountIsOk, - GetPendingTtsJobCountSuccessResponse, + GetPendingTtsJobCount, GetPendingTtsJobCountIsOk, GetPendingTtsJobCountSuccessResponse } from "@storyteller/components/src/api/tts/GetPendingTtsJobCount"; - -import { JobState } from "@storyteller/components/src/jobs/JobStates"; - -import { InferenceJob } from "@storyteller/components/src/jobs/InferenceJob"; +import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob"; // import { springs } from "resources"; -// import { useInferenceJobs } from "hooks"; +import { useInferenceJobs } from "hooks"; import { Button } from 'components/common'; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChevronRight, faHourglass1, faRemove, faTrophy, faWarning } from "@fortawesome/free-solid-svg-icons"; @@ -18,16 +13,14 @@ import { faChevronRight, faHourglass1, faRemove, faTrophy, faWarning } from "@fo const DEFAULT_QUEUE_REFRESH_INTERVAL_MILLIS = 15000; interface JobsListProps{ - filter?: (job:any) => any, + jobType: FrontendInferenceJobType, onSelect?: (e:any) => any, statusTxt: any, t: any, - inferenceJobs?: any } -export default function InferenceJobsList({ filter, onSelect, statusTxt, t, inferenceJobs }: JobsListProps) { - // const { inferenceJobs = [] } = useInferenceJobs({ type: 0 }); - // const oldJobs = thejobs || inferenceJobs; +export default function InferenceJobsList({ jobType, onSelect, statusTxt, t }: JobsListProps) { + const { inferenceJobs = [] } = useInferenceJobs(jobType); const [pending, pendingSet] = useState({ success: true, @@ -45,31 +38,6 @@ export default function InferenceJobsList({ filter, onSelect, statusTxt, t, infe } }; - const processStatus = (job: InferenceJob) => { - switch (job.jobState) { - case JobState.PENDING: - case JobState.UNKNOWN: return 0; - case JobState.STARTED: return 1 - case JobState.ATTEMPT_FAILED: return 2; - case JobState.COMPLETE_FAILURE: - case JobState.DEAD: return 3; - case JobState.COMPLETE_SUCCESS: return 4; - default: return -1; - } - }; - - const jobs = inferenceJobs.map((job: InferenceJob, i: number) => ({ - ...job!, - statusIndex: processStatus(job!) - })); - - // const transitions = useTransition(inferenceJobs, { // not today - // ...springs.soft, - // from: { opacity: 0, position: "absolute" }, - // enter: { opacity: 1, position: "relative" }, - // leave: { opacity: 0, position: "absolute" }, - // }); - useEffect(() => { const fetch = async () => { const response = await GetPendingTtsJobCount(); @@ -92,11 +60,9 @@ export default function InferenceJobsList({ filter, onSelect, statusTxt, t, infe return () => clearInterval(interval); }, [pending]); - return jobs.length ?
+ return inferenceJobs.length ?
{ t("headings.yourJobs") }
- { jobs - // .filter(filter) - .map((job: any, key: number) => { + { inferenceJobs.map((job: any, key: number) => { return
diff --git a/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx b/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx index af5c3a3665..b99bfc9ca7 100644 --- a/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx +++ b/packages/fakeyou.com/src/components/providers/InferenceJobs/InferenceJobs.tsx @@ -6,10 +6,9 @@ import { InferenceJobsContext } from 'context'; interface Props { children?: any; byCategory?: any; - sessionWrapper?: any; } -export default function InferenceJobs({ children, byCategory, sessionWrapper }: Props) { +export default function InferenceJobs({ children, byCategory }: Props) { const processStatus = (job: InferenceJob) => { switch (job.jobState) { case JobState.PENDING: @@ -22,7 +21,7 @@ export default function InferenceJobs({ children, byCategory, sessionWrapper }: default: return -1; } }; - return + return { children } }; \ 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 43a65160e5..2c9cbc39f8 100644 --- a/packages/fakeyou.com/src/hooks/useInferenceJobs/useInferenceJobs.tsx +++ b/packages/fakeyou.com/src/hooks/useInferenceJobs/useInferenceJobs.tsx @@ -2,18 +2,11 @@ import { useContext } from 'react'; import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob"; import { InferenceJobsContext } from 'context'; - -interface Props { - inferenceJobsByCategory?: any; - type: number; -} - -export default function useInferenceJobs({ inferenceJobsByCategory, type }: Props) { +export default function useInferenceJobs(jobType: FrontendInferenceJobType) { const { byCategory, processStatus } = useContext(InferenceJobsContext); - const jbs = byCategory.get(FrontendInferenceJobType.FaceAnimation) || []; return { - inferenceJobs: jbs.map((job,i) => ({ + inferenceJobs: (byCategory.get(jobType) || []).map((job,i) => ({ ...job!, statusIndex: processStatus(job!) })), diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index cc2912a33b..8bf60f24dd 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -709,16 +709,7 @@ class PageContainer extends React.Component< - + diff --git a/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimator.tsx b/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimator.tsx index 80470943d3..15e93b80cf 100644 --- a/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimator.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimator.tsx @@ -170,7 +170,7 @@ export default function FaceAnimator({ enqueueInferenceJob, sessionSubscription Analytics.voiceConversionClickDownload(), - inferenceJobs: inferenceJobsByCategory.get(FrontendInferenceJobType.FaceAnimation), + jobType: FrontendInferenceJobType.FaceAnimation, statusTxt }}/>
diff --git a/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimatorJobs.tsx b/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimatorJobs.tsx index 6692b07198..3ab96d0480 100644 --- a/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimatorJobs.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/face_animator/FaceAnimatorJobs.tsx @@ -11,11 +11,12 @@ import { Button } from 'components/common'; import { Analytics } from "common/Analytics"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChevronRight, faHourglass1, faRemove, faTrophy, faWarning } from "@fortawesome/free-solid-svg-icons"; +import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob"; const DEFAULT_QUEUE_REFRESH_INTERVAL_MILLIS = 15000; export default function FaceAnimatorJobs({ t }: { t: any }) { - const { inferenceJobs = [] } = useInferenceJobs({ type: 0 }); + const { inferenceJobs = [] } = useInferenceJobs(FrontendInferenceJobType.FaceAnimation); const [pending, pendingSet] = useState({ success: true, pending_job_count: 0, diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerMainPage.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerMainPage.tsx index 9cfd50f8f3..27a2fa4866 100644 --- a/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerMainPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerMainPage.tsx @@ -20,22 +20,12 @@ import useVoiceRequests from "./useVoiceRequests"; import { usePrefixedDocumentTitle } from "common/UsePrefixedDocumentTitle"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faMicrophone } from "@fortawesome/pro-solid-svg-icons"; - -import { - FrontendInferenceJobType, - // InferenceJob, -} from "@storyteller/components/src/jobs/InferenceJob"; -import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper"; -import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper"; +import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob"; import { useSession } from "hooks"; -interface Props { - sessionWrapper: SessionWrapper; - sessionSubscriptionsWrapper: SessionSubscriptionsWrapper; - inferenceJobsByCategory: any; -} +// interface Props {} -function VoiceDesignerMainPage(props: Props) { +function VoiceDesignerMainPage() { usePrefixedDocumentTitle("AI Voice Designer"); const { pathname } = useLocation(); const { t } = useLocalize("FaceAnimator"); @@ -44,9 +34,7 @@ function VoiceDesignerMainPage(props: Props) { requestVoices: true, }); const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); - const view = ["/voice-designer/datasets", "/voice-designer/voices"].indexOf( - pathname - ); + const view = ["/voice-designer/datasets", "/voice-designer/voices"].indexOf(pathname); const [deleteItem, setDeleteItem] = useState(""); const [deleteType, setDeleteType] = useState(""); const [deleteText, setDeleteText] = useState({ @@ -204,10 +192,8 @@ function VoiceDesignerMainPage(props: Props) { <>