({
children,
containerStyles,
errorMessageStyle,
isAlertVisible = false,
isMessageHtml = false,
message = '',
onFixTheErrorsLinkPressed = () => {},
}: FormAlertWrapperProps)
| 38 | // This component takes other components as a child prop. It will then render any wrapped components as a function using "render props", |
| 39 | // and passes it a (bool) isOffline parameter. Child components can then use the isOffline variable to determine offline behavior. |
| 40 | function FormAlertWrapper({ |
| 41 | children, |
| 42 | containerStyles, |
| 43 | errorMessageStyle, |
| 44 | isAlertVisible = false, |
| 45 | isMessageHtml = false, |
| 46 | message = '', |
| 47 | onFixTheErrorsLinkPressed = () => {}, |
| 48 | }: FormAlertWrapperProps) { |
| 49 | const styles = useThemeStyles(); |
| 50 | const {translate} = useLocalize(); |
| 51 | const {isOffline} = useNetwork(); |
| 52 | |
| 53 | const defaultFixErrorsMessage = `${translate('common.please')} ${translate('common.fixTheErrors')} ${translate('common.inTheFormBeforeContinuing')}.`; |
| 54 | const announcementMessage = message?.length ? message : defaultFixErrorsMessage; |
| 55 | |
| 56 | let content; |
| 57 | if (!message?.length) { |
| 58 | content = ( |
| 59 | <Text style={[styles.formError, styles.mb0]}> |
| 60 | {`${translate('common.please')} `} |
| 61 | <TextLink |
| 62 | style={styles.label} |
| 63 | onPress={onFixTheErrorsLinkPressed} |
| 64 | > |
| 65 | {translate('common.fixTheErrors')} |
| 66 | </TextLink> |
| 67 | {` ${translate('common.inTheFormBeforeContinuing')}.`} |
| 68 | </Text> |
| 69 | ); |
| 70 | } else if (isMessageHtml && typeof message === 'string') { |
| 71 | content = <RenderHTML html={`<alert-text>${message}</alert-text>`} />; |
| 72 | } |
| 73 | |
| 74 | return ( |
| 75 | <View style={containerStyles}> |
| 76 | {isAlertVisible && ( |
| 77 | <FormHelpMessage |
| 78 | message={announcementMessage} |
| 79 | shouldRenderMessageAsHTML={isMessageHtml} |
| 80 | style={[styles.mb3, errorMessageStyle]} |
| 81 | shouldReannounceOnSubmit |
| 82 | > |
| 83 | {content} |
| 84 | </FormHelpMessage> |
| 85 | )} |
| 86 | {children(isOffline)} |
| 87 | </View> |
| 88 | ); |
| 89 | } |
| 90 | |
| 91 | export default FormAlertWrapper; |
nothing calls this directly
no test coverage detected