import React, { useEffect } from 'react'; import { TouchableOpacity } from 'react-native'; import { LogoutAction, ToastType, useToast, useLanguage } from 'ordering-components/native'; import { _retrieveStoreData, _clearStoreData } from '../../providers/StoreUtil'; import { OIcon, OText } from '../shared'; import { useTheme } from 'styled-components/native'; import { GoogleSignin } from '@react-native-google-signin/google-signin'; const LogoutButtonUI = (props: any) => { const { handleLogoutClick, formState } = props const theme = useTheme(); const [, { showToast }] = useToast(); const [, t] = useLanguage(); const handleClick = async () => { const data = await _retrieveStoreData('notification_state'); const res = await handleLogoutClick(data); if (res) { _clearStoreData({ excludedKeys: ['isTutorial'] }) } logoutWithGoogle() } const logoutWithGoogle = async () => { const isSignedIn = await GoogleSignin.isSignedIn() if (isSignedIn) { try { await GoogleSignin.revokeAccess(); await GoogleSignin.signOut(); } catch (error: any) { showToast(ToastType.Error, error.message) } } } useEffect(() => { if (!formState.loading && formState.result?.error) { formState.result?.result && showToast( ToastType.Error, typeof formState.result?.result === 'string' ? formState.result?.result : formState.result?.result[0] ) } }, [formState]) return ( handleClick()} style={{ flexDirection: 'row', alignItems: 'center' }} > {t('LOGOUT', 'Logout')} ) } export const LogoutButton = (props: any) => { const logoutProps = { ...props, isNative: true, UIComponent: LogoutButtonUI } return ( ) }