Skip to content

검색 자동완성 후속 — 제목 탭 오작동·클릭 미검색·중복 후보 #321

Description

@GulSam00

#320 (별칭 치환·초성 매칭) 을 고치면서 함께 확인된, 사용자가 바로 만나는 자동완성 결함 3건.

① 곡 제목 탭에서도 아티스트 자동완성이 뜬다 (버그)

apps/web/src/app/search/HomePage.tsx:324

{isFocusAuto && searchType !== 'number' && (
  <SearchAutocomplete ... />
)}

드롭다운 조건이 searchType !== 'number' 뿐이라 'title' 탭에서도 아티스트 후보가 뜬다.
여기서 "원오크"를 고르면 handleSearchONE OK ROCK 으로 치환하는데 searchType
'title' 그대로라 검색 결과 0건. #320에서 고친 치환 버그와 증상이 같다.

  • SearchType = 'all' | 'title' | 'artist' | 'number' (apps/web/src/types/song.ts:1)
  • 방향: 'all' | 'artist' 일 때만 드롭다운을 띄우거나, 후보 선택 시 searchType'artist' 로 함께 넘긴다

② 후보를 클릭해도 검색이 실행되지 않는다 (UX)

apps/web/src/app/search/HomePage.tsx:165

const handleAutocompleteClick = (term: string) => {
  setSearch(term);
  setIsFocusAuto(false);
};

입력창 값만 바뀌고 끝이라 사용자가 엔터나 검색 버튼을 한 번 더 눌러야 한다.
선택 즉시 검색이 나가야 한다. (setSearchhandleSearch 를 바로 호출하면
useDeferredValue 를 걷어낸 지금은 목록·입력값이 동기라 치환 판정이 어긋나지 않는다.)

③ 같은 아티스트가 여러 줄로 중복 노출된다 (UX)

apps/web/src/utils/getArtistAlias.ts:58

후보가 별칭 단위라 같은 공식 명칭이 여러 줄 잡힌다. 실제 사전으로 돌려본 결과:

"원오크" -> 원오크락, 원오크                     (둘 다 ONE OK ROCK)
"ㅇ"     -> 10칸 중 ONE OK ROCK 3줄(원오크락·원오크·원옥),
             Aimer 2줄(에메·에이머) → 실제로 보이는 아티스트는 6명뿐

value(공식 명칭) 기준으로 접으면 같은 10칸에 아티스트 10명이 들어간다.
접을 때 어떤 라벨을 남길지는 ④(정렬)와 함께 정하는 게 좋다 — 입력과 가장 가까운 라벨.

작업 체크리스트

  • 'title'/'number' 탭에서 아티스트 자동완성 비노출 (또는 선택 시 검색 타입 전환)
  • 후보 클릭 시 즉시 검색 실행
  • value 기준 중복 제거 후 10개 슬라이스
  • 리스트 key 를 index 대신 value + label 로 (SearchAutocomplete.tsx:28)

참고

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions