Skip to content

Commit

Permalink
fix: calculate friends once
Browse files Browse the repository at this point in the history
  • Loading branch information
Zomatree committed Jan 26, 2025
1 parent 470e214 commit aac6d05
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions Revolt/Pages/Home/CreateGroup.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,7 @@ struct CreateGroup: View {
@State var selectedUsers: Set<User> = Set()
@State var error: String? = nil

func getFriends() -> [User] {
var friends: [User] = []

for user in viewState.users.values {
switch user.relationship ?? .None {
case .Friend:
friends.append(user)
default:
()
}
}

return friends
}
@State var allFriends: [User] = []

var body: some View {
VStack(spacing: 4) {
Expand All @@ -46,7 +33,7 @@ struct CreateGroup: View {
.padding([.horizontal, .top], 16)

List(selection: $selectedUsers) {
ForEach(getFriends().filter { user in searchText.isEmpty || (user.username.contains(searchText) || (user.display_name?.contains(searchText) ?? false))}) { user in
ForEach(allFriends.filter { user in searchText.isEmpty || (user.username.contains(searchText) || (user.display_name?.contains(searchText) ?? false))}) { user in
let binding = Binding(
get: { selectedUsers.contains(user) },
set: { v in
Expand Down Expand Up @@ -79,6 +66,16 @@ struct CreateGroup: View {
.environment(\.editMode, .constant(EditMode.active))
#endif
}
.task {
allFriends = viewState.users.values.filter({ user in
switch user.relationship ?? .None {
case .Friend:
return true
default:
return false
}
})
}
.background(viewState.theme.background.color)
.toolbarBackground(viewState.theme.topBar.color, for: .automatic)
.toolbar {
Expand Down

0 comments on commit aac6d05

Please sign in to comment.