KaitoKudou / nogizaka-pilgrimage

0 stars 0 forks source link

検索結果をスクロールするとカクつく #72

Closed KaitoKudou closed 6 months ago

KaitoKudou commented 6 months ago

以下、該当コード

struct State: Equatable {
        var searchText = ""
        var pilgrimageRows = IdentifiedArrayOf<PilgrimageRowFeature.State>()
        var pilgrimageSearchResults: IdentifiedArrayOf<PilgrimageRowFeature.State> { // 検索結果
            if searchText.isEmpty {
                return pilgrimageRows
            } else {
                return pilgrimageRows.filter {
                    // TODO: スクロールするたびに絞り込んでいるため、動作が重いのでロジックを修正
                    print("検索かけたよ!!!!!!!")
                    let normalizedSearchText = searchText.normalizedString
                    let normalizedSearchCandidates = $0.pilgrimage.searchCandidateList.map { $0.normalizedString }

                    // 部分一致を確認する
                    let matchingCandidates = normalizedSearchCandidates.filter {
                        $0.range(of: normalizedSearchText, options: .caseInsensitive) != nil
                    }

                    return !matchingCandidates.isEmpty
                }
            }
        }
        @Presents var destination: Destination.State?
        var path = StackState<PilgrimageDetailFeature.State>()
    }