MCPcopy Index your code
hub / github.com/Expensify/App / FormAlertWrapper

Function FormAlertWrapper

src/components/FormAlertWrapper.tsx:40–89  ·  view source on GitHub ↗
({
    children,
    containerStyles,
    errorMessageStyle,
    isAlertVisible = false,
    isMessageHtml = false,
    message = '',
    onFixTheErrorsLinkPressed = () => {},
}: FormAlertWrapperProps)

Source from the content-addressed store, hash-verified

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.
40function 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
91export default FormAlertWrapper;

Callers

nothing calls this directly

Calls 4

useThemeStylesFunction · 0.85
useLocalizeFunction · 0.85
useNetworkFunction · 0.85
translateFunction · 0.70

Tested by

no test coverage detected