import { StackNavigationProp } from '@react-navigation/stack'; import React, { useEffect, useState } from 'react'; import { Switch } from 'react-native'; import { useSelector } from 'react-redux'; import I18n from '../../i18n'; import log, { logEvent, events } from '../../utils/log'; import SafeAreaView from '../../containers/SafeAreaView'; import StatusBar from '../../containers/StatusBar'; import * as List from '../../containers/List'; import { SWITCH_TRACK_COLOR } from '../../constants/colors'; import { getUserSelector } from '../../selectors/login'; import RocketChat from '../../lib/rocketchat'; import { ProfileStackParamList } from '../../stacks/types'; interface IUserPreferencesViewProps { navigation: StackNavigationProp; } const UserPreferencesView = ({ navigation }: IUserPreferencesViewProps): JSX.Element => { const user = useSelector(state => getUserSelector(state)); const [enableParser, setEnableParser] = useState(user.enableMessageParserEarlyAdoption); useEffect(() => { navigation.setOptions({ title: I18n.t('Preferences') }); }, []); const navigateToScreen = (screen: keyof ProfileStackParamList) => { logEvent(events.UP_GO_USER_NOTIFICATION_PREF); navigation.navigate(screen); }; const toggleMessageParser = async (value: boolean) => { try { await RocketChat.saveUserPreferences({ id: user.id, enableMessageParserEarlyAdoption: value }); setEnableParser(value); } catch (e) { log(e); } }; const renderMessageParserSwitch = () => ( ); return ( navigateToScreen('UserNotificationPrefView')} showActionIndicator testID='preferences-view-notifications' /> renderMessageParserSwitch()} /> ); }; export default UserPreferencesView;