Skip to content

Dedicated custom elements

wc-context comes with two built in components that can be used to provide or consume a context declaratively.

context-provider

The context-provider component is exported in 'wc-context/context-provider.js'

It accepts the attribute context that identifies the context to be provided and the attribute / property value that defines the context value

The context attribute cannot be modified. Setting its value after initial name / id definition has no effect.

context-consumer

The context-consumer component is exported in 'wc-context/context-consumer.js'

It accepts the attribute context that identifies the context to be consumed

An context-update event is triggered on context-consumer when context value changes. The event has context and value properties

Example

javascript
import 'wc-context/context-provider.js'
import 'wc-context/context-consumer.js'

document.body.innerHTML = `
<context-provider context="theme" value="light">
  <div>
    <context-consumer context="theme"></context-consumer>
  </div>
</context-provider>`

const provider = document.querySelector('context-provider')
const consumer = document.querySelector('context-consumer')

consumer.addEventListener('context-update', ({ context, value }) => {
  console.log(`Context ${context}:${value}`)
})

provider.value = 'dark'
import 'wc-context/context-provider.js'
import 'wc-context/context-consumer.js'

document.body.innerHTML = `
<context-provider context="theme" value="light">
  <div>
    <context-consumer context="theme"></context-consumer>
  </div>
</context-provider>`

const provider = document.querySelector('context-provider')
const consumer = document.querySelector('context-consumer')

consumer.addEventListener('context-update', ({ context, value }) => {
  console.log(`Context ${context}:${value}`)
})

provider.value = 'dark'

Released under the MIT License.