diff --git a/jam-ui/src/components/client/chat/JKChatEmptyState.js b/jam-ui/src/components/client/chat/JKChatEmptyState.js
new file mode 100644
index 000000000..8d8894c8d
--- /dev/null
+++ b/jam-ui/src/components/client/chat/JKChatEmptyState.js
@@ -0,0 +1,31 @@
+import React from 'react';
+
+/**
+ * JKChatEmptyState - Empty state component for chat
+ *
+ * Displays a friendly message when there are no messages in the channel yet.
+ * Used when messagesByChannel[channel] is empty.
+ */
+const JKChatEmptyState = () => {
+ return (
+
+
💬
+
+ No messages yet
+
+
+ Be the first to send a message in this chat!
+
+
+ );
+};
+
+export default JKChatEmptyState;
diff --git a/jam-ui/src/components/client/chat/JKChatLoadingSpinner.js b/jam-ui/src/components/client/chat/JKChatLoadingSpinner.js
new file mode 100644
index 000000000..63193b3a3
--- /dev/null
+++ b/jam-ui/src/components/client/chat/JKChatLoadingSpinner.js
@@ -0,0 +1,26 @@
+import React from 'react';
+import { Spinner } from 'reactstrap';
+
+/**
+ * JKChatLoadingSpinner - Loading state component for chat
+ *
+ * Displays a spinner with "Loading messages..." text while fetching chat history.
+ * Used when fetchStatus is 'loading'.
+ */
+const JKChatLoadingSpinner = () => {
+ return (
+
+
+
Loading messages...
+
+ );
+};
+
+export default JKChatLoadingSpinner;