Browse Source

feat: Add left handed option for post button

Added a left handed toggle in the app configuration section to turn on
left handed mode which moves the post button to the left side. Nearly
done. May just need to fix an initialization bug.

Closes: #282
Changelog-Added: Left hand option for post button
translations_damus-localizations-en-us-xcloc-localized-contents-en-us-xliff--master_es_419
Jonathan Milligan 2 years ago
committed by William Casarin
parent
commit
4d8088d0d0
  1. 2
      damus/ContentView.swift
  2. 15
      damus/Models/UserSettingsStore.swift
  3. 5
      damus/Views/ConfigView.swift
  4. 10
      damus/Views/PostButton.swift

2
damus/ContentView.swift

@ -121,7 +121,7 @@ struct ContentView: View {
TimelineView(events: $home.events, loading: $home.loading, damus: damus, show_friend_icon: false, filter: filter)
}
if privkey != nil {
PostButtonContainer {
PostButtonContainer(userSettings: user_settings) {
self.active_sheet = .post
}
}

15
damus/Models/UserSettingsStore.swift

@ -20,13 +20,22 @@ class UserSettingsStore: ObservableObject {
}
}
@Published var left_handed: Bool {
didSet {
UserDefaults.standard.set(left_handed, forKey: "left_handed")
}
}
init() {
if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"),
let default_wallet = Wallet(rawValue: defaultWalletName) {
let default_wallet = Wallet(rawValue: defaultWalletName)
{
self.default_wallet = default_wallet
} else {
self.default_wallet = .system_default_wallet
default_wallet = .system_default_wallet
}
self.show_wallet_selector = UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true
show_wallet_selector = UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true
left_handed = UserDefaults.standard.object(forKey: "left_handed") as? Bool ?? false
}
}

5
damus/Views/ConfigView.swift

@ -116,6 +116,11 @@ struct ConfigView: View {
}
}
Section(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen")) {
Toggle(NSLocalizedString("Left Handed", comment: "Moves the post button to the left side of the screen"), isOn: $user_settings.left_handed)
.toggleStyle(.switch)
}
Section(NSLocalizedString("Clear Cache", comment: "Section title for clearing cached data.")) {
Button(NSLocalizedString("Clear", comment: "Button for clearing cached data.")) {
KingfisherManager.shared.cache.clearMemoryCache()

10
damus/Views/PostButton.swift

@ -34,14 +34,20 @@ func PostButton(action: @escaping () -> ()) -> some View {
.keyboardShortcut("n", modifiers: [.command, .shift])
}
func PostButtonContainer(action: @escaping () -> ()) -> some View {
func PostButtonContainer(userSettings: UserSettingsStore, action: @escaping () -> Void) -> some View {
let is_left_handed = userSettings.left_handed.self
return VStack {
Spacer()
HStack {
if is_left_handed != true {
Spacer()
PostButton(action: action)
} else {
PostButton(action: action)
Spacer()
}
}
}
}

Loading…
Cancel
Save