Bỏ qua, đến nội dung

@digiforce-nc/plugin-block-multi-step-form

Plugin tạo form nhiều bước (wizard) - chia nhỏ form phức tạp thành các bước tuần tự với navigation, validation từng bước và drag & drop sắp xếp lại thứ tự.

Plugin này làm gì?

Form dài với nhiều field khiến người dùng choáng ngợp. Multi-step form chia form thành các bước nhỏ hơn - mỗi bước có nhóm field riêng, validation riêng, và action riêng (next, previous, submit). Phù hợp cho onboarding, đăng ký phức tạp, wizard cấu hình.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Chia form thành bướcMỗi step có grid layout riêng, chứa nhóm fields liên quan
2Navigation giữa các bướcActions next/previous với validation từng bước trước khi chuyển
3Drag & drop reorderSắp xếp lại thứ tự các bước bằng DnD

Kiến trúc

Tổng quan

Plugin hoạt động hoàn toàn ở client - không có server component riêng. Dữ liệu form được gửi đến collection API khi submit.

Schema structure

Form nhiều bước sử dụng cấu trúc schema lồng nhau:

CấpComponentVai trò
1FormBlockProviderProvider cung cấp form context, data source, mode
2StepsFormContainer quản lý steps, state bước hiện tại
3StepsForm.StepĐại diện một bước, chứa title và nội dung
4StepFormForm thực tế trong mỗi bước với grid layout

Ba chế độ hoạt động

ModeMô tảUse case
createTạo bản ghi mớiForm đăng ký, onboarding
editChỉnh sửa bản ghi có sẵnCập nhật thông tin
addnewThêm mới với preset valuesTạo nhanh với giá trị mặc định

Luồng hoạt động

Tính năng

Tính năngMô tả
Multi-step navigationChuyển bước next/previous với animation
Per-step validationValidate fields từng bước trước khi cho chuyển
DnD step reorderKéo thả sắp xếp lại thứ tự bước (DndContext)
Step title toolbarToolbar trên mỗi step title: rename, delete, move
Per-step gridMỗi bước có grid layout riêng
Custom actionsNgoài next/prev/submit, hỗ trợ action tùy chỉnh
Step indicatorHiển thị progress bar / step numbers
Create/Edit/AddNewBa chế độ form với luồng khác nhau

Thành phần client

Thành phầnMô tả
StepsFormComponent chính quản lý steps state và navigation
StepsForm.StepComponent đại diện một bước trong wizard
StepFormForm thực tế bên trong mỗi step
StepsStepTitleToolbarToolbar trên tiêu đề step: DnD handle, rename, delete
MultiStepFormBlockInitializerĐăng ký block vào menu "Add block"
multiStepFormActionInitializersNhóm action: next, previous, submit, custom
MultiStepFormDesignerDesigner cấu hình steps, mode, data source

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework (peer)
@digiforce-nc/serverServer framework - chỉ dùng khi build (peer)
@dnd-kit/coreDrag & drop cho reorder steps
antdAnt Design Steps component (peer)

Mục lục chi tiết