From 4925adc07b71b05e0dae3acc937b52239036b92c Mon Sep 17 00:00:00 2001 From: chyoo Date: Thu, 9 Jul 2026 15:25:21 +0900 Subject: [PATCH] modify avatar url.. --- src/lib/chat.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/lib/chat.ts b/src/lib/chat.ts index 012b4bf..06ed09d 100644 --- a/src/lib/chat.ts +++ b/src/lib/chat.ts @@ -23,12 +23,27 @@ export type InstructorChatThread = { }; const CHAT_API_BASE_URL = (import.meta.env.VITE_API_BASE_URL ?? 'https://workspace.autonomystudio.net/lms-api/api').replace(/\/+$/, ''); +const AUTH_BASE_URL = (import.meta.env.VITE_ATNMY_AUTH_URL ?? import.meta.env.VITE_ADS_IDE_AUTH_URL ?? 'https://auth.autonomystudio.net').replace(/\/+$/, ''); export const CHAT_SOCKET_BASE_URL = CHAT_API_BASE_URL.replace(/\/api$/, ''); const CHAT_SOCKET_URL = new URL(CHAT_SOCKET_BASE_URL || '/', window.location.origin); const CHAT_SOCKET_PREFIX = CHAT_SOCKET_URL.pathname.replace(/\/+$/, ''); export const CHAT_SOCKET_ORIGIN = CHAT_SOCKET_URL.origin; export const CHAT_SOCKET_PATH = `${CHAT_SOCKET_PREFIX}/socket.io`; +function normalizeAvatarUrl(value: unknown): string | null { + if (typeof value !== 'string' || !value.trim()) return null; + + try { + const url = new URL(value); + if (url.hostname === 'studio-auth-be.studio-system.svc.cluster.local') { + return `${AUTH_BASE_URL}${url.pathname}${url.search}`; + } + return value; + } catch { + return value; + } +} + type ChatThreadsPayload = { threads?: unknown[]; data?: unknown[]; @@ -108,7 +123,7 @@ function normalizeThread(raw: unknown): InstructorChatThread | null { id: String(item.id ?? item.threadId ?? title), title: String(title), studentName: String(studentName), - studentAvatarUrl: typeof item.studentAvatarUrl === 'string' ? item.studentAvatarUrl : null, + studentAvatarUrl: normalizeAvatarUrl(item.studentAvatarUrl), groupName: item.group?.name ?? item.groupName ?? item.metadata?.groupName, week: weekValue ?? item.weekId ?? item.metadata?.week, status: String(item.status ?? 'WAITING_INSTRUCTOR'), @@ -126,7 +141,7 @@ function normalizeMessage(raw: unknown): InstructorChatMessage | null { id: String(item.id ?? `${item.senderType ?? 'MESSAGE'}-${item.createdAt ?? item.content ?? 'unknown'}`), senderType: String(item.senderType ?? 'STUDENT'), senderName: item.senderName ?? item.sender?.name, - senderAvatarUrl: typeof item.senderAvatarUrl === 'string' ? item.senderAvatarUrl : null, + senderAvatarUrl: normalizeAvatarUrl(item.senderAvatarUrl), content: String(item.content ?? ''), createdAt: item.createdAt, };