Enable account switcher on macOS

This commit is contained in:
Thomas Ricouard 2023-01-16 21:27:54 +01:00
parent 9dc7fa00f9
commit 451cc7a4ac
2 changed files with 24 additions and 13 deletions

View file

@ -16,15 +16,15 @@ struct SideBarView<Content: View>: View {
var body: some View { var body: some View {
HStack(spacing: 0) { HStack(spacing: 0) {
VStack(alignment: .center) { VStack(alignment: .center) {
if let account = currentAccount.account { Button {
Button { selectedTab = .profile
selectedTab = .profile } label: {
} label: { AppAccountsSelectorView(routeurPath: RouterPath(),
AvatarView(url: account.avatar, size: .status) accountCreationEnabled: false,
} avatarSize: .status)
.frame(width: 70, height: 50)
.background(selectedTab == .profile ? theme.secondaryBackgroundColor : .clear)
} }
.frame(width: 70, height: 60)
.background(selectedTab == .profile ? theme.secondaryBackgroundColor : .clear)
ForEach(tabs) { tab in ForEach(tabs) { tab in
Button { Button {
if tab == selectedTab { if tab == selectedTab {

View file

@ -22,10 +22,19 @@ public struct AppAccountsSelectorView: View {
} }
public var body: some View { public var body: some View {
Menu { Group {
menuView if ProcessInfo.processInfo.isiOSAppOnMac {
} label: { labelView
labelView .contextMenu {
menuView
}
} else {
Menu {
menuView
} label: {
labelView
}
}
} }
.onAppear { .onAppear {
refreshAccounts() refreshAccounts()
@ -82,7 +91,9 @@ public struct AppAccountsSelectorView: View {
let viewModel: AppAccountViewModel = .init(appAccount: account) let viewModel: AppAccountViewModel = .init(appAccount: account)
Task { Task {
await viewModel.fetchAccount() await viewModel.fetchAccount()
accountsViewModel.append(viewModel) if !accountsViewModel.contains(where: { $0.acct == viewModel.acct }) {
accountsViewModel.append(viewModel)
}
} }
} }
} }