Appearance
Contacts
- Route:
src/routes/secure/contacts/+page.svelte - Feature:
src/features/contacts/index.svelte(+partials/,svc/)
Overview
The Contacts page is the alphabetical contact directory for calling, messaging, and group management. It provides search, an A–Z index rail, contact details, favourite actions, and full contact-group management — with online presence via the userStatus hub subscription.
Core Features
- Directory — searchable contact list with an alphabetical scroll rail (
partials/AlphabetScroll.svelte) and skeleton loading (ContactShimmer). - Contact details — a details panel with call/message actions (
partials/ContactDetails.svelte). - Selection — multi-select a contact group to call/message or start an event (
partials/ContactSelection.svelte). - Groups — create (
NewGroup), manage (GroupManagement), rename, delete, leave. - Presence — live online status from the hub.
Module Functions (svc/index.ts)
ts
export async function getMyContacts(term?, alphabet?, sort?, isCallList?): Promise<...>
export async function createGroup(data: CreateGroupCommandInput): Promise<...>
export async function updateGroup(data: UpdateGroupCommandInput): Promise<...>
export async function getGroupById(groupId: number): Promise<...>
export async function getGroupDetails(groupId: number): Promise<...>
export async function renameGroup(command: RenameGroupCommandInput): Promise<...>
export async function leaveGroup(groupId: number): Promise<...>
export async function deleteGroup(groupId: number): Promise<...>Permission model
- Viewing the directory requires
ViewContacts(nav entry). - Group management is gated by
ManageGroups. - Chat/message actions require
Chat.