@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
71 lines (70 loc) • 2.31 kB
TypeScript
/**
* FeedbackForm module.
* @module @massds/mayflower-react/FeedbackForm
*/
import React from 'react';
export interface HiddenFieldsProps {
/** The form id that the hidden input will be rendered within. */
formId?: number;
}
export interface FeedbackFormProps {
/** A ref object as created by React.createRef(). Will be applied to the form element. */
formRef?: ((...args: unknown[]) => unknown) | {
current?: any;
};
/** A function whose return value is displayed after a successful form submission. */
successMessage(...args: unknown[]): unknown;
/** The field id number for the yes textarea. */
yesFeedbackId?: number;
/** The field id number for the no textarea. */
noFeedbackId?: number;
/** The field id number for the referer. */
refererId?: number;
/** The id number for the form from FormStack. */
formId?: number;
/** The field id number for the yes/no radio buttons. */
radioId?: number;
/** A drupal node id number for the referer. */
nodeId?: number;
/** A function whose return value is rendered under the yes textarea. */
yesDisclaimer?(...args: unknown[]): unknown;
/** A function whose return value is rendered under the no textarea. */
noDisclaimer?(...args: unknown[]): unknown;
}
export default class FeedbackForm extends React.Component<FeedbackFormProps> {
static defaultProps: {
formId: number;
radioId: number;
yesFeedbackId: number;
noFeedbackId: number;
refererId: number;
};
state: {
yesText: string;
noText: string;
errorMessage: any;
feedbackChoice: any;
hasError: any[];
success: boolean;
formSubmitted: boolean;
};
yesRadio: any;
yesTextArea: any;
noRadio: any;
noTextArea: any;
submitButton: any;
componentDidMount(): void;
defaultDisclaimer: () => any;
prefixLabel: (id: any) => string;
prefixField: (id: any) => string;
handleRadioChange: (e: any) => {
feedbackChoice: boolean;
} | {
feedbackChoice?: undefined;
};
handleChange: (e: any) => void;
removeError: (errors: any, idToRemove: any) => any;
checkForErrors: () => any[];
handleSubmit: (e: any) => void;
render(): any;
}