// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React from 'react'; import {useIntl} from 'react-intl'; import {Text, View} from 'react-native'; import Button from '@components/button'; import LoadingErrorSvg from '@components/illustrations/loading_error'; import Loading from '@components/loading'; import {useTheme} from '@context/theme'; import {makeStyleSheetFromTheme} from '@utils/theme'; import {typography} from '@utils/typography'; type Props = { loading: boolean; message: string; onRetry: () => void; title: string; } const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({ container: { flex: 1, alignItems: 'center', justifyContent: 'center', padding: 20, }, header: { color: theme.sidebarHeaderTextColor, marginTop: 20, textAlign: 'center', }, body: { color: theme.sidebarText, textAlign: 'center', marginTop: 4, }, buttonContainer: { marginTop: 24, }, })); const LoadingError = ({loading, message, onRetry, title}: Props) => { const theme = useTheme(); const intl = useIntl(); const styles = getStyleSheet(theme); if (loading) { return ( ); } return ( {title} {message}