Closed nakyeonko3 closed 1 week ago
이 PR은 TTS 페이지의 무한 로딩 문제를 해결하고 TTS 사이드바 기능을 수정합니다. 구현은 React hooks (useCallback, useMemo)를 사용하여 컴포넌트 렌더링을 최적화하고 TTS 설정의 초기화 기능을 개선하는 데 중점을 둡니다. 변경 사항에는 Select 컴포넌트의 value props를 더 잘 처리하기 위한 수정도 포함됩니다.
sequenceDiagram
participant User
participant TTSSidebar
participant ApplySelectionButton
participant ResetChangesButton
User->>TTSSidebar: 설정 변경
TTSSidebar->>TTSSidebar: checkIfModified()
TTSSidebar->>TTSSidebar: checkCanReset()
User->>ResetChangesButton: 초기화 클릭
ResetChangesButton->>TTSSidebar: handleReset()
TTSSidebar->>TTSSidebar: 설정을 초기값으로 초기화
TTSSidebar->>ApplySelectionButton: 상태 업데이트
ApplySelectionButton->>User: 수정되지 않은 경우 비활성 상태 반영
classDiagram
class TTSSidebar {
- selectedLanguage: string
- selectedVoice: string
- selectedStyle: string
- isAllConfigUpdated: boolean
- enableReset: boolean
- initialSettings: object
+ checkIfModified(): void
+ checkCanReset(): void
+ handleSpeedChange(value: number): void
+ handleVolumeChange(value: number): void
+ handlePitchChange(value: number): void
+ handleLanguageChange(value: string): void
+ handleVoiceChange(value: string): void
+ handleStyleChange(value: string): void
+ handleReset(): void
}
note for TTSSidebar "초기화 및 수정 확인을 위한 상태 관리 추가"
classDiagram
class Select {
+ value: string
+ placeholder: string
}
class SelectValue {
+ placeholder: string
+ value: string
}
Select --> SelectValue
note for Select "value prop 처리 추가"
note for SelectValue "placeholder 및 value props 처리를 위해 확장됨"
변경 사항 | 세부 사항 | 파일 |
---|---|---|
상태 추적을 통한 TTS 설정 초기화 기능 구현 |
|
src/components/section/sidebar/TTSSidebar.tsx |
버튼 컴포넌트를 isActive 대신 className prop을 사용하도록 리팩토링 |
|
src/components/custom/buttons/IconButton.tsx |
개선된 value 처리로 Select 컴포넌트 강화 |
|
src/components/ui/select.tsx |
TTSPage 컴포넌트 성능 최적화 |
|
src/pages/TTSPage.tsx |
Visit the preview URL for this PR (updated for commit b59e003):
https://aipark-four-t--189-extfufr6.web.app
(expires Thu, 28 Nov 2024 17:55:53 GMT)
🔥 via Firebase Hosting GitHub Action 🌎
Sign: 0a4b3ef6ecc2c695a6a0d6ade46651e032870a9f
'변경 초기화' 버튼을 클릭하면 변경된 내용이 초기화되도록함.
'변경 초기화'는 특정 설정 하나라도 건들면 초기화 버튼을 누를 수 있도록 수정함.
select.tsx 컴포넌트에 value props 추가
TTSSidebar.tsx, TTSpage.tsx 컴포넌트가 무한랜더링 되서 useCallback, useMemo 적용