@tutim/headless
Version:
form infrastructure for web applications
42 lines (41 loc) • 1.56 kB
TypeScript
import React from 'react';
import { FieldComponents, TutimProviderProps, TutimOptionsProviderValue } from '@tutim/types';
export declare const FieldComponentsContext: React.Context<FieldComponents>;
export declare const useFieldComponents: () => FieldComponents;
export declare const TutimOptionsContext: React.Context<TutimOptionsProviderValue>;
export declare const useTutimOptions: () => TutimOptionsProviderValue;
/**
* a context provider to manage form infrastructure.
*
* @remarks
* [API](https://docs.tutim.io/) • [Builder](https://tutim.io/)
*
* @param props - all tutim form configurations and components.
*
* @example
* ```tsx
* import { TutimProvider } from '@tutim/headless';
* import { defaultFields } from '@tutim/fields';
* import { FieldComponents } from '@tutim/types';
* import { SimpleForm } from './SimpleForm';
* import { CustomField } from './CustomField';
*
* const fieldComponents: FieldComponents = {
* ...defaultFields, // optional built in input fields based on MUI
* text: ({ inputProps }) => <input {...inputProps} />,
* 'custom-field': (fieldProps) => <CustomField {...fieldProps} />,
* // add any type of input and reference it by 'type'
* };
*
* export const App = (): JSX.Element => {
* return (
* <div className="App">
* <TutimProvider fieldComponents={fieldComponents}>
* <SimpleForm />
* </TutimProvider>
* </div>
* );
* };
* ```
*/
export declare const TutimProvider: ({ fieldComponents, options, children, }: TutimProviderProps) => JSX.Element;