Skip to content

HomeFeature

Seungjin Lee edited this page Jan 8, 2026 · 2 revisions
  • HomeFeature
flowchart TD
    Start([Action 발생]) --> CheckAction{Action 타입}
    
    CheckAction -->|onAppear| InitFocus[topAppBar.setSearchFieldFocus true]
    InitFocus --> LoadRecent1[recentSearch.onAppear]
    LoadRecent1 --> LoadRecent2[recentLink.onAppear]
    LoadRecent2 --> End1([초기화 완료])
    
    CheckAction -->|backgroundTapped| RemoveFocus[topAppBar.setSearchFieldFocus false]
    RemoveFocus --> End2([포커스 해제 완료])
    
    CheckAction -->|topAppBar.delegate| CheckDelegate1{Delegate 타입}
    
    CheckDelegate1 -->|searchTriggered query| SetSubmitted1[isSearchSubmitted = true]
    SetSubmitted1 --> AddRecentSearch[recentSearch.add query]
    AddRecentSearch --> LoadResult[searchResult.loadSearchResult query]
    LoadResult --> End3([검색 실행 완료])
    
    CheckDelegate1 -->|searchQueryChanged query| SetNotSubmitted[isSearchSubmitted = false]
    SetNotSubmitted --> UpdateSuggestionText[searchSuggestion.searchText = query]
    UpdateSuggestionText --> LoadSuggestion[searchSuggestion.loadSuggestionItem query]
    LoadSuggestion --> Debounce[Debounce 0.5초<br/>cancelInFlight]
    Debounce --> End4([자동완성 로딩])
    
    CheckDelegate1 -->|backButtonTapped| PopNav[linkNavigator.pop]
    PopNav --> End5([뒤로가기 완료])
    
    CheckAction -->|recentSearch.delegate| CheckDelegate2{Delegate 타입}
    
    CheckDelegate2 -->|chipTapped term| SetSubmitted2[isSearchSubmitted = true]
    SetSubmitted2 --> RemoveFocus2[topAppBar.setSearchFieldFocus false]
    RemoveFocus2 --> SetSearchText[topAppBar.setSearchText term]
    SetSearchText --> LoadResult2[searchResult.loadSearchResult term]
    LoadResult2 --> End6([최근 검색어로 검색])
    
    CheckAction -->|topAppBar<br/>recentSearch<br/>recentLink<br/>searchResult<br/>searchSuggestion| NoOp[자식 Feature에서 처리<br/>return .none]
    NoOp --> End7([자식에게 위임])
Loading

Clone this wiki locally