Quero uma seção FAQ com perguntas editáveis. Qual é a implementação recomendada?Referência:
seu tema (adaptado do cookbook) + blocks/faq-item/
Índice: Cookbooks
Contratos utilizados
- Section Contract
- Block Contract
- Schema Contract
- Fields
text,richtext @corvex/runtime— PUBLIC_EDITOR_INTEGRATION:SectionBlockCanvas+{children}(mesma árvore no builder,/previewe vitrine)
Objetivo
Arquivos
blocks.json
blocks.json na pasta da section. O Editor usa esse arquivo para saber quais blocks o lojista pode adicionar — ver Block Contract.
corvex build (≥ 2.3.4) anexa o JSON no bundle. Não importe blocks.json no section.jsx e não declare propriedade estática no componente. Nome do inspector = schema.json → name. Section Contract — fazer / não fazer.
Block settings (block.settings)
O block recebe settings como namespace — não props flat na raiz:
Section + blocks no runtime
{children} — a plataforma monta cada faq-item block e persiste drag-and-drop. Ver Runtime API — Padrão A.
children são os blocks instanciados; cada instância da FAQ mantém sua própria árvore.
Acessibilidade (accordion)
Cada block gerencia seu estado local (useState) — múltiplas FAQs na página não conflitam.
CSS
Use seletor descendente para blocks no DOM da section:Comportamento no Editor
- Inspector da section: título (
text). - Painel “Blocks”: adicionar
faq-item, reordenar, atémax_blocks. - No canvas, com inspecionar ativo, arrastar um item persiste a mesma ordem do painel.
- Inspector do block: pergunta + resposta rich text.
Cuidados
- Não usar
document.querySelectorglobal. - Não aninhar blocks dentro de blocks (não suportado no contrato atual).
- Empty state quando
childrenausente.
Checklist
-
blocks.jsonna pasta da section - Block registrado em
theme.json→blocks[] -
block.settingsno componente do block -
{children}uma vez dentro deSectionBlockCanvas -
corvex validatepassa
seu tema (adaptado do cookbook) e blocks/faq-item/.
