@@ -29,6 +29,10 @@ export interface Props
2929 | 'showEmail'
3030 | 'showName'
3131 | 'submitButtonLabel'
32+ | 'isRequiredText'
33+ | 'submitErrorClientText'
34+ | 'submitErrorServerText'
35+ | 'submitErrorOtherText'
3236 > {
3337 defaultEmail : string ;
3438 defaultName : string ;
@@ -66,7 +70,11 @@ export function Form({
6670 showEmail,
6771 showName,
6872 submitButtonLabel,
73+ isRequiredText,
6974 screenshotInput,
75+ submitErrorClientText,
76+ submitErrorServerText,
77+ submitErrorOtherText,
7078} : Props ) : VNode {
7179 // TODO: set a ref on the form, and whenever an input changes call proceessForm() and setError()
7280 const [ error , setError ] = useState < null | string > ( null ) ;
@@ -121,11 +129,11 @@ export function Form({
121129 return ;
122130 }
123131 try {
124- await onSubmit ( { ...data , source : FEEDBACK_WIDGET_SOURCE } ) ;
132+ await onSubmit ( { ...data , submitErrorClientText , submitErrorServerText , submitErrorOtherText , source : FEEDBACK_WIDGET_SOURCE } ) ;
125133 onSubmitSuccess ( data ) ;
126134 } catch ( error ) {
127135 DEBUG_BUILD && logger . error ( error ) ;
128- setError ( 'There was a problem submitting feedback, please wait and try again.' ) ;
136+ setError ( submitErrorOtherText ) ;
129137 onSubmitError ( error as Error ) ;
130138 }
131139 } catch {
@@ -145,7 +153,7 @@ export function Form({
145153
146154 { showName ? (
147155 < label for = "name" class = "form__label" >
148- < LabelText label = { nameLabel } isRequired = { isNameRequired } />
156+ < LabelText label = { nameLabel } isRequiredText = { isRequiredText } isRequired = { isNameRequired } />
149157 < input
150158 class = "form__input"
151159 defaultValue = { defaultName }
@@ -162,7 +170,7 @@ export function Form({
162170
163171 { showEmail ? (
164172 < label for = "email" class = "form__label" >
165- < LabelText label = { emailLabel } isRequired = { isEmailRequired } />
173+ < LabelText label = { emailLabel } isRequiredText = { isRequiredText } isRequired = { isEmailRequired } />
166174 < input
167175 class = "form__input"
168176 defaultValue = { defaultEmail }
@@ -178,7 +186,7 @@ export function Form({
178186 ) }
179187
180188 < label for = "message" class = "form__label" >
181- < LabelText label = { messageLabel } isRequired />
189+ < LabelText label = { messageLabel } isRequiredText = { isRequiredText } isRequired />
182190 < textarea
183191 autoFocus
184192 class = "form__input form__input--textarea"
@@ -223,11 +231,11 @@ export function Form({
223231 ) ;
224232}
225233
226- function LabelText ( { label, isRequired } : { label : string ; isRequired : boolean } ) : VNode {
234+ function LabelText ( { label, isRequired, isRequiredText } : { label : string ; isRequired : boolean , isRequiredText : string } ) : VNode {
227235 return (
228236 < span class = "form__label__text" >
229237 { label }
230- { isRequired && < span class = "form__label__text--required" > (required) </ span > }
238+ { isRequired && < span class = "form__label__text--required" > $ { isRequiredText } </ span > }
231239 </ span >
232240 ) ;
233241}
0 commit comments