1.9.78 • Published 9 months ago

ultimate-react-form-renderer v1.9.78

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

Ultimate React Form Renderer

A form renderer for React, compatible with the output of the ultimate-react-form-builder Package. Easily manage form fields, field values, and handle save functions, all in TypeScript.

Installation

Install the package using npm:

npm install ultimate-react-form-renderer

Usage Example

import React, {useState} from 'react';
import TreeRenderer, {TreeRenderer_Helper, TreeRenderer_Models} from 'ultimate-react-form-renderer';

export default function ContactUsPage(props: {data: string}) {
  // props.data is output from ultimate-react-form-builder
  const [field_values, set_field_values] = useState<TreeRenderer_Models.request_data_object[]>([]);
  const [saving, set_saving] = useState<boolean>(false);
  const [req_sent, set_req_sent] = useState<boolean>(false);

  const handle_save = async () => {
    set_saving(true);
    try {
      //check if field_values are valid
      if (!TreeRenderer_Helper.are_field_values_valid(props.data, field_values))
        throw new Error('لطفا مقادیر پر شده را بررسی کنید');
      // Save form data in database
    } catch (e: any) {
      // Handle error
    }
    set_saving(false);
  };

  return (
    <div>
      <TreeRenderer
        data={props.data} // data is output from ultimate-react-form-builder
        field_values={field_values}
        set_field_values={set_field_values}
        handle_save={handle_save}
        saving={saving}
      />
    </div>
  );
}

Props

Prop NameTypeRequiredDescription
datastringtrueJSON string of the form structure, typically from ultimate-react-form-builder.
field_valuesrequest_data_object[]falseCurrent state of the form field values.
set_field_valuesReact.Dispatch<React.SetStateAction<request_data_object[]>>falseFunction to update the state of field_values.
handle_save() => Promise<void>falseFunction triggered when the form is submitted.
savingbooleanfalseControls the loading state during form submission.
handle_uploadMediaFile(formData: FormData) => Promise<any>falseHandle file uploads inside the form.
outSide_fields_settingsTreeRenderer_Models.fields_settings_modelfalseCustomize field suffixes and prefixes.
disable_securitybooleanfalseDisable security features like dangerouslySetInnerHTML.

request_data_object model

interface request_data_object {
  field_id: string;
  field_en_key: string;
  field_fa_key: string;
  field_value: string;
  field_type: string;
  field_label?: string;
}

How to use in non react environment?

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>React Package Test</title>
    <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
    <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
    <script src="https://unpkg.com/ultimate-react-form-renderer/dist/ultimate-react-form-renderer.umd.js"></script>
  </head>

  <body>
    <div id="root">root</div>
    <script>
      const props = {
        data: '',
      };
      const FormRenderer = UltimateReactFormRenderer.TreeRenderer;
      const root = ReactDOM.createRoot(document.getElementById('root'));
      root.render(React.createElement(FormRenderer, props));
    </script>
  </body>
</html>
1.9.78

9 months ago

1.9.77

9 months ago

1.9.76

9 months ago

1.9.75

9 months ago

1.9.74

9 months ago

1.9.73

9 months ago

1.9.72

9 months ago

1.9.71

9 months ago

1.9.70

9 months ago

1.9.69

9 months ago

1.9.68

9 months ago

1.9.67

9 months ago