diff --git a/app/components/autocomplete_selector/autocomplete_selector.js b/app/components/autocomplete_selector/autocomplete_selector.js index c4b5dec83..13cb07d1c 100644 --- a/app/components/autocomplete_selector/autocomplete_selector.js +++ b/app/components/autocomplete_selector/autocomplete_selector.js @@ -10,7 +10,9 @@ import {displayUsername} from '@mm-redux/utils/user_utils'; import CompassIcon from '@components/compass_icon'; import FormattedText from '@components/formatted_text'; +import Markdown from '@components/markdown'; import TouchableWithFeedback from '@components/touchable_with_feedback'; +import {getMarkdownBlockStyles, getMarkdownTextStyles} from '@utils/markdown'; import {preventDoubleTap} from '@utils/tap'; import {makeStyleSheetFromTheme, changeOpacity} from '@utils/theme'; import {ViewTypes} from '@constants'; @@ -122,6 +124,8 @@ export default class AutocompleteSelector extends PureComponent { } = this.props; const {selectedText} = this.state; const style = getStyleSheet(theme); + const textStyles = getMarkdownTextStyles(theme); + const blockStyles = getMarkdownBlockStyles(theme); let text = placeholder || intl.formatMessage({id: 'mobile.action_menu.select', defaultMessage: 'Select an option'}); let selectedStyle = style.dropdownPlaceholder; @@ -167,18 +171,30 @@ export default class AutocompleteSelector extends PureComponent { let helpTextContent; if (helpText) { helpTextContent = ( - - {helpText} - + + + ); } let errorTextContent; if (errorText) { errorTextContent = ( - - {errorText} - + + + ); } @@ -265,17 +281,21 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => { fontSize: 14, marginLeft: 5, }, + helpTextContainer: { + marginHorizontal: 15, + marginTop: 10, + }, helpText: { fontSize: 12, color: changeOpacity(theme.centerChannelColor, 0.5), + }, + errorTextContainer: { marginHorizontal: 15, marginVertical: 10, }, errorText: { fontSize: 12, color: theme.errorTextColor, - marginHorizontal: 15, - marginVertical: 10, }, asterisk: { color: theme.errorTextColor, diff --git a/app/components/widgets/settings/bool_setting.js b/app/components/widgets/settings/bool_setting.js index 4cbc5f8a1..9e71f44f9 100644 --- a/app/components/widgets/settings/bool_setting.js +++ b/app/components/widgets/settings/bool_setting.js @@ -10,6 +10,8 @@ import { } from 'react-native'; import FormattedText from '@components/formatted_text'; +import Markdown from '@components/markdown'; +import {getMarkdownBlockStyles, getMarkdownTextStyles} from '@utils/markdown'; import { changeOpacity, makeStyleSheetFromTheme, @@ -49,6 +51,8 @@ export default class BoolSetting extends PureComponent { theme, } = this.props; const style = getStyleSheet(theme); + const textStyles = getMarkdownTextStyles(theme); + const blockStyles = getMarkdownBlockStyles(theme); let optionalContent; let asterisk; @@ -81,18 +85,28 @@ export default class BoolSetting extends PureComponent { let helpTextContent; if (helpText) { helpTextContent = ( - - {helpText} - + + + ); } let errorTextContent; if (errorText) { errorTextContent = ( - - {errorText} - + + + ); } @@ -159,17 +173,21 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => { fontSize: 14, marginLeft: 5, }, + helpTextContainer: { + marginHorizontal: 15, + marginTop: 10, + }, helpText: { fontSize: 12, color: changeOpacity(theme.centerChannelColor, 0.5), + }, + errorTextContainer: { marginHorizontal: 15, - marginTop: 10, + marginVertical: 10, }, errorText: { fontSize: 12, color: theme.errorTextColor, - marginHorizontal: 15, - marginVertical: 10, }, asterisk: { color: theme.errorTextColor, diff --git a/app/components/widgets/settings/text_setting.js b/app/components/widgets/settings/text_setting.js index ae57ef2cd..228e8780c 100644 --- a/app/components/widgets/settings/text_setting.js +++ b/app/components/widgets/settings/text_setting.js @@ -11,6 +11,8 @@ import { } from 'react-native'; import FormattedText from '@components/formatted_text'; +import Markdown from '@components/markdown'; +import {getMarkdownBlockStyles, getMarkdownTextStyles} from '@utils/markdown'; import { changeOpacity, makeStyleSheetFromTheme, @@ -82,6 +84,8 @@ export default class TextSetting extends PureComponent { testID, } = this.props; const style = getStyleSheet(theme); + const textStyles = getMarkdownTextStyles(theme); + const blockStyles = getMarkdownBlockStyles(theme); let labelContent = label; if (label && label.defaultMessage) { @@ -130,27 +134,42 @@ export default class TextSetting extends PureComponent { let helpTextContent; if (helpText) { helpTextContent = ( - - {helpText} - + + + ); } let errorTextContent; if (errorText) { errorTextContent = ( - - {errorText} - + + + ); } let disabledTextContent; if (disabled && disabledText) { disabledTextContent = ( - - {disabledText} - + + + ); } @@ -238,17 +257,21 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => { fontSize: 14, marginLeft: 5, }, + helpTextContainer: { + marginHorizontal: 15, + marginTop: 10, + }, helpText: { fontSize: 12, color: changeOpacity(theme.centerChannelColor, 0.5), + }, + errorTextContainer: { marginHorizontal: 15, - marginTop: 10, + marginVertical: 10, }, errorText: { fontSize: 12, color: theme.errorTextColor, - marginHorizontal: 15, - marginTop: 10, }, asterisk: { color: theme.errorTextColor, diff --git a/app/screens/apps_form/apps_form_component.tsx b/app/screens/apps_form/apps_form_component.tsx index 811ac9c73..2dfdbd203 100644 --- a/app/screens/apps_form/apps_form_component.tsx +++ b/app/screens/apps_form/apps_form_component.tsx @@ -3,28 +3,29 @@ import {intlShape} from 'react-intl'; import React, {PureComponent} from 'react'; -import {ScrollView} from 'react-native'; +import {ScrollView, View} from 'react-native'; import {EventSubscription, Navigation} from 'react-native-navigation'; import {SafeAreaView} from 'react-native-safe-area-context'; -import {checkDialogElementForError, checkIfErrorsMatchElements} from '@mm-redux/utils/integration_utils'; - -import ErrorText from 'app/components/error_text'; -import StatusBar from 'app/components/status_bar'; -import FormattedText from '@components/formatted_text'; - -import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme'; -import {dismissModal} from 'app/actions/navigation'; - -import DialogIntroductionText from './dialog_introduction_text'; -import {Theme} from '@mm-redux/types/preferences'; +import {AppCallResponseTypes} from '@mm-redux/constants/apps'; import {AppCallRequest, AppField, AppForm, AppFormValue, AppFormValues, AppLookupResponse, AppSelectOption, FormResponseData} from '@mm-redux/types/apps'; import {DialogElement} from '@mm-redux/types/integrations'; -import {AppCallResponseTypes} from '@mm-redux/constants/apps'; -import AppsFormField from './apps_form_field'; +import {Theme} from '@mm-redux/types/preferences'; +import {checkDialogElementForError, checkIfErrorsMatchElements} from '@mm-redux/utils/integration_utils'; + +import StatusBar from '@components/status_bar'; +import FormattedText from '@components/formatted_text'; +import Markdown from '@components/markdown'; + +import {dismissModal} from '@actions/navigation'; +import {getMarkdownBlockStyles, getMarkdownTextStyles} from '@utils/markdown'; import {preventDoubleTap} from '@utils/tap'; +import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme'; import {DoAppCallResult} from 'types/actions/apps'; +import AppsFormField from './apps_form_field'; +import DialogIntroductionText from './dialog_introduction_text'; + export type Props = { call: AppCallRequest; form: AppForm; @@ -343,11 +344,14 @@ export default class AppsFormComponent extends PureComponent { > {formError && ( - + + + )} {header && { marginBottom: 20, marginTop: 10, }, + errorLabel: { + fontSize: 12, + textAlign: 'left', + color: (theme.errorTextColor || '#DA4A4A'), + }, }; });