Skip to content

Commit

Permalink
ui: Add setting that allows users to optionally disable profile actio…
Browse files Browse the repository at this point in the history
…n sheets.

Tested on iOS 17.0.1 on an iPhone 15 Pro simulator.

Closes: #1641
Changelog-Added: Add setting that allows users to optionally disable the new profile action sheet feature
Signed-off-by: Daniel D’Aquino <[email protected]>
Reviewed-by: William Casarin <[email protected]>
Signed-off-by: William Casarin <[email protected]>
  • Loading branch information
danieldaquino authored and jb55 committed Oct 24, 2023
1 parent 9969e70 commit bbccc27
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 2 deletions.
3 changes: 3 additions & 0 deletions damus/Models/UserSettingsStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ class UserSettingsStore: ObservableObject {

@Setting(key: "hide_nsfw_tagged_content", default_value: false)
var hide_nsfw_tagged_content: Bool

@Setting(key: "show_profile_action_sheet_on_pfp_click", default_value: true)
var show_profile_action_sheet_on_pfp_click: Bool

@Setting(key: "zap_vibration", default_value: true)
var zap_vibration: Bool
Expand Down
2 changes: 1 addition & 1 deletion damus/Views/Events/EventProfile.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ struct EventProfile: View {
HStack(alignment: .center, spacing: 10) {
ProfilePicView(pubkey: pubkey, size: pfp_size, highlight: .none, profiles: damus_state.profiles, disable_animation: disable_animation, show_zappability: true)
.onTapGesture {
notify(.present_sheet(Sheets.profile_action(pubkey)))
show_profile_action_sheet_if_enabled(damus_state: damus_state, pubkey: pubkey)
}

VStack(alignment: .leading, spacing: 0) {
Expand Down
2 changes: 1 addition & 1 deletion damus/Views/Profile/MaybeAnonPfpView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct MaybeAnonPfpView: View {
} else {
ProfilePicView(pubkey: pubkey, size: size, highlight: .none, profiles: state.profiles, disable_animation: state.settings.disable_animation, show_zappability: true)
.onTapGesture {
notify(.present_sheet(Sheets.profile_action(pubkey)))
show_profile_action_sheet_if_enabled(damus_state: state, pubkey: pubkey)
}
}
}
Expand Down
9 changes: 9 additions & 0 deletions damus/Views/ProfileActionSheetView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,15 @@ struct InnerHeightPreferenceKey: PreferenceKey {
}
}

func show_profile_action_sheet_if_enabled(damus_state: DamusState, pubkey: Pubkey) {
if damus_state.settings.show_profile_action_sheet_on_pfp_click {
notify(.present_sheet(Sheets.profile_action(pubkey)))
}
else {
damus_state.nav.push(route: Route.ProfileByKey(pubkey: pubkey))
}
}

#Preview {
ProfileActionSheetView(damus_state: test_damus_state, pubkey: test_pubkey)
}
9 changes: 9 additions & 0 deletions damus/Views/Settings/AppearanceSettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,15 @@ struct AppearanceSettingsView: View {
Toggle(NSLocalizedString("Hide notes with #nsfw tags", comment: "Setting to hide notes with the #nsfw (not safe for work) tags"), isOn: $settings.hide_nsfw_tagged_content)
.toggleStyle(.switch)
}

// MARK: - Profiles
Section(
header: Text(NSLocalizedString("Profiles", comment: "Section title for profile view configuration.")),
footer: Text(NSLocalizedString("Profile action sheets allow you to follow, zap, or DM profiles more quickly without having to view their full profile", comment: "Section footer clarifying what the profile action sheet feature does"))
) {
Toggle(NSLocalizedString("Show profile action sheets", comment: "Setting to show profile action sheets when clicking on a user's profile picture"), isOn: $settings.show_profile_action_sheet_on_pfp_click)
.toggleStyle(.switch)
}


}
Expand Down

0 comments on commit bbccc27

Please sign in to comment.