webiny-new-entry-wizard

Builds custom wizard UIs that pre-fill Headless CMS entry forms before editing.

8.0k|673|Updated Jan 9, 2018
One-click install
npx skills add https://github.com/webiny/webiny-js --skill webiny-new-entry-wizard
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webiny-new-entry-wizard
Source: https://github.com/webiny/webiny-js/tree/main/skills/user-skills/admin/new-entry-wizard
Command: npx skills add https://github.com/webiny/webiny-js --skill webiny-new-entry-wizard

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

When editors create new CMS entries, teams often need to collect key fields like title, slug, or category upfront in a guided step before showing the full entry form. This Skill shows how to intercept the "create new entry" flow in Webiny's Headless CMS with a custom wizard that validates initial values and pre-fills the entry editor.

Core Features & Use Cases

  • Wizard Registration: Attach a wizard component to specific content models via ContentEntryEditorConfig.NewEntryWizard and its modelIds prop.
  • Feature Architecture: Wire a presenter through createFeature, createAbstraction, and the DI container, with abstractions.ts and feature.ts as mandatory standalone files.
  • Form Handling: Build the wizard form with FormModelFactory (fields, layout, validation), render it with FormView and FormErrors, and submit via formPresenter.newEntry(initialValues) which marks the entry form dirty.
  • Use Case: A content team wants editors to pick a category and enter a title and slug before writing an article. The wizard collects these three fields, validates them, then opens the article entry form pre-filled and flagged with unsaved changes.

Quick Start

Ask the AI to create a New Entry Wizard extension for the article content model that collects title, slug, and category before opening the pre-filled entry form.

Frequently Asked Questions about webiny-new-entry-wizard

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I show a custom form before the CMS entry editor in Webiny?

Register a React element with ContentEntryEditorConfig.NewEntryWizard and pass the target content model IDs via the modelIds prop. The wizard renders instead of the entry form when creating a new entry, and on submit it calls formPresenter.newEntry(initialValues) to open the pre-filled editor.

How to pre-fill a Webiny CMS entry form with initial values?

Call formPresenter.newEntry(initialValues) from useContentEntryFormPresenter, passing an object that matches the content model's field structure. The entry form is populated via setData with the dirty flag, so the user sees unsaved changes and can review before saving.

Can I apply a New Entry Wizard to only specific content models?

Yes, pass an array of content model IDs to the modelIds prop of ContentEntryEditorConfig.NewEntryWizard, such as ["article", "blogPost"]. Omitting the prop or passing an empty array applies the wizard to all models.

Why must abstractions.ts and feature.ts be separate files in Webiny extensions?

The DI token and presenter interface live in abstractions.ts while createFeature wiring lives in feature.ts, and both are imported by the presenter and view. Keeping them standalone prevents circular dependencies and keeps the feature resolution contract explicit.

Why is my wizard view not updating when form data changes?

The view must be wrapped in createReactiveComponent so it re-renders when MobX observables like presenter.vm change. Also ensure the presenter calls makeAutoObservable(this) in its constructor so the FormModel state is observable.