add dont close search
This commit is contained in:
		
							parent
							
								
									8c03574e6a
								
							
						
					
					
						commit
						21d120cb3d
					
				@ -113,10 +113,16 @@ struct TopBarView: View {
 | 
			
		||||
        }
 | 
			
		||||
        .background(Color(UIColor.systemBackground))
 | 
			
		||||
        .onChange(of: isChatsTab) { isChats in
 | 
			
		||||
            let hasSearchText = !chatSearchText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
 | 
			
		||||
            if !isChats {
 | 
			
		||||
                guard !hasSearchText else { return }
 | 
			
		||||
                withAnimation(.spring(response: 0.35, dampingFraction: 0.75)) {
 | 
			
		||||
                    chatSearchRevealProgress = 0
 | 
			
		||||
                }
 | 
			
		||||
            } else if hasSearchText {
 | 
			
		||||
                withAnimation(.spring(response: 0.35, dampingFraction: 0.75)) {
 | 
			
		||||
                    chatSearchRevealProgress = 1
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -46,6 +46,12 @@ struct ChatsTab: View {
 | 
			
		||||
            }
 | 
			
		||||
            .onChange(of: searchText) { newValue in
 | 
			
		||||
                handleSearchQueryChange(newValue)
 | 
			
		||||
                let trimmed = newValue.trimmingCharacters(in: .whitespacesAndNewlines)
 | 
			
		||||
                if !trimmed.isEmpty && searchRevealProgress < 1 {
 | 
			
		||||
                    withAnimation(.spring(response: 0.35, dampingFraction: 0.75)) {
 | 
			
		||||
                        searchRevealProgress = 1
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            .onDisappear {
 | 
			
		||||
                globalSearchTask?.cancel()
 | 
			
		||||
@ -156,12 +162,23 @@ struct ChatsTab: View {
 | 
			
		||||
 | 
			
		||||
                let delta = verticalTranslation / searchRevealDistance
 | 
			
		||||
                let newProgress = searchDragStartProgress + delta
 | 
			
		||||
                if isSearching && newProgress < 1 {
 | 
			
		||||
                    searchRevealProgress = 1
 | 
			
		||||
                    return
 | 
			
		||||
                }
 | 
			
		||||
                searchRevealProgress = max(0, min(1, newProgress))
 | 
			
		||||
            }
 | 
			
		||||
            .onEnded { _ in
 | 
			
		||||
                guard isSearchGestureActive else { return }
 | 
			
		||||
                isSearchGestureActive = false
 | 
			
		||||
 | 
			
		||||
                if isSearching {
 | 
			
		||||
                    withAnimation(.spring(response: 0.35, dampingFraction: 0.75)) {
 | 
			
		||||
                        searchRevealProgress = 1
 | 
			
		||||
                    }
 | 
			
		||||
                    return
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                let target: CGFloat = searchRevealProgress > 0.5 ? 1 : 0
 | 
			
		||||
                withAnimation(.spring(response: 0.35, dampingFraction: 0.75)) {
 | 
			
		||||
                    searchRevealProgress = target
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user