Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

♻️ refactor: RSS 피드 등록 시 플랫폼별 URL 자동 구성 기능 구현 #306

Merged
merged 9 commits into from
Dec 29, 2024

Conversation

junyeokk
Copy link
Collaborator

@junyeokk junyeokk commented Dec 26, 2024

🔨 테스크

Issue

RSS URL 입력 방식 개선

image

  • 기존 단일 입력 방식에서 사용자 경험을 개선하기 위해 플랫폼 선택 방식으로 변경
  • 사용자가 전체 URL을 직접 입력하는 대신 플랫폼 선택 후 아이디만 입력하도록 개선
  • 잘못된 URL 형식 입력 가능성을 원천적으로 차단

컴포넌트 구조 개선

  • 관심사 분리를 위해 플랫폼 선택(PlatformSelector)과 URL 입력(RssUrlInput) 컴포넌트 분리
  • 폼 로직을 커스텀 훅(useRssRegistrationForm)으로 분리해 재사용성과 유지보수성 향상
  • (before) 기존 코드는 여러 상태와 핸들러를 개별적으로 가져와 사용해 약간 복잡했음
     const {
       rssUrl,
       bloggerName,
       userName,
       email,
       setRssUrl,
       setBloggerName,
       setUserName,
       setEmail,
       setRssUrlValid,
       setBloggerNameValid,
       setUserNameValid,
       setEmailValid,
       resetInputs,
       handleInputChange,
       isFormValid,
     } = useRegisterModalStore();
    
  • (after) 커스텀 훅으로 분리해 platform, values, handlers, formState로 그룹화하고 관련 로직을 캡슐화
      const { platform, values, handlers, formState } = useRssRegistrationForm();
    
  • 컴포넌트는 필요한 값과 핸들러만 가져와 사용하므로 코드가 더 간결해짐
  • 폼 로직 재사용이 필요한 경우 훅만 가져와 사용할 수 있음
  • 상수와 타입을 별도 파일로 분리

📋 작업 내용

  • RSS 플랫폼 상수 및 타입 정의 (constants/rss.ts)
  • 플랫폼 선택 탭 UI 구현 (PlatformSelector)
  • 플랫폼별 URL 입력 필드 구현 (RssUrlInput)
  • FormInput 컴포넌트 스타일 개선 (밑줄 애니메이션 추가)
  • 폼 로직을 커스텀 훅으로 분리 (useRssRegistrationForm)
  • RSS 등록 모달 컴포넌트 구조 개선

📷 스크린 샷

2024-12-27.2.06.50.mov

- input 필드에 밑줄 애니메이션 추가
- 전체적인 테두리에서 밑줄로 변경
- 커스텀 훅으로 form 로직 분리
- PlatformSelector의 RssUrlInput 컴포넌트로 URL 입력 방식 개선
- 예시 정보 UI 제거
- 핸들러 로직 단순화 및 개선
- Tistory, Velog, Mediumㅍ 플랫폼 선택을 위한 Tabs 구현
- PLATFORMS 상수로 플랫폼 사용
- 플랫폼 변경 이벤트 핸들링 기능 추가
- 플랫폼별 URL 형식에 맞는 입력 필드 구현
- prefix, suffix 자동 표시 기능 구현
- 입력 필드에 밑줄 애니메이션 효과 추가
- form 상태 관리 로직 커스텀 훅으로 분리
- 플랫폼 선택 및 URL 구성 로지 구현
- 입력값 검증 및 핸들러 로직 통합
- values, handlers, formState 객체로 응집도 향상
@junyeokk junyeokk added the 🔨 Refactor 리팩토링 (구조 변경) label Dec 26, 2024
@junyeokk junyeokk requested a review from jungmyunggi December 26, 2024 17:10
@junyeokk junyeokk self-assigned this Dec 26, 2024
@junyeokk junyeokk linked an issue Dec 26, 2024 that may be closed by this pull request
18 tasks
Copy link
Collaborator

@jungmyunggi jungmyunggi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@junyeokk junyeokk merged commit 0f34a04 into main Dec 29, 2024
1 check passed
@junyeokk junyeokk deleted the refactor/rss-form-auto-fill branch December 29, 2024 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨 Refactor 리팩토링 (구조 변경)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FE] RSS 피드 등록 시 플랫폼별 URL 자동 구성 기능 구현
2 participants