@wix/site-service-pages
v1.0.2
Published
Provides all site pages (with popup flag), the current page, and the main page.
Maintainers
Keywords
Readme
@wix/site-service-pages
Provides all site pages (with popup flag), the current page, and the main page.
Install
yarn add @wix/site-service-pagesUsage
import { PagesDefinition } from '@wix/site-service-pages/definition'
import { PagesService } from '@wix/site-service-pages/implementations'
createServicesMap().addService(PagesDefinition, PagesService, config)
const service = servicesManager.getService(PagesDefinition)
// service.pages ← Record<string, Page>
// service.mainPage ← Page (resolved by provider, stored as-is)
// service.currentPage ← Page (resolved by provider, stored as-is)API
| Member | Type | Throws when | Description |
|---|---|---|---|
| pages | Record<string, Page> | never | All pages with id stamped from map key. |
| mainPage | Page | never | The site's main/home page as provided. |
| currentPage | Page | never | The currently active page as provided. |
| _updateConfig | (Partial<IPagesServiceConfig>) => void | never | Replace-on-write per field. Re-stamps id on pages update. |
Configuration
IPagesServiceConfig:
type IPagesServiceConfig = {
/** id-as-key map; values omit `id` (P3). Service stamps id at write time (P16). */
pages: Record<string, PageConfig>
/** Provider resolves and passes the full main page object. */
mainPage: Page
/** Provider resolves and passes the full current page object. */
currentPage: Page
}
type PageConfig = {
title: string
path: string
parentPageId?: string
popup: boolean
}
type Page = PageConfig & { id: string }The provider is responsible for resolving which page is mainPage / currentPage before injecting config. The service stores them as independent signals and does no internal lookup.
Reactivity
This service is a thin signal wrapper over @wix/services-definitions/core-services/signals. All three properties are signal-backed; wrap reads in effect / computed to react to changes. Signals are not exposed directly.
