From cc85672390eedf25d6a45d29e047d2770b5b6085 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Sun, 6 Jun 2021 03:45:58 -0400 Subject: [PATCH] pass upload job state through all relevant controllers --- vocodes/src/App.tsx | 6 ++++ vocodes/src/v2/NewVocodesContainer.tsx | 28 ++++++++++++------- .../src/v2/tts_model_list/TtsModelFormFc.tsx | 2 -- vocodes/src/v2/upload/UploadComponent.tsx | 10 ++++++- vocodes/src/v2/upload/UploadTtsModelFc.tsx | 20 +++++++++++-- vocodes/src/v2/upload/UploadW2lPhotoFc.tsx | 19 +++++++++++-- vocodes/src/v2/upload/UploadW2lVideoFc.tsx | 19 +++++++++++-- 7 files changed, 85 insertions(+), 19 deletions(-) diff --git a/vocodes/src/App.tsx b/vocodes/src/App.tsx index fa291d7097..fb74e75a51 100644 --- a/vocodes/src/App.tsx +++ b/vocodes/src/App.tsx @@ -447,6 +447,12 @@ class App extends React.Component { enqueueW2lJob={this.enqueueW2lJob} w2lInferenceJobs={this.state.w2lInferenceJobs} + + enqueueTtsModelUploadJob={this.enqueueTtsModelUploadJob} + ttsModelUploadJobs={this.state.ttsModelUploadJobs} + + enqueueW2lTemplateUploadJob={this.enqueueW2lTemplateUploadJob} + w2lTemplateUploadJobs={this.state.w2lTemplateUploadJobs} /> diff --git a/vocodes/src/v2/NewVocodesContainer.tsx b/vocodes/src/v2/NewVocodesContainer.tsx index 255fe644b4..d78508f6f7 100644 --- a/vocodes/src/v2/NewVocodesContainer.tsx +++ b/vocodes/src/v2/NewVocodesContainer.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { FirehoseEventListFc } from './firehose/FirehoseEventListFc'; import { LoginFc } from './login/LoginFc'; +import { NewFooterNavFc } from './NewFooterNavFc'; import { NewTopNavFc } from './NewTopNavFc'; import { ProfileDataFc } from './profile_data/ProfileDataFc'; import { ProfileEditFc } from './profile_edit/ProfileEditFc'; @@ -8,8 +9,12 @@ import { ProfileFc } from './profile/ProfileFc'; import { SessionWrapper } from '../session/SessionWrapper'; import { SignupComponent } from './signup/SignupComponent'; import { Switch, Route, RouteProps } from 'react-router-dom'; +import { TtsInferenceJob, W2lInferenceJob } from '../App'; import { TtsModelFormFc } from './tts_model_list/TtsModelFormFc'; import { TtsModelListComponent } from './tts_model_list/TtsModelListComponent'; +import { TtsModelUploadJob } from '../jobs/TtsModelUploadJobs'; +import { TtsModelViewFc } from './tts_model_view/TtsModelViewFc'; +import { TtsResultViewFc } from './tts_result_view/TtsResultViewFc'; import { UploadChoiceFc } from './upload/UploadChoiceFc'; import { UploadComponent } from './upload/UploadComponent'; import { UploadTtsModelFc } from './upload/UploadTtsModelFc'; @@ -17,11 +22,8 @@ import { UploadW2lPhotoFc } from './upload/UploadW2lPhotoFc'; import { UploadW2lVideoFc } from './upload/UploadW2lVideoFc'; import { W2lResultViewFc } from './w2l_result_view/W2lResultViewFc'; import { W2lTemplateListFc } from './w2l_template_list/W2lTemplateListFc'; +import { W2lTemplateUploadJob } from '../jobs/W2lTemplateUploadJobs'; import { W2lTemplateViewFc } from './w2l_template_view/W2lTemplateViewFc'; -import { NewFooterNavFc } from './NewFooterNavFc'; -import { TtsModelViewFc } from './tts_model_view/TtsModelViewFc'; -import { TtsResultViewFc } from './tts_result_view/TtsResultViewFc'; -import { TtsInferenceJob, W2lInferenceJob } from '../App'; interface Props { sessionWrapper: SessionWrapper, @@ -32,6 +34,12 @@ interface Props { enqueueW2lJob: (jobToken: string) => void, w2lInferenceJobs: Array, + + enqueueTtsModelUploadJob: (jobToken: string) => void, + ttsModelUploadJobs: Array, + + enqueueW2lTemplateUploadJob: (jobToken: string) => void, + w2lTemplateUploadJobs: Array, } interface State { @@ -150,18 +158,24 @@ class NewVocodesContainer extends React.Component { @@ -171,12 +185,6 @@ class NewVocodesContainer extends React.Component { /> - - - - res.json()) .then(res => { - console.log('list', res); const ttsModelResponse : TtsModelListResponsePayload = res; if (!ttsModelResponse.success) { return; @@ -106,7 +105,6 @@ function TtsModelFormFc(props: Props) { // TODO: Inefficient. ttsModels.forEach(model => { if (model.model_token === selectVoiceValue) { - console.log('voice', model); setSelectedTtsModel(model); } }); diff --git a/vocodes/src/v2/upload/UploadComponent.tsx b/vocodes/src/v2/upload/UploadComponent.tsx index 5b6645fac3..ddf496608e 100644 --- a/vocodes/src/v2/upload/UploadComponent.tsx +++ b/vocodes/src/v2/upload/UploadComponent.tsx @@ -1,7 +1,9 @@ import React from 'react'; import { ApiConfig } from '../../common/ApiConfig'; -import { v4 } from 'uuid'; import { SessionWrapper } from '../../session/SessionWrapper'; +import { TtsModelUploadJob } from '../../jobs/TtsModelUploadJobs'; +import { W2lTemplateUploadJob } from '../../jobs/W2lTemplateUploadJobs'; +import { v4 } from 'uuid'; enum UploadType { TTS_MODEL, @@ -16,6 +18,12 @@ enum FieldTriState { interface Props { sessionWrapper : SessionWrapper, + + enqueueTtsModelUploadJob: (jobToken: string) => void, + ttsModelUploadJobs: Array, + + enqueueW2lTemplateUploadJob: (jobToken: string) => void, + w2lTemplateUploadJobs: Array, } interface State { diff --git a/vocodes/src/v2/upload/UploadTtsModelFc.tsx b/vocodes/src/v2/upload/UploadTtsModelFc.tsx index 7e54458875..0452c0206f 100644 --- a/vocodes/src/v2/upload/UploadTtsModelFc.tsx +++ b/vocodes/src/v2/upload/UploadTtsModelFc.tsx @@ -1,11 +1,19 @@ import React, { useState } from 'react'; import { ApiConfig } from '../../common/ApiConfig'; import { SessionWrapper } from '../../session/SessionWrapper'; +import { TtsModelUploadJob } from '../../jobs/TtsModelUploadJobs'; import { useHistory, Link } from "react-router-dom"; import { v1 as uuidv1 } from 'uuid'; interface Props { sessionWrapper: SessionWrapper, + enqueueTtsModelUploadJob: (jobToken: string) => void, + ttsModelUploadJobs: Array, +} + +interface TtsModelUploadJobResponsePayload { + success: boolean, + job_token?: string, } function UploadTtsModelFc(props: Props) { @@ -59,9 +67,17 @@ function UploadTtsModelFc(props: Props) { }) .then(res => res.json()) .then(res => { - if (res.success) { - history.push('/'); + let response : TtsModelUploadJobResponsePayload = res; + + if (!response.success || response.job_token === undefined) { + return; } + + console.log('enqueuing...') + + props.enqueueTtsModelUploadJob(response.job_token); + + history.push('/'); }) .catch(e => { //this.props.onSpeakErrorCallback(); diff --git a/vocodes/src/v2/upload/UploadW2lPhotoFc.tsx b/vocodes/src/v2/upload/UploadW2lPhotoFc.tsx index 1fcd5a9c4c..fe6c69a455 100644 --- a/vocodes/src/v2/upload/UploadW2lPhotoFc.tsx +++ b/vocodes/src/v2/upload/UploadW2lPhotoFc.tsx @@ -1,11 +1,19 @@ import React, { useState } from 'react'; import { ApiConfig } from '../../common/ApiConfig'; import { SessionWrapper } from '../../session/SessionWrapper'; +import { W2lTemplateUploadJob } from '../../jobs/W2lTemplateUploadJobs'; import { useHistory, Link } from "react-router-dom"; import { v1 as uuidv1 } from 'uuid'; +interface W2lTemplateUploadJobResponsePayload { + success: boolean, + job_token?: string, +} + interface Props { sessionWrapper: SessionWrapper, + enqueueW2lTemplateUploadJob: (jobToken: string) => void, + w2lTemplateUploadJobs: Array, } function UploadW2lPhotoFc(props: Props) { @@ -59,9 +67,16 @@ function UploadW2lPhotoFc(props: Props) { }) .then(res => res.json()) .then(res => { - if (res.success) { - history.push('/'); + let response : W2lTemplateUploadJobResponsePayload = res; + + if (!response.success || response.job_token === undefined) { + return; } + + console.log('enqueuing...') + + props.enqueueW2lTemplateUploadJob(response.job_token); + history.push('/'); }) .catch(e => { //this.props.onSpeakErrorCallback(); diff --git a/vocodes/src/v2/upload/UploadW2lVideoFc.tsx b/vocodes/src/v2/upload/UploadW2lVideoFc.tsx index 36955cfd64..6d5ec79382 100644 --- a/vocodes/src/v2/upload/UploadW2lVideoFc.tsx +++ b/vocodes/src/v2/upload/UploadW2lVideoFc.tsx @@ -1,11 +1,19 @@ import React, { useState } from 'react'; import { ApiConfig } from '../../common/ApiConfig'; import { SessionWrapper } from '../../session/SessionWrapper'; +import { W2lTemplateUploadJob } from '../../jobs/W2lTemplateUploadJobs'; import { useHistory, Link } from "react-router-dom"; import { v1 as uuidv1 } from 'uuid'; +interface W2lTemplateUploadJobResponsePayload { + success: boolean, + job_token?: string, +} + interface Props { sessionWrapper: SessionWrapper, + enqueueW2lTemplateUploadJob: (jobToken: string) => void, + w2lTemplateUploadJobs: Array, } function UploadW2lVideoFc(props: Props) { @@ -59,9 +67,16 @@ function UploadW2lVideoFc(props: Props) { }) .then(res => res.json()) .then(res => { - if (res.success) { - history.push('/'); + let response : W2lTemplateUploadJobResponsePayload = res; + + if (!response.success || response.job_token === undefined) { + return; } + + console.log('enqueuing...') + + props.enqueueW2lTemplateUploadJob(response.job_token); + history.push('/'); }) .catch(e => { //this.props.onSpeakErrorCallback();