Skip to content

Commit aac6d05

Browse files
committed
fix: calculate friends once
1 parent 470e214 commit aac6d05

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

Revolt/Pages/Home/CreateGroup.swift

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,7 @@ struct CreateGroup: View {
1616
@State var selectedUsers: Set<User> = Set()
1717
@State var error: String? = nil
1818

19-
func getFriends() -> [User] {
20-
var friends: [User] = []
21-
22-
for user in viewState.users.values {
23-
switch user.relationship ?? .None {
24-
case .Friend:
25-
friends.append(user)
26-
default:
27-
()
28-
}
29-
}
30-
31-
return friends
32-
}
19+
@State var allFriends: [User] = []
3320

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

4835
List(selection: $selectedUsers) {
49-
ForEach(getFriends().filter { user in searchText.isEmpty || (user.username.contains(searchText) || (user.display_name?.contains(searchText) ?? false))}) { user in
36+
ForEach(allFriends.filter { user in searchText.isEmpty || (user.username.contains(searchText) || (user.display_name?.contains(searchText) ?? false))}) { user in
5037
let binding = Binding(
5138
get: { selectedUsers.contains(user) },
5239
set: { v in
@@ -79,6 +66,16 @@ struct CreateGroup: View {
7966
.environment(\.editMode, .constant(EditMode.active))
8067
#endif
8168
}
69+
.task {
70+
allFriends = viewState.users.values.filter({ user in
71+
switch user.relationship ?? .None {
72+
case .Friend:
73+
return true
74+
default:
75+
return false
76+
}
77+
})
78+
}
8279
.background(viewState.theme.background.color)
8380
.toolbarBackground(viewState.theme.topBar.color, for: .automatic)
8481
.toolbar {

0 commit comments

Comments
 (0)