import { useState } from "react"; import { View, Text } from "react-native"; import { Dialog, IconButton } from "react-native-paper"; import { DialogContainer } from "@/components/ui/DialogContainer"; import { User } from "@/store/models/User.model"; import { Button } from "@/components/ui/Button"; import { LoadingSpinner } from "@/components/ui/LoadingSpinner"; interface LockUserModalProps { visible: boolean; user: User | null; onDismiss: () => void; onLock: (user: User) => void; isLoading?: boolean; } export const LockUserModal = ({ visible, user, onDismiss, onLock, isLoading = false, }: LockUserModalProps) => { const [error, setError] = useState(null); if (!user) return null; const action = user.isLocked ? "unlock" : "lock"; const actionTitle = action.charAt(0).toUpperCase() + action.slice(1); const handleLock = () => { try { setError(null); onLock(user); } catch (err) { setError(`Failed to ${action} user. Please try again.`); console.error(`Error in UserLockModal (${action}):`, err); } }; return ( {actionTitle} User Are you sure you want to {action} {user.firstName} {user.lastName}? {error && {error}} {isLoading && ( )} ); };