import { Platform, StyleSheet } from "react-native"; import React, { useState } from "react"; import { MenuView } from "@react-native-menu/menu"; import { Dialog, Text, View, Button } from "react-native-ui-lib"; import MenuDotsIcon from "@/assets/svgs/MenuDotsIcon"; import { UserProfile } from "@/hooks/firebase/types/profileTypes"; import { useRemoveSubUser } from "@/hooks/firebase/useRemoveSubUser"; import UpdateUserDialog from "@/components/pages/settings/user_settings_views/UpdateUserDialog"; const UserOptions = ({ user }: { user: UserProfile }) => { const [visible, setVisible] = useState(false); const { mutateAsync: removeSubUser } = useRemoveSubUser(); const [updateUserDialogOpen, setUpdateUserDialogOpen] = useState(false); const handleDeleteUser = async () => { try { if (user.uid) await removeSubUser(user.uid); } catch (error) { console.error(error); } finally { setVisible(false); } }; const handleOpenUpdateDialog = () => { setUpdateUserDialogOpen(true); } const handleCloseUpdateDialog = () => { setUpdateUserDialogOpen(false); } const menuOptions = [ { id: "edit", title: "Edit User", onPress: () => console.log("Edit User here"), image: Platform.select({ ios: "pencil.and.ellipsis.rectangle", android: "ic_menu_edit", }), imageColor: "#7300d4", titleColor: "#7300d4", }, { id: "delete", title: "Delete User", attributes: { destructive: true, }, image: Platform.select({ ios: "trash", android: "ic_menu_delete", }), }, ]; return ( <> { switch (nativeEvent.event) { case "edit": handleOpenUpdateDialog(); break; case "delete": setTimeout(() => setVisible(true), 300); break; default: break; } }} actions={menuOptions} shouldOpenOnLongPress={false} > setVisible(false)} > Are you sure? This action will delete the {user.firstName}'s profile. {updateUserDialogOpen && } ); }; const styles = StyleSheet.create({ menu: { padding: 5, }, confirmBtn: { backgroundColor: "#ff1637", }, cancelBtn: { backgroundColor: "white", }, dialog: { backgroundColor: "white", paddingHorizontal: 25, paddingTop: 25, paddingBottom: 17, borderRadius: 20, }, title: { fontFamily: "Manrope_600SemiBold", fontSize: 22, marginBottom: 5, }, text: { fontFamily: "PlusJakartaSans_400Regular", fontSize: 16, marginBottom: 0, }, }); export default UserOptions;