Skip to content

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.

Released under the MIT License.