diff --git a/web/app/ai-chat/page.js b/web/app/ai-chat/page.js index 883e6094..8a40af41 100644 --- a/web/app/ai-chat/page.js +++ b/web/app/ai-chat/page.js @@ -529,7 +529,10 @@ function AiChatPage() { {conv.status}
- {conv.mode === "HUMAN" ? "👤 Live" : "🤖 AI"} + + + {conv.mode === "HUMAN" ? "Live" : "AI"} + {conv.createdAt ? new Date(conv.createdAt).toLocaleDateString() : ""}
@@ -552,7 +555,10 @@ function AiChatPage() { CLOSED
- {conv.mode === "HUMAN" ? "👤 Live" : "🤖 AI"} + + + {conv.mode === "HUMAN" ? "Live" : "AI"} + {conv.createdAt ? new Date(conv.createdAt).toLocaleDateString() : ""}
@@ -567,7 +573,7 @@ function AiChatPage() {
{!conversation ? (
-
🐾
+
assistant

No active conversation

Start a new conversation with the AI assistant.

{error &&
{error}
} @@ -582,7 +588,7 @@ function AiChatPage() {
-
{isEscalated ? "👤" : "🐾"}
+
{isEscalated ? "👤" : assistant}
{isEscalated ? (hasStaff ? "Support Agent" : "Leon's Pet Store Support") : "Leon's Pet Assistant"} @@ -617,7 +623,7 @@ function AiChatPage() {
{messages.length === 0 && (
-
{isEscalated ? "💬" : "🐾"}
+
{isEscalated ? "💬" : assistant}

{isEscalated ? "Your conversation has started. A support agent will join soon." : `Hello${user.fullName ? `, ${user.fullName.split(" ")[0]}` : ""}! I'm your pet care assistant. Ask me about pet recommendations, care tips, supplies, or anything pet-related!`}

@@ -634,7 +640,7 @@ function AiChatPage() { ...(isOwn ? s.messageRowUser : s.messageRowAgent), }} > - {!isOwn &&
{isEscalated ? "👤" : "🐾"}
} + {!isOwn &&
{isEscalated ? "👤" : assistant}
}
-
🐾
+
assistant
@@ -930,6 +936,7 @@ const s = { height: 44, borderRadius: "50%", background: "linear-gradient(135deg, #444, #666)", + border: "3px solid #666", display: "flex", alignItems: "center", justifyContent: "center", @@ -1113,6 +1120,7 @@ const s = { height: 30, borderRadius: "50%", background: "linear-gradient(135deg, #444, #666)", + border: "3px solid #666", display: "flex", alignItems: "center", justifyContent: "center", diff --git a/web/components/FloatingChat.js b/web/components/FloatingChat.js index 4e54546f..741db28a 100644 --- a/web/components/FloatingChat.js +++ b/web/components/FloatingChat.js @@ -20,6 +20,7 @@ export default function FloatingChat() { } = useChatWidget(); const [input, setInput] = useState(""); + const [fabHovered, setFabHovered] = useState(false); const messagesEndRef = useRef(null); const prevAiLengthRef = useRef(0); const prevLiveLengthRef = useRef(0); @@ -65,8 +66,15 @@ const prevLiveLengthRef = useRef(0); return ( <> {/* Floating toggle button */} - @@ -77,7 +85,7 @@ const prevLiveLengthRef = useRef(0); {/* Header */}
-
🐾
+
assistant
Leon's Assistant
@@ -99,7 +107,7 @@ const prevLiveLengthRef = useRef(0); {/* Guest */} {!user && (
- 🐾 + assistant

Log in to chat with our pet assistant!

@@ -129,7 +137,7 @@ const prevLiveLengthRef = useRef(0); {!convsLoading && conversations.length === 0 && (
- 💬 + chat

No conversations yet.
Start a live chat above.

)} @@ -223,7 +231,7 @@ const prevLiveLengthRef = useRef(0); return (
{!isUser && ( -
{msg.senderRole === "BOT" ? "🐾" : "👤"}
+
assistant
)}
{!isUser && ( @@ -282,7 +290,7 @@ const prevLiveLengthRef = useRef(0);
{aiMessages.length === 0 && (
- 🐾 + assistant

Hi{user?.fullName ? `, ${user.fullName.split(" ")[0]}` : ""}!
Ask me anything about pets. @@ -292,7 +300,7 @@ const prevLiveLengthRef = useRef(0); {aiMessages.map((msg) => (

- {msg.role === "assistant" &&
🐾
} + {msg.role === "assistant" &&
assistant
}
{msg.content.split("\n").map((line, i, arr) => ( {line}{i < arr.length - 1 &&
}
@@ -308,7 +316,7 @@ const prevLiveLengthRef = useRef(0); {aiSending && (
-
🐾
+
assistant
diff --git a/web/components/Navigation.js b/web/components/Navigation.js index a9a2af98..2112a6a7 100644 --- a/web/components/Navigation.js +++ b/web/components/Navigation.js @@ -14,8 +14,11 @@ const cartBadgeCls = "absolute -top-1 -right-1.5 bg-[#e53935] text-white rounded function CartIcon({ itemCount, onClick }) { return ( - - 🛒 + + + + + {itemCount > 0 && ( {itemCount > 99 ? "99+" : itemCount} )} diff --git a/web/public/bootstrap/cart-fill.svg b/web/public/bootstrap/cart-fill.svg new file mode 100644 index 00000000..974fc295 --- /dev/null +++ b/web/public/bootstrap/cart-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/public/bootstrap/cart.svg b/web/public/bootstrap/cart.svg new file mode 100644 index 00000000..0e0f96ce --- /dev/null +++ b/web/public/bootstrap/cart.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/public/bootstrap/chat-fill.svg b/web/public/bootstrap/chat-fill.svg new file mode 100644 index 00000000..c8969390 --- /dev/null +++ b/web/public/bootstrap/chat-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/public/bootstrap/chat.svg b/web/public/bootstrap/chat.svg new file mode 100644 index 00000000..487d142a --- /dev/null +++ b/web/public/bootstrap/chat.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/public/bootstrap/person-circle.svg b/web/public/bootstrap/person-circle.svg new file mode 100644 index 00000000..a75f25fc --- /dev/null +++ b/web/public/bootstrap/person-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/web/public/bootstrap/person-fill.svg b/web/public/bootstrap/person-fill.svg new file mode 100644 index 00000000..46d1a75f --- /dev/null +++ b/web/public/bootstrap/person-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/public/bootstrap/robot.svg b/web/public/bootstrap/robot.svg new file mode 100644 index 00000000..a2242026 --- /dev/null +++ b/web/public/bootstrap/robot.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file