Contact List | Group List | Friend Request List |
![]() | ![]() | ![]() |
ContactList component is included in TUIKit SwiftUI. To use ContactList, integrate TUIKit SwiftUI into your project. For detailed integration steps, refer to the TUIKit SwiftUI documentation.ContactList is the primary component for displaying and managing contacts. It represents the full contact list page and provides a public initializer:Method | Parameter | Description |
init | contactStore: ContactListStore | Contact data store. Use ContactListStore.create() to create a default instance. |
| onContactClick: ((AZOrderedListItem) -> Void)? | Webhook triggered when a contact is clicked. Optional. |
| onGroupClick: ((AZOrderedListItem) -> Void)? | Webhook triggered when a group is clicked. Optional. |
ContactList includes entry cells for subviews such as friend requests, group requests, group list, and blacklist. The lower section displays the contact list, as shown below:
ContactList includes built-in navigation for subpages. When you tap entries such as friend requests, group requests, group list, or blacklist, the corresponding subpage opens automatically as a full-screen modal (fullScreenCover). No manual navigation handling is required.Subpage | Method Name | Parameter | Description |
Friend Request Page (FriendApplicationListView) | init | contactStore: ContactListStore | Contact data store, passed from ContactList |
| init | onDismiss: (() -> Void)? | Webhook triggered when the page is closed. Optional. |
Group Request Page (GroupApplicationListView) | init | contactStore: ContactListStore | Contact data store, passed from ContactList |
| init | onDismiss: (() -> Void)? | Webhook triggered when the page is closed. Optional. |
Group List Page (GroupListView) | init | contactStore: ContactListStore | Contact data store, passed from ContactList |
| init | onGroupClick: ((AZOrderedListItem) -> Void)? | Webhook triggered when a group is clicked in the group list. Optional. |
| init | onDismiss: (() -> Void)? | Webhook triggered when the page is closed. Optional. |
Blacklist Page (BlackListView) | init | contactStore: ContactListStore | Contact data store, passed from ContactList |
| init | onDismiss: (() -> Void)? | Webhook triggered when the page is closed. Optional. |
import AtomicXimport SwiftUIstruct ContactsPage: View {private let contactStore = ContactListStore.create()var body: some View {ContactList(contactStore: contactStore,onContactClick: { contact in// Handle contact clickprint("Contact clicked: \\(contact.title)")},onGroupClick: { group in// Handle group click (triggered when a group is clicked from the group list page)print("Group clicked: \\(group.title)")})}}

ContactList(contactStore: contactStore,onContactClick: { contact in// Triggered when a contact in the contact list is clicked},onGroupClick: { group in// Triggered when a group in the group list is clicked})
ContactListStore.create(). The component automatically shares this instance with all subpages to maintain data consistency:private let contactStore = ContactListStore.create()
// Use the group list page independentlyGroupListView(contactStore: contactStore,onGroupClick: { group inprint("Group clicked: \\(group.title)")},onDismiss: {// Close the page})
フィードバック