PactDOCS

REFERENCE / VANILLA

pactClient

A typed, SSR-safe controller that preserves the zero-load quiet path and replays the first lazy action.
01

Methods

MethodReturnsUse
ready()Promise<PactAPI>Wait for the browser API
getState()Promise<PactState>Read an immutable snapshot
onChange(listener)Promise<unsubscribe>Observe decisions
onOpen(listener)Promise<unsubscribe>Own a headless preference surface
allow(purposes?)Promise<void>Commit allow
deny(purposes?)Promise<void>Commit deny
save(decisions)Promise<void>Save custom preferences
openPreferences()Promise<void>Request preferences
02

Complete vanilla flow

privacy.ts
typescript
import { pactClient } from '@pact/web'

const unsubscribe = await pactClient.onChange(state => {
  document.documentElement.dataset.marketing =
    state.purposes.marketing === true ? 'allowed' : 'denied'
})

await pactClient.deny(['marketing'])
unsubscribe()
NEXTUse the React adapter