{aiCoders.map((c, i) => (
- {c.email}
+ {c.name}
{Math.floor(c.aiTotalSeconds / 3600)} hrs
))}
diff --git a/app/components/admin/Widgets/TopInsights.tsx b/app/components/admin/Widgets/TopInsights.tsx
index c8a5ed9..078a7a5 100644
--- a/app/components/admin/Widgets/TopInsights.tsx
+++ b/app/components/admin/Widgets/TopInsights.tsx
@@ -11,7 +11,7 @@ export default function TopInsights({
}) {
return (
-
+
Total Users
{totalUsers}
@@ -19,7 +19,7 @@ export default function TopInsights({
-
+
Total Coding Time
{Math.floor(totalSeconds / 3600)} hrs
@@ -29,7 +29,7 @@ export default function TopInsights({
-
+
Total Threads
{totalThreads}
@@ -37,7 +37,7 @@ export default function TopInsights({
-
+
Total Messages
{totalMessages}
diff --git a/app/components/admin/Widgets/UserLists.tsx b/app/components/admin/Widgets/UserLists.tsx
index 288370c..d10e179 100644
--- a/app/components/admin/Widgets/UserLists.tsx
+++ b/app/components/admin/Widgets/UserLists.tsx
@@ -1,6 +1,10 @@
export interface UserStat {
- user_id: string | null;
- email: string | null;
+ user_id: string;
+ name: string;
+ email: string;
+ role: string;
+ email_verified: string;
+ wakatime_api_key: string;
total_seconds: number | null;
categories: unknown;
}
@@ -13,29 +17,32 @@ export default function UserLists({
loading: boolean;
}) {
return (
-
+
-
+
- | User |
+ Name |
Email |
Total Time (hrs)
|
+ Role |
+ Verified |
+ WakaTime |
Action |
{users.map((u, i) => (
-
- | {u.user_id || "N/A"} |
+
+ | {u.name || "N/A"} |
{u.email || "N/A"} |
{Math.floor((u.total_seconds || 0) / 3600)}
|
+ {u.role || "N/A"} |
+ {u.email_verified} |
+ {u.wakatime_api_key} |
|
))}
diff --git a/app/components/auth/form/LoginForm.tsx b/app/components/auth/form/LoginForm.tsx
index 1a0780b..915a52a 100644
--- a/app/components/auth/form/LoginForm.tsx
+++ b/app/components/auth/form/LoginForm.tsx
@@ -78,7 +78,6 @@ export default function LoginForm() {
toast.promise(loginPromise, {
pending: "Logging in...",
- success: "Login successful! Redirecting...",
error: {
render({ data }) {
const err = data as Error;
diff --git a/app/components/chat/Messages.tsx b/app/components/chat/Messages.tsx
index 363236a..c88595f 100644
--- a/app/components/chat/Messages.tsx
+++ b/app/components/chat/Messages.tsx
@@ -150,7 +150,6 @@ function MessageRow({
);
const senderRow = conversationRow?.users.find((u) => u.id === msg.sender_id);
- const senderInitial = senderRow?.email?.[0]?.toUpperCase() ?? "?";
const senderName = senderRow?.email?.split("@")?.[0] ?? "";
const canOpenPrivateChat =
!isSelf && conversationRow?.type === "global" && !!senderRow?.email;
@@ -160,9 +159,6 @@ function MessageRow({
const text = msg.text ?? "";
const hasMedia = !!msg.attachments?.length;
const isLongMessage = hasMedia || text.length >= 120 || text.includes("\n");
- const avatarTranslateClass = isLongMessage
- ? "-translate-y-[4.5px]"
- : "-translate-y-[4px]";
const normalizedAttachments = (msg.attachments ?? [])
.map(normalizeAttachment)
@@ -184,31 +180,6 @@ function MessageRow({
isSelf ? "justify-end" : "justify-start"
}`}
>
- {!isSelf && (
- {
- if (event.key !== "Enter" && event.key !== " ") return;
- event.preventDefault();
- handleProfileClick();
- }}
- title={canOpenPrivateChat ? "Start private chat" : undefined}
- className={`flex-shrink-0 ${avatarTranslateClass} w-8 h-8 rounded-full bg-neutral-700 border border-gray-200 flex items-center justify-center aspect-square overflow-hidden ${
- showHeader ? "" : "invisible"
- } ${
- canOpenPrivateChat
- ? "cursor-pointer hover:border-blue-400/60 hover:bg-neutral-700/80"
- : ""
- }`}
- >
-
- {senderInitial}
-
-
- )}
-