Repository URL to install this package:
|
Version:
4.0.75 ▾
|
import React from 'react';
import { Serializable } from '@skava/typings';
import InputState from 'src/forms/input/InputState';
import Input from 'src/forms/input/ObserverInput';
import { InputStateType } from '../input/typings';
import { ObserverFormClassListType, InputStateOptions, InputStateFromArgs, ObserverFormProps } from './typings';
import FormState from './FormState';
import { FormElement } from './_elements';
declare class ObserverForm<Props extends ObserverFormProps = ObserverFormProps, State extends FormState = FormState> extends React.Component<Props, State> {
/**
* @todo !!! PUT THESE AS GETTERS AND SETTERS TO DEPRECATE
*/
/**
* @todo renderProps
*/
Form: typeof FormElement;
Input: typeof Input;
SubmitButton: (props: any) => JSX.Element;
CancelButton: (props: any) => JSX.Element;
shouldResetFormOnUnmount: boolean;
/**
* should have a simple object with wording & classnames, one property
* @todo could also pass these in via defaultProps
*/
defaultSubmitButtonLabel: string;
defaultCancelButtonLabel: string;
wording: Object;
/**
* state...
*/
isSubmitButtonNeeded: boolean;
isCancelButtonNeeded: boolean;
handleCancel: (event: Event) => void;
/**
* @todo @important @deprecated @invalid @name
*/
SubmitCustomClass: string;
CancelCustomClass: string;
ButtonGroupCustomClass: string;
classList: ObserverFormClassListType;
submitDataQa?: string;
cancelDataQa?: string;
static from(list: Array<InputStateOptions> | InputStateFromArgs): (props: any) => JSX.Element;
constructor(props: Props);
validateInputItem: (item: any) => void;
/**
* @todo - debounce
*/
validateForm(): State["hasAllValidInputs"];
/**
* @tutorial https://mobx.js.org/refguide/create-transformer.html
* @description Lifecycle event hook
* @listens onSubmit
* @see handleSubmit
*/
onSubmitValid(serialized: Serializable): void;
/**
* @description Lifecycle event hook
* @listens onSubmit
* @see handleSubmit
*/
onSubmitError(serialized: Serializable): void;
/**
* @todo - using super when it's a bound fn may not work?
* @listens onSubmit
*/
goToTop: () => void;
handleSubmit: (event: Event) => any;
/**
* @todo @name handleCancelClick
* @deprecated should remove, not part of form at all
*/
onCancelClick: (event: Event) => void;
renderInput: (item: InputState<any>, index: number) => JSX.Element | "";
renderInputList(): (JSX.Element | "")[];
/**
* @see componentWillMount
* @listens componentWillMount
* @event prefil
*/
onPrefil(inputState: InputState): void;
onInputInit(input: InputState, index?: number): void;
/**
* @private
* @inheritdoc
* @description compat
* so it returns the inputState
* will deprecate when not using .map
*/
_onPrefil: (inputState: InputState<any>) => InputState<any>;
_onInputInit: (input: InputState<any>, index: number) => void;
_toInput: (input: InputState<any>, index: number) => any;
/**
* @todo put prefil as action on state
* @todo do a timeout loader
*
* !!!!!! changed from componentWillMount => componentDidMount
*
* @name onPrefil
* @name prefilItem
* @name prefilInputItem
* @name prefilInput
*/
componentDidMount(): void;
componentWillReceiveProps(prevProps: Props, nextProps: Props): void;
componentWillUnmount(): void;
/**
* @todo this is FormState or InputStateTType?
*/
resetFormState(inputState: InputStateType): void;
render(): JSX.Element;
}
export { ObserverForm as ObservableForm };
export { ObserverForm as Form };
export { ObserverForm };
export default ObserverForm;