Skip to main content

Changelog

All notable changes to propeller-v2-cms-react are documented here.

The format is based on Keep a Changelog, and the project aims to follow Semantic Versioning once it reaches 1.0. Until then (the 0.x line) the public API may change between minor versions; breaking changes are called out in this file.

[0.1.3] - 2026-07-08

Changed

  • Bumped the @propeller-commerce/propeller-sdk-v2 dev dependency to ^0.12.0 to build and test against the SDK's 0.12.0 release. No API change.

[0.1.2] - 2026-06-24

Documentation

  • Corrected the README's adapter story. It told users to import { createStrapiAdapter } from 'propeller-v2-cms-adapter-strapi', but no propeller-v2-cms-adapter-* package is published. This package is adapter-agnostic: the minimal usage now shows supplying your own CmsAdapter (getPage / getMenu / getGlobals), and points at the Propeller Next boilerplate's built-in lib/cms providers (Strapi + Prepr, selected by CMS_PROVIDER) as the ready-made option. Removed the dead cms-adapter-strapi link and updated the package description.
  • Added a link to the canonical docs site (https://propeller-commerce.github.io/propeller-v2-cms-react/).

[0.1.1] - 2026-06-02

Added

  • Docusaurus documentation site under docs/, deployed to https://propeller-commerce.github.io/propeller-v2-cms-react/ via a new .github/workflows/docs.yml GitHub Action (build + GitHub Pages deploy). Covers getting-started, the <CmsAdapterProvider> / <CmsPageRenderer> / <CmsBlock> / useCms() APIs, and patterns for homepage fallback, catch-all routing, preview mode, multi-locale, and per-block data fetching.
  • release_to_github stage in .gitlab-ci.yml — automatic GitHub Release on every Release X.Y.Z push, mirroring the SDK pattern.

Notes

No runtime / public-API changes — this is a tooling release that backfills documentation + release automation for the existing 0.1.0 surface. Consumers do not need to update.

[0.1.0] - 2026-06-01

Initial release. A small React layer over the framework-agnostic CmsAdapter contract from propeller-v2-core-ui.

Added

  • <CmsAdapterProvider adapter={...}> — wires a CmsAdapter instance into the React tree. Wire once at the app root, alongside <PropellerDepsProvider>. Pass null for shops without a CMS — the catch-all CMS route returns 404 and the homepage renders its static fallback. Nothing breaks downstream.
  • useCms() — read the installed adapter from context. Returns null when the shop wasn't configured with a CMS. Intended for client islands that need optional adapter access (preview banners, edit-this-page links). Server data fetchers should construct the adapter directly and pass results into pages, not call this hook.
  • <CmsPageRenderer page={...} renderers={...}> — renders a CmsPage's block list. Iterates page.blocks, dispatches each block through <CmsBlock>.
  • <CmsBlock block={...} renderers={...} debug={...}> — single-block dispatcher. Takes a renderers map keyed by block.type. Unknown block types render null in prod, or a visible debug box when debug is true. Block components are the shop's responsibility — this package ships none, because brand styling, layout, and content shape vary too much to share.

Requires

  • propeller-v2-core-ui ≥ 0.2.0 (for the CmsAdapter, CmsPage, CmsBlock contract).
  • react ≥ 18.