- {/* {settings.scrollIndicator && messages.length > 0 && (
+ {settings.scrollIndicator && messages.length > 0 && (
@@ -88,4 +99,4 @@ const ChatArea = () => {
);
};
-export default ChatArea;
+export default memo(ChatArea);
diff --git a/src/components/loader.tsx b/src/components/loader.tsx
index 107eb5f..ea9dde1 100644
--- a/src/components/loader.tsx
+++ b/src/components/loader.tsx
@@ -1,19 +1,18 @@
-
const Loader = () => {
return (
diff --git a/src/components/message-input.tsx b/src/components/message-input.tsx
index 9934005..9ae676f 100644
--- a/src/components/message-input.tsx
+++ b/src/components/message-input.tsx
@@ -60,8 +60,7 @@ const MessageInput = ({ onSubmit, isSending }: Props) => {
placeholder="Write your message here..."
className="bg-muted/75"
minLength={1}
- max={160}
- maxLength={160}
+ maxLength={250}
required
disabled={isSending}
onChange={handleInputChange}
diff --git a/src/hooks/useAuth.ts b/src/hooks/useAuth.ts
index 30d2feb..ff1ec2c 100644
--- a/src/hooks/useAuth.ts
+++ b/src/hooks/useAuth.ts
@@ -4,6 +4,7 @@ import { collection, doc, getDocs, query, serverTimestamp, setDoc, where } from
import { ref, set, onDisconnect, serverTimestamp as serverTimestampRtdb } from 'firebase/database';
import { User } from '../types';
import { db, rtdb } from '../lib/firebase';
+import toast from 'react-hot-toast';
const COOKIE_EXPIRY_DAYS = 30;
@@ -12,7 +13,11 @@ const getUserAgent = () => encodeURIComponent(navigator.userAgent);
const fetchCountryCode = async () => {
try {
const response = await fetch(`https://ipinfo.io/json?token=${import.meta.env.VITE_IPINFO_TOKEN}`);
- if (!response.ok) throw new Error('Failed to fetch country info');
+
+ if (!response.ok) {
+ toast.error('Unable to determine your location. This might be due to browser settings or permissions. Please try again');
+ throw new Error('Failed to fetch country info');
+ }
const data: { country: string } = await response.json();
return data.country as User['country'];
@@ -154,4 +159,4 @@ const useAuth = () => {
return { user, isLoading, isInitializing, error, initializeUser, logout };
};
-export default useAuth;
+export default useAuth;
\ No newline at end of file
diff --git a/src/main.tsx b/src/main.tsx
index b66cefb..e04b6b4 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -4,7 +4,6 @@ import Loader from './components/loader.tsx';
import { createRoot } from 'react-dom/client';
import { lazy, StrictMode, Suspense } from 'react';
import { SettingsProvider } from './context/settings-context.tsx';
-import { AnimatePresence } from 'motion/react';
import { Toaster } from 'react-hot-toast';
import { Analytics } from '@vercel/analytics/react';
import { SpeedInsights } from '@vercel/speed-insights/react';
@@ -22,13 +21,10 @@ createRoot(document.getElementById('root')!).render(
}>
-
-
-
-
-
+
+
-);
+);
\ No newline at end of file
diff --git a/src/pages/home.tsx b/src/pages/home.tsx
index 0c9e0d4..bf6e6ed 100644
--- a/src/pages/home.tsx
+++ b/src/pages/home.tsx
@@ -31,7 +31,15 @@ const Home = ({}: Props) => {
Enter your name to join the chat
-
+