mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 13:31:32 +08:00
refactor: use type-only imports for better code organization
This commit is contained in:
parent
cd2609068c
commit
ca96b6fa7b
@ -1,4 +1,4 @@
|
||||
import { SystemProviderId, Video } from '@renderer/types'
|
||||
import type { SystemProviderId, Video } from '@renderer/types'
|
||||
|
||||
// Hard-encoded for now. We may implement a function to filter video generation model from provider.models.
|
||||
export const videoModelsMap = {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import OpenAI from '@cherrystudio/openai'
|
||||
import type OpenAI from '@cherrystudio/openai'
|
||||
import { useCallback } from 'react'
|
||||
|
||||
import { useProviderVideos } from './useProviderVideos'
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { retrieveVideo } from '@renderer/services/ApiService'
|
||||
import useSWR, { SWRConfiguration, useSWRConfig } from 'swr'
|
||||
import type { SWRConfiguration } from 'swr'
|
||||
import useSWR, { useSWRConfig } from 'swr'
|
||||
|
||||
import { useProvider } from '../useProvider'
|
||||
import { useVideo } from './useVideo'
|
||||
|
||||
@ -3,7 +3,7 @@ import { retrieveVideo } from '@renderer/services/ApiService'
|
||||
import { getProviderById } from '@renderer/services/ProviderService'
|
||||
import { useAppDispatch, useAppSelector } from '@renderer/store'
|
||||
import { addVideoAction, setVideoAction, setVideosAction, updateVideoAction } from '@renderer/store/video'
|
||||
import { Video } from '@renderer/types/video'
|
||||
import type { Video } from '@renderer/types/video'
|
||||
import { getErrorMessage } from '@renderer/utils'
|
||||
import { useCallback, useEffect, useRef } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
@ -2,7 +2,7 @@ import { loggerService } from '@logger'
|
||||
import { retrieveVideoContent } from '@renderer/services/ApiService'
|
||||
import ImageStorage from '@renderer/services/ImageStorage'
|
||||
import { getProviderById } from '@renderer/services/ProviderService'
|
||||
import { Video } from '@renderer/types'
|
||||
import type { Video } from '@renderer/types'
|
||||
import { useCallback } from 'react'
|
||||
|
||||
const logger = loggerService.withContext('useRetrieveThumbnail')
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Video } from '@renderer/types'
|
||||
import type { Video } from '@renderer/types'
|
||||
import { PlusIcon } from 'lucide-react'
|
||||
|
||||
import { VideoListItem } from './VideoListItem'
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { cn, Progress, Spinner } from '@heroui/react'
|
||||
import { DeleteIcon } from '@renderer/components/Icons'
|
||||
import { Video } from '@renderer/types/video'
|
||||
import type { Video } from '@renderer/types/video'
|
||||
import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from '@renderer/ui/context-menu'
|
||||
import { CheckCircleIcon, CircleXIcon, ClockIcon, DownloadIcon, ImageDownIcon } from 'lucide-react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
@ -8,11 +8,11 @@ import { useProviderVideos } from '@renderer/hooks/video/useProviderVideos'
|
||||
import { useVideoThumbnail } from '@renderer/hooks/video/useVideoThumbnail'
|
||||
import { deleteVideo } from '@renderer/services/ApiService'
|
||||
import { SystemProviderIds } from '@renderer/types'
|
||||
import { CreateVideoParams } from '@renderer/types/video'
|
||||
import type { CreateVideoParams } from '@renderer/types/video'
|
||||
import { getErrorMessage } from '@renderer/utils'
|
||||
import { deepUpdate } from '@renderer/utils/deepUpdate'
|
||||
import { isVideoModel } from '@renderer/utils/model/video'
|
||||
import { DeepPartial } from 'ai'
|
||||
import type { DeepPartial } from 'ai'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
|
||||
@ -5,11 +5,12 @@ import { useAddOpenAIVideo } from '@renderer/hooks/video/useAddOpenAIVideo'
|
||||
import { useProviderVideos } from '@renderer/hooks/video/useProviderVideos'
|
||||
import { createVideo, retrieveVideoContent } from '@renderer/services/ApiService'
|
||||
import FileManager from '@renderer/services/FileManager'
|
||||
import { FileTypes, Provider, VideoFileMetadata } from '@renderer/types'
|
||||
import { CreateVideoParams, Video } from '@renderer/types/video'
|
||||
import type { Provider, VideoFileMetadata } from '@renderer/types'
|
||||
import { FileTypes } from '@renderer/types'
|
||||
import type { CreateVideoParams, Video } from '@renderer/types/video'
|
||||
import { getErrorMessage } from '@renderer/utils'
|
||||
import { MB } from '@shared/config/constant'
|
||||
import { DeepPartial } from 'ai'
|
||||
import type { DeepPartial } from 'ai'
|
||||
import dayjs from 'dayjs'
|
||||
import { isEmpty } from 'lodash'
|
||||
import { ArrowUp, CircleXIcon, ImageIcon } from 'lucide-react'
|
||||
|
||||
@ -12,7 +12,7 @@ import {
|
||||
} from '@heroui/react'
|
||||
import { usePending } from '@renderer/hooks/usePending'
|
||||
import FileManager from '@renderer/services/FileManager'
|
||||
import { Video, VideoDownloaded, VideoFailed } from '@renderer/types/video'
|
||||
import type { Video, VideoDownloaded, VideoFailed } from '@renderer/types/video'
|
||||
import dayjs from 'dayjs'
|
||||
import { CheckCircleIcon, CircleXIcon, Clock9Icon } from 'lucide-react'
|
||||
import { useEffect, useMemo, useRef, useState } from 'react'
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Select, SelectItem } from '@heroui/react'
|
||||
import { videoModelsMap } from '@renderer/config/models/video'
|
||||
import { Model } from '@renderer/types'
|
||||
import type { Model } from '@renderer/types'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import { SettingItem } from './shared'
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { VideoSeconds, VideoSize } from '@cherrystudio/openai/resources'
|
||||
import type { VideoSeconds, VideoSize } from '@cherrystudio/openai/resources'
|
||||
import { Select, SelectItem } from '@heroui/react'
|
||||
import { OpenAICreateVideoParams } from '@renderer/types/video'
|
||||
import { DeepPartial } from 'ai'
|
||||
import type { OpenAICreateVideoParams } from '@renderer/types/video'
|
||||
import type { DeepPartial } from 'ai'
|
||||
import { useCallback } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { Select, SelectItem } from '@heroui/react'
|
||||
import { ProviderAvatar } from '@renderer/components/ProviderAvatar'
|
||||
import { useProviders } from '@renderer/hooks/useProvider'
|
||||
import { Provider, SystemProviderId } from '@renderer/types'
|
||||
import type { Provider, SystemProviderId } from '@renderer/types'
|
||||
import { getFancyProviderName } from '@renderer/utils'
|
||||
import { Dispatch, SetStateAction } from 'react'
|
||||
import type { Dispatch, SetStateAction } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import { SettingItem } from './shared'
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { Divider } from '@heroui/react'
|
||||
import { PropsWithChildren } from 'react'
|
||||
import type { PropsWithChildren } from 'react'
|
||||
|
||||
export const SettingsGroup = ({ children }: PropsWithChildren) => {
|
||||
return <div className="mb-4 flex flex-col rounded-2xl border border-foreground-200 p-3">{children}</div>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { loggerService } from '@logger'
|
||||
import { createSlice, PayloadAction } from '@reduxjs/toolkit'
|
||||
import { Video } from '@renderer/types/video'
|
||||
import type { PayloadAction } from '@reduxjs/toolkit'
|
||||
import { createSlice } from '@reduxjs/toolkit'
|
||||
import type { Video } from '@renderer/types/video'
|
||||
|
||||
const logger = loggerService.withContext('Store:video')
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import OpenAI from '@cherrystudio/openai'
|
||||
import type OpenAI from '@cherrystudio/openai'
|
||||
|
||||
import { Provider } from './provider'
|
||||
import type { Provider } from './provider'
|
||||
|
||||
// Only OpenAI (Responses) is supported for now.
|
||||
export type VideoEndpointType = 'openai'
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { DeepPartial } from 'ai'
|
||||
import type { DeepPartial } from 'ai'
|
||||
import { cloneDeep } from 'lodash'
|
||||
|
||||
/**
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { VideoModel } from '@cherrystudio/openai/resources'
|
||||
import type { VideoModel } from '@cherrystudio/openai/resources'
|
||||
import { videoModelsMap } from '@renderer/config/models/video'
|
||||
|
||||
// Only for openai, use hard-encoded values
|
||||
|
||||
Loading…
Reference in New Issue
Block a user