import React, { useState, useCallback, useEffect } from "react"; import { View } from "react-native"; import { Button } from "react-native-paper"; import Text from "~/components/Text"; import { useTheme } from "~/theme"; import { MaterialCommunityIcons } from "@expo/vector-icons"; import AccountManagementModal from "./AccountManagementModal"; import { authActions, useParamsState } from "~/stores"; import isConnectedProfile from "./isConnectedProfile"; import AccountManagementDev from "./AccountManagementDev"; export default function AccountManagement({ profileData, openAccountModal, waitingSmsType, clearAuthWaitParams, }) { const { colors, custom } = useTheme(); const isConnected = isConnectedProfile(profileData); const { devModeEnabled } = useParamsState(["devModeEnabled"]); const isDev = devModeEnabled; const modalState = useState({ visible: openAccountModal || false }); const [, setModal] = modalState; const openModal = useCallback( (options = {}) => { setModal({ visible: true, ...options }); }, [setModal], ); const openModalConnect = useCallback(() => { openModal({ component: "connect", }); }, [openModal]); const loginRequest = profileData.selectOneUser.oneUserLoginRequest; useEffect(() => { if (loginRequest) { openModal({ component: "connect", }); } }, [loginRequest, openModal, openAccountModal]); useEffect(() => { if (openAccountModal) { openModalConnect(); } }, [openAccountModal, openModalConnect]); const logoutUser = async () => { await authActions.logout(); }; const openModalDestroy = async () => { openModal({ component: "destroy", }); }; return ( Gestion du compte {(isConnected || isDev) && ( )} ); }