This commit is contained in:
NotII
2025-03-03 20:44:10 +00:00
parent cd35d34a24
commit 5260978cb8
4 changed files with 19 additions and 6 deletions

View File

@@ -9,6 +9,7 @@ import { Avatar, AvatarFallback } from "@/components/ui/avatar";
import { formatDistanceToNow } from "date-fns"; import { formatDistanceToNow } from "date-fns";
import axios from "axios"; import axios from "axios";
import { toast } from "sonner"; import { toast } from "sonner";
import { getCookie } from "@/lib/client-utils";
interface Chat { interface Chat {
_id: string; _id: string;
@@ -36,12 +37,12 @@ export default function ChatList() {
useEffect(() => { useEffect(() => {
const fetchVendorData = async () => { const fetchVendorData = async () => {
try { try {
// Get vendor info from session storage or context // Get vendor info from cookies
const vendorId = sessionStorage.getItem("vendorId"); const vendorId = getCookie("vendorId");
if (!vendorId) { if (!vendorId) {
toast.error("You need to be logged in to view chats"); toast.error("You need to be logged in to view chats");
router.push("/login"); router.push("/auth/login");
return; return;
} }
@@ -68,7 +69,7 @@ export default function ChatList() {
setLoading(true); setLoading(true);
try { try {
const vendorId = sessionStorage.getItem("vendorId"); const vendorId = getCookie("vendorId");
// Fetch chats // Fetch chats
const chatsResponse = await axios.get(`/api/chats/vendor/${vendorId}`); const chatsResponse = await axios.get(`/api/chats/vendor/${vendorId}`);

View File

@@ -12,6 +12,7 @@ import {
DropdownMenuTrigger, DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"; } from "@/components/ui/dropdown-menu";
import axios from "axios"; import axios from "axios";
import { getCookie } from "@/lib/client-utils";
interface UnreadCounts { interface UnreadCounts {
totalUnread: number; totalUnread: number;
@@ -28,7 +29,7 @@ export default function ChatNotifications() {
useEffect(() => { useEffect(() => {
const fetchUnreadCounts = async () => { const fetchUnreadCounts = async () => {
try { try {
const vendorId = sessionStorage.getItem("vendorId"); const vendorId = getCookie("vendorId");
if (!vendorId) return; if (!vendorId) return;

View File

@@ -10,6 +10,7 @@ import { Textarea } from "@/components/ui/textarea";
import { ArrowLeft, Send, RefreshCw } from "lucide-react"; import { ArrowLeft, Send, RefreshCw } from "lucide-react";
import axios from "axios"; import axios from "axios";
import { toast } from "sonner"; import { toast } from "sonner";
import { getCookie } from "@/lib/client-utils";
export default function NewChatForm() { export default function NewChatForm() {
const router = useRouter(); const router = useRouter();
@@ -23,7 +24,7 @@ export default function NewChatForm() {
useEffect(() => { useEffect(() => {
const fetchVendorStores = async () => { const fetchVendorStores = async () => {
try { try {
const vendorId = sessionStorage.getItem("vendorId"); const vendorId = getCookie("vendorId");
if (!vendorId) { if (!vendorId) {
toast.error("You need to be logged in"); toast.error("You need to be logged in");

View File

@@ -27,3 +27,13 @@ export async function clientFetch(url: string, options: RequestInit = {}): Promi
throw error; throw error;
} }
} }
/**
* Get a cookie value by name
*/
export function getCookie(name: string): string | undefined {
return document.cookie
.split('; ')
.find(row => row.startsWith(`${name}=`))
?.split('=')[1];
}