import { View, Text } from "react-native"; import { User } from "@/store/models/User.model"; import { InfoRow } from "./InfoRow"; import { useAppSelector } from "@/store/hooks"; import { selectIsMobile } from "@/store/screen/screenSizeSlice"; import { useGetUserLogsQuery } from "@/store/api/usersApi"; import { formatDate, formatTime } from "@/utils/dateUtils"; import { RiskIndicator } from "@/components/ui/RiskIndicator"; import { SizeEnum } from "@/constants/sizeEnum"; import { RiskEnum, RiskLabels } from "@/constants/riskEnum"; import { SecurityTypeLabels } from "@/constants/securityTypeEnum"; interface PersonalMetricsProps { user: User; } export const PersonalMetrics = ({ user }: PersonalMetricsProps) => { const isMobile = useAppSelector(selectIsMobile); const { data: logsData, isLoading: logsLoading, isError: logsError, } = useGetUserLogsQuery( { page: 1, limit: 1, search: user.email }, { skip: !user?.email } ); const lastLogItem = logsData?.items?.[0]; const lastLoginAt = lastLogItem?.lastLoginAt; const activity = lastLogItem?.activity; const lastLoginDisplay = logsLoading ? "Loading..." : logsError ? "-" : lastLoginAt ? `${formatDate(lastLoginAt)} ${formatTime(lastLoginAt)}` : "-"; const lastPasswordChangeDisplay = logsLoading ? "Loading..." : logsError ? "-" : activity === "Password reset" && lastLoginAt ? `${formatDate(lastLoginAt)} ${formatTime(lastLoginAt)}` : "-"; return ( {user.riskStatus && ( {user.riskStatus === RiskEnum.NO_RISK ? RiskLabels[user.riskStatus] : RiskLabels[user.riskStatus].split(" ")[0]} } /> )} ); };