From b01243b10170646f5ba788f47c442b496e337158 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Sun, 1 Sep 2024 07:20:41 -0700 Subject: [PATCH] Revert "ux: Mute selected text" I had to revert this for now because it conflicts too heavily with the highlighter feature which we definitely want in master. Let's rework this using Daniel's refactor This reverts commit d66315594137b5478909d3e8c751348d7405860f. --- damus/Components/SelectableText.swift | 28 +++--------------------- damus/Views/Muting/AddMuteItemView.swift | 4 ++-- damus/Views/Muting/MutelistView.swift | 12 +++++----- 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/damus/Components/SelectableText.swift b/damus/Components/SelectableText.swift index bc205c5b..db62aa96 100644 --- a/damus/Components/SelectableText.swift +++ b/damus/Components/SelectableText.swift @@ -14,7 +14,6 @@ struct SelectableText: View { let attributedString: AttributedString let textAlignment: NSTextAlignment @State private var showHighlightPost = false - @State private var showMutePost = false @State private var selectedText = "" @State private var selectedTextHeight: CGFloat = .zero @State private var selectedTextWidth: CGFloat = .zero @@ -39,7 +38,6 @@ struct SelectableText: View { textAlignment: self.textAlignment, enableHighlighting: self.enableHighlighting(), showHighlightPost: $showHighlightPost, - showMutePost: $showMutePost, selectedText: $selectedText, height: $selectedTextHeight ) @@ -62,11 +60,6 @@ struct SelectableText: View { .presentationDetents([.height(selectedTextHeight + 150), .medium, .large]) } } - .sheet(isPresented: $showMutePost) { - AddMuteItemView(state: damus_state, new_text: $selectedText) - .presentationDragIndicator(.visible) - .presentationDetents([.height(300), .medium, .large]) - } .frame(height: selectedTextHeight) } @@ -77,12 +70,10 @@ struct SelectableText: View { fileprivate class TextView: UITextView { @Binding var showHighlightPost: Bool - @Binding var showMutePost: Bool @Binding var selectedText: String - init(frame: CGRect, textContainer: NSTextContainer?, showHighlightPost: Binding, showMutePost: Binding, selectedText: Binding) { + init(frame: CGRect, textContainer: NSTextContainer?, showHighlightPost: Binding, selectedText: Binding) { self._showHighlightPost = showHighlightPost - self._showMutePost = showMutePost self._selectedText = selectedText super.init(frame: frame, textContainer: textContainer) } @@ -95,11 +86,6 @@ fileprivate class TextView: UITextView { if action == #selector(highlightText(_:)) { return true } - - if action == #selector(muteText(_:)) { - return true - } - return super.canPerformAction(action, withSender: sender) } @@ -108,12 +94,6 @@ fileprivate class TextView: UITextView { selectedText = self.text(in: selectedRange) ?? "" showHighlightPost.toggle() } - - @objc public func muteText(_ sender: Any?) { - guard let selectedRange = self.selectedTextRange else { return } - selectedText = self.text(in: selectedRange) ?? "" - showMutePost.toggle() - } } @@ -126,12 +106,11 @@ fileprivate class TextView: UITextView { let textAlignment: NSTextAlignment let enableHighlighting: Bool @Binding var showHighlightPost: Bool - @Binding var showMutePost: Bool @Binding var selectedText: String @Binding var height: CGFloat func makeUIView(context: UIViewRepresentableContext) -> TextView { - let view = TextView(frame: .zero, textContainer: nil, showHighlightPost: $showHighlightPost, showMutePost: $showMutePost, selectedText: $selectedText) + let view = TextView(frame: .zero, textContainer: nil, showHighlightPost: $showHighlightPost, selectedText: $selectedText) view.isEditable = false view.dataDetectorTypes = .all view.isSelectable = true @@ -144,8 +123,7 @@ fileprivate class TextView: UITextView { let menuController = UIMenuController.shared let highlightItem = UIMenuItem(title: "Highlight", action: #selector(view.highlightText(_:))) - let muteItem = UIMenuItem(title: "Mute", action: #selector(view.muteText(_:))) - menuController.menuItems = self.enableHighlighting ? [highlightItem, muteItem] : [] + menuController.menuItems = self.enableHighlighting ? [highlightItem] : [] return view } diff --git a/damus/Views/Muting/AddMuteItemView.swift b/damus/Views/Muting/AddMuteItemView.swift index 63a93d7e..cbc4f974 100644 --- a/damus/Views/Muting/AddMuteItemView.swift +++ b/damus/Views/Muting/AddMuteItemView.swift @@ -8,7 +8,7 @@ import SwiftUI struct AddMuteItemView: View { let state: DamusState - @Binding var new_text: String + @State var new_text: String = "" @State var expiration: DamusDuration = .indefinite @Environment(\.dismiss) var dismiss @@ -108,6 +108,6 @@ struct AddMuteItemView: View { struct AddMuteItemView_Previews: PreviewProvider { static var previews: some View { - AddMuteItemView(state: test_damus_state, new_text: .constant("")) + AddMuteItemView(state: test_damus_state) } } diff --git a/damus/Views/Muting/MutelistView.swift b/damus/Views/Muting/MutelistView.swift index 1a9548fa..fd4973a4 100644 --- a/damus/Views/Muting/MutelistView.swift +++ b/damus/Views/Muting/MutelistView.swift @@ -15,8 +15,6 @@ struct MutelistView: View { @State var hashtags: [MuteItem] = [] @State var threads: [MuteItem] = [] @State var words: [MuteItem] = [] - - @State var new_text: String = "" func RemoveAction(item: MuteItem) -> some View { Button { @@ -122,9 +120,13 @@ struct MutelistView: View { } } .sheet(isPresented: $show_add_muteitem, onDismiss: { self.show_add_muteitem = false }) { - AddMuteItemView(state: damus_state, new_text: $new_text) - .presentationDetents([.height(300)]) - .presentationDragIndicator(.visible) + if #available(iOS 16.0, *) { + AddMuteItemView(state: damus_state) + .presentationDetents([.height(300)]) + .presentationDragIndicator(.visible) + } else { + AddMuteItemView(state: damus_state) + } } } }