// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React, {useCallback} from 'react'; import {FormattedMessage} from 'react-intl'; import {DeviceEventEmitter, Text, View} from 'react-native'; import {switchToGlobalDrafts} from '@actions/local/draft'; import CompassIcon from '@components/compass_icon'; import {Events} from '@constants'; import {DRAFT_SCREEN_TAB_SCHEDULED_POSTS} from '@constants/draft'; import {DRAFT} from '@constants/screens'; import {useServerUrl} from '@context/server'; import {useTheme} from '@context/theme'; import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme'; import {typography} from '@utils/typography'; const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => { return { container: { backgroundColor: changeOpacity(theme.centerChannelColor, 0.08), paddingVertical: 12, paddingHorizontal: 16, color: changeOpacity(theme.centerChannelColor, 0.72), flexDirection: 'row', alignItems: 'center', gap: 12, width: '100%', }, text: { color: changeOpacity(theme.centerChannelColor, 0.75), ...typography('Body', 100, 'SemiBold'), }, link: { color: theme.linkColor, ...typography('Body', 100, 'SemiBold'), }, }; }); type Props = { isThread?: boolean; scheduledPostCount?: number; } function ScheduledPostIndicator({ isThread, scheduledPostCount = 0, }: Props) { const serverUrl = useServerUrl(); const theme = useTheme(); const styles = getStyleSheet(theme); const handleSeeAllScheduledPosts = useCallback(async () => { const {error} = await switchToGlobalDrafts(serverUrl, undefined, DRAFT_SCREEN_TAB_SCHEDULED_POSTS); if (!error) { DeviceEventEmitter.emit(Events.ACTIVE_SCREEN, DRAFT); } }, [serverUrl]); const scheduledPostText = isThread ? ( ) : ( ); return ( {scheduledPostText} {' '} ); } export default ScheduledPostIndicator;