Closed dhkim511 closed 4 days ago
이 풀 리퀘스트는 VC(음성 변환) 페이지 기능에 대한 중요한 업데이트를 구현하며, 파일 업로드 처리, 음성 선택 UI, 전반적인 사용자 경험 개선에 중점을 두고 있습니다. 변경 사항에는 사전 설정 및 사용자 정의 음성 옵션이 있는 새로운 음성 선택 인터페이스, 향상된 파일 업로드 기능, 개선된 상태 관리가 포함됩니다.
classDiagram
class useFileUpload {
+useFileUpload(props: UseFileUploadProps)
+handleFiles(files: FileList | null)
+isLoading: boolean
}
class UseFileUploadProps {
+maxSizeInMB: number
+allowedTypes: AllowedFileType[]
+onSuccess: function
+onError: function
}
class FileInfo {
+id: string
+name: string
+size: number
+isEditing: boolean
}
useFileUpload --> UseFileUploadProps
useFileUpload --> FileInfo
classDiagram
class useFileUploadBox {
+useFileUploadBox(props: UseFileUploadBoxProps)
+state: string
+progress: number
+file: FileInfo
+uploadingFile: File
+isLoading: boolean
+fileInputRef: RefObject
+handleFileSelect(e: ChangeEvent)
+formatFileSize(size: number): string
+resetUpload()
}
class UseFileUploadBoxProps {
+maxSizeInMB: number
+allowedTypes: AllowedFileType[]
+onSuccess: function
+mode: string
+selectedFile: FileInfo
}
useFileUploadBox --> UseFileUploadBoxProps
useFileUploadBox --> FileInfo
classDiagram
class VCPage {
+handleAudioUpload(files: FileList | null)
+handleTextUpload(files: FileList | null)
+handleFileUpload(files: FileList | null)
+handleVoiceConversion()
+handleSelectionChange(id: string)
+handleAdd()
+handlePlay(id: string)
+handleSelectAll()
+items: VCItem[]
+selectedTargetVoice: string
}
class VCItem {
+id: string
+text: string
+isSelected: boolean
+fileName: string
+status: string
+originalAudioUrl: string
+convertedAudioUrl: string
}
VCPage --> VCItem
변경 사항 | 세부 사항 | 파일 |
---|---|---|
향상된 파일 업로드 훅으로 개선된 검증 및 진행 추적 |
|
src/hooks/useFileUpload.ts |
사전 설정 및 사용자 정의 음성 관리를 위한 새로운 음성 선택 인터페이스 구현 |
|
src/components/custom/feature/VoiceSelection.tsx src/components/custom/cards/VoiceCard.tsx |
새로운 파일 관리 및 음성 선택 기능으로 VC 페이지 업데이트 |
|
src/pages/VCPage.tsx src/components/section/sidebar/VCSidebar.tsx |
새로운 UI 컴포넌트 추가 및 기존 컴포넌트 업데이트 |
|
src/components/ui/card.tsx src/components/ui/radio-group.tsx src/components/ui/tabs.tsx |
Visit the preview URL for this PR (updated for commit 241f59e):
https://aipark-four-t--222-01jt9q2u.web.app
(expires Mon, 02 Dec 2024 02:17:24 GMT)
🔥 via Firebase Hosting GitHub Action 🌎
Sign: 0a4b3ef6ecc2c695a6a0d6ade46651e032870a9f
vc페이지 업데이트
Sourcery에 의한 요약
VC 페이지를 새로운 파일 업로드 기능으로 업데이트하고, 진행 추적이 가능한 파일 업로드를 위한 새로운 훅과 음성 선택을 관리하는 컴포넌트를 포함합니다. 사이드바를 개선하여 사용자 정의 음성 업로드 및 관리를 지원하고, 기존 컴포넌트를 성능과 사용성을 향상시키기 위해 리팩토링합니다.
새로운 기능:
useFileUploadBox
를 도입합니다.VoiceSelection
컴포넌트를 추가합니다.VoiceCard
컴포넌트를 구현합니다.개선 사항:
useFileUpload
를 리팩토링하여 성능을 향상시키기 위해useCallback
을 사용하고 선택적 오류 처리를 지원합니다.FileUploadBox
를 업데이트하여 새로운useFileUploadBox
훅을 사용하고 로컬 스토리지를 통해 파일 상태를 관리합니다.VCSidebar
를 개선하여 사용자 정의 음성 업로드 및 관리를 지원합니다.Original summary in English
## Summary by Sourcery Update the VC page with new file upload functionalities, including a new hook for file uploads with progress tracking, and components for managing voice selections. Enhance the sidebar to support custom voice uploads and management, and refactor existing components for improved performance and usability. New Features: - Introduce a new hook `useFileUploadBox` for handling file uploads with progress tracking and validation. - Add a `VoiceSelection` component for selecting and managing preset and custom voice options. - Implement a `VoiceCard` component for displaying voice options with edit and delete functionalities. Enhancements: - Refactor `useFileUpload` to use `useCallback` for better performance and add support for optional error handling. - Update `FileUploadBox` to use the new `useFileUploadBox` hook and manage file state with local storage. - Enhance `VCSidebar` to support custom voice uploads and management.