From 1598f08e8193e46b700a1804584f734c39dbb38e Mon Sep 17 00:00:00 2001 From: pajowu Date: Fri, 17 Nov 2023 12:10:34 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A8=20Fix=20typescript=20issues=20afte?= =?UTF-8?q?r=20frontend=20dependency=20updates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api.ts | 7 ++++++- frontend/src/app.tsx | 2 +- frontend/src/editor/share.tsx | 5 +++-- frontend/src/editor/worker_status.tsx | 5 +++-- frontend/src/pages/new_document.tsx | 8 +++++--- frontend/src/pages/user_home.tsx | 5 +++-- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/frontend/src/api.ts b/frontend/src/api.ts index 01b27ce4..07423874 100644 --- a/frontend/src/api.ts +++ b/frontend/src/api.ts @@ -1,6 +1,6 @@ import { paths } from './openapi-schema'; import { ApiResponse, Fetcher, Middleware } from 'openapi-typescript-fetch'; -import useSwr, { SWRConfiguration } from 'swr'; +import useSwr, { SWRConfiguration, SWRResponse } from 'swr'; import { defaultConfig } from 'swr/_internal'; export function getShareToken(): string | null { @@ -70,3 +70,8 @@ export function makeRetrySwrHook( ...options, }); } + +export type RequestDataType SWRResponse> = Exclude< + ReturnType['data'], + undefined +>; diff --git a/frontend/src/app.tsx b/frontend/src/app.tsx index 8a22e6ee..1035b483 100644 --- a/frontend/src/app.tsx +++ b/frontend/src/app.tsx @@ -57,7 +57,7 @@ export function LoggedInRedirectRoute({ if (isLoading) { return ; } - if (!isLoggedIn && !configLoading) { + if (!isLoggedIn && !configLoading && config !== undefined) { if (config.logged_out_redirect_url) { window.location.replace(config.logged_out_redirect_url); } else { diff --git a/frontend/src/editor/share.tsx b/frontend/src/editor/share.tsx index 1ce1b3bc..25ac209d 100644 --- a/frontend/src/editor/share.tsx +++ b/frontend/src/editor/share.tsx @@ -9,8 +9,9 @@ import { HiOutlineClipboardCopy } from 'react-icons/hi'; import clsx from 'clsx'; import { DialogSeparator } from '../components/dialog'; import { Tooltip } from '../components/tooltip'; +import { RequestDataType } from '../api'; -type ShareToken = ReturnType['data'][0]; +type ShareToken = RequestDataType[0]; function pad(number: number) { if (number < 10) { @@ -235,7 +236,7 @@ export function ShareModal({
diff --git a/frontend/src/editor/worker_status.tsx b/frontend/src/editor/worker_status.tsx index 94dd6c65..c7033fdb 100644 --- a/frontend/src/editor/worker_status.tsx +++ b/frontend/src/editor/worker_status.tsx @@ -5,8 +5,9 @@ import { BsRobot } from 'react-icons/bs'; import clsx from 'clsx'; import React from 'react'; import { useMediaQuery } from '../utils/use_media_query'; +import { RequestDataType } from '../api'; -type Task = ReturnType['data'][0]; +type Task = RequestDataType[0]; function formatProgress(task: Task | null): string | undefined { if (!task) return; @@ -45,7 +46,7 @@ export function getWorkerStatusString(isWorking: boolean, isFailed: boolean): st export function WorkerStatus({ documentId }: { documentId: string }) { const { data } = useGetDocumentTasks({ document_id: documentId }, { refreshInterval: 1 }); - return ; + return ; } export function WorkerStatusWithData({ data }: { data: Task[] }) { diff --git a/frontend/src/pages/new_document.tsx b/frontend/src/pages/new_document.tsx index 2ad68cf2..66ec7818 100644 --- a/frontend/src/pages/new_document.tsx +++ b/frontend/src/pages/new_document.tsx @@ -13,6 +13,7 @@ import { useGetConfig } from '../api/config'; import { BlobReader, BlobWriter, ZipReader, Entry } from '@zip.js/zip.js'; import * as Automerge from '@automerge/automerge'; import { getDocumentWsUrl } from '../utils/auth'; +import { RequestDataType } from '../api'; type FieldValues = { name: string; @@ -23,7 +24,7 @@ type FieldValues = { numberOfSpeakers: number; }; -type ModelConfig = ReturnType['data']['models']; +type ModelConfig = RequestDataType['models']; export function getLanguages(models: ModelConfig, model: string | undefined): string[] | null { if (model === undefined) { @@ -53,6 +54,7 @@ export function NewDocumentPage() { const audioFileRef = useRef(null); const [loading, setLoading] = useState(false); const { data: config, isLoading } = useGetConfig({}); + const models = config !== undefined ? config.models : {}; const { register, handleSubmit, @@ -290,7 +292,7 @@ export function NewDocumentPage() { className="flex-grow mr-2" > - {getLanguages(config.models, model)?.map((lang) => ( + {getLanguages(models, model)?.map((lang) => ( diff --git a/frontend/src/pages/user_home.tsx b/frontend/src/pages/user_home.tsx index 0f0cd594..d9b45d6c 100644 --- a/frontend/src/pages/user_home.tsx +++ b/frontend/src/pages/user_home.tsx @@ -9,9 +9,10 @@ import { IoMdTrash } from 'react-icons/io'; import { IconButton } from '../components/button'; import { WorkerStatusWithData } from '../editor/worker_status'; import { ComponentProps, useEffect, useState } from 'react'; +import { RequestDataType } from '../api'; -type ApiDocument = ReturnType['data'][0]; -type Tasks = ReturnType['data'][0]['tasks']; +type ApiDocument = RequestDataType[0]; +type Tasks = RequestDataType[0]['tasks']; function getTaskProgress(tasks: Tasks) { if (tasks.length == 0) return 0;