@sierralabs/forms-ui v1.1.49
Sierra Labs Forms UI
Sierra Labs Forms React UI Library for managing form schemas, form templates, and form data capture.
Getting Started
Install the @sierralabs/forms-ui
package along with peer dependencies
# for npm
$ npm install @sierralabs/core @sierralabs/forms-core @sierralabs/track-changes @sierralabs/state-machine @sierralabs/react-material-ui @sierralabs/react-material-ui-formik @sierralabs/forms-ui
# or for yarn
$ yarn add @sierralabs/core @sierralabs/forms-core @sierralabs/track-changes @sierralabs/state-machine @sierralabs/react-material-ui @sierralabs/react-material-ui-formik @sierralabs/forms-ui
# forms-ui is also dependent on react, material-ui, date-fns, js-cookie, styled-components, formik, yup, use-query-arams, react-router-dom, react-number-format, @tinymce/tinymce-react, react-beautiful-dnd
$ yarn add @material-ui/core @material-ui/icons @material-ui/lab @material-ui/pickers @tinymce/tinymce-react date-fns formik js-cookie react-beautiful-dnd react-number-format react-router-dom styled-components use-query-params yup # or npm install
Form Schema and Template Editors
Add the following Routes to your project for the form schema and form template editors. These components integrate with the @sierralabs/forms-api
provided endpoints.
<Switch>
<Route
exact
path='/portal/admin/form-templates'
component={FormTemplateListPage}
/>
<Route
path='/portal/admin/form-templates/:formTemplateId'
component={FormTemplateDetailPage}
/>
</Switch>
Form Component
You can integrate the Form
component into your project and build custom logic around handling of form data captured through the UI.
const CustomForm: React.FC = () => {
// Pass in the form Entity Schema JSON definiition
const entitySchema = {...};
// Pass in the form template JSON definition
const formStateNode = {...};
return (
<FormProvider
entitySchema={entitySchema}
formStateNode={formStateNode}
onChange={values => {
/* when form data is entered `values` contains the user data */
}}
>
// Render the form UI
<Form />
</FormProvider>
)
};
TODO: Document Form component configurations (i.e. appendSectionControls, etc.)
Form Hooks
The following are Form related hooks to interface with the @sierralabs/forms-api
:
useFindFormSchemas
- Get a list of form schemasuseFindFormSchemaDeltas
- Get history of form schema changesuseApplyFormSchemaDelta
- Apply a change to the form schemauseCreateFormTemplate
- Create a form templateuseUpdateFormTemplate
- Update a form templateuseUpdateFormTemplateConfig
- Updating a Form Template configusePublishFormTemplate
- Publish a form template versionuseFindFormTemplates
- Get a list of form templatesuseFindFormTemplate
- Get a single form template and its configuseGetFormTemplateVersions
- Get all published versions for a form template
Development & Contributing
For fast development leveraging React's fast refresh capabilities you can develop using the forms-ui-example
project located in the "examples" folder.
# Start the @sierralabs/forms-ui in watch mode
forms-ui $ yarn start
# Start the forms example project
forms-ui-example $ yarn start
# Now all changes in @sierralabs/forms-ui will get automatically compiled and leverage React's fast browser refresh capabilities.
Development from an outside project
To develop and contribute to the @sierralabs/forms-ui
project from another project that has a dependency on this module you can use Yalc. Yalc works better then yarn/npm link due to node_module dependency issues with symlinking that impact modules like react.
# Install yalc if you don't already have it installed
$ npm install -g yalc
# Publish `@sierralabs/forms-ui` into your local yalc repo
$ yalc publish
# On the project that is using `@sierralabs/forms-api` run
dependent-project $ yalc link @sierralabs/forms-api
# Now back on the `@sierralabs/forms-ui` folder you can make code changes and push changes to the linked projects by
$ yalc push
# Lastly, to undo the yalc link reference, you'll need to force the package install on the dependent project
dependent-project $ yarn install --force
7 months ago
8 months ago
8 months ago
10 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago