-
Notifications
You must be signed in to change notification settings - Fork 1
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([자식에게 위임])