Files
AthenaFE/components/features/logs/MobileLogsTable.tsx
T
2025-11-05 20:11:34 +01:00

42 lines
1.4 KiB
TypeScript

import { ScrollView, Text, View } from "react-native";
import { UserLoginLog } from "@/store/api/usersApi";
import { formatDate, formatTimeWithSeconds } from "@/utils/dateUtils";
import { reasonLabel } from "@/utils/loginUtils";
interface MobileLogsTableProps {
logs: UserLoginLog[];
}
export const MobileLogsTable = ({ logs }: MobileLogsTableProps) => {
return (
<View className="flex-1">
<ScrollView
className="flex-1"
contentContainerStyle={{ paddingBottom: 16 }}
>
{logs.map((log) => (
<View key={log.id} className="mb-3 p-4 bg-white rounded-md shadow-sm">
<Text className="text-base font-semibold">
{log.name}{" "}
<Text className="font-normal text-gray-600">({log.email})</Text>
</Text>
<Text className="text-sm text-gray-700 mt-1">
Time: {formatDate(log.lastLoginAt)} {formatTimeWithSeconds(log.lastLoginAt)}
</Text>
<Text
className="text-sm mt-1"
style={{ color: log.status === "FAILURE" ? "#F83434" : "#22C927" }}
>
Login activity: {log.activity}
{log.status === "FAILURE" && reasonLabel(log.failureReason)
? ` - ${reasonLabel(log.failureReason)}`
: ""}
</Text>
</View>
))}
</ScrollView>
</View>
);
};