Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision 51add1c0def4e413e64f210d72cedd8ba28b0458)
+++ backend/controllers/forumController.js	(revision de90604457c8e9d85097a1fed23eac0252f43d3a)
@@ -1,23 +1,23 @@
-const prisma = require('../lib/prisma');
-const ForumPost = require('../models/ForumPost');
-const Comment = require('../models/Comment');
-const filter = require('leo-profanity');
-const mkProfanity = require('../filters/macedonianProfanity');
+const prisma = require("../lib/prisma");
+const ForumPost = require("../models/ForumPost");
+const Comment = require("../models/Comment");
+const filter = require("leo-profanity");
+const mkProfanity = require("../filters/macedonianProfanity");
 filter.add(mkProfanity);
-const safeWords = require('../filters/safeWords');
-const { analyzePostContent } = require('../ai/processRequestAi');
-const { createReviewPost } = require('./reviewController');
-const verifyModeratorStatus = require('../services/checkModeratorStatus');
-const { resetPostCheckCounter } = require('../services/forumCountersReset');
+const safeWords = require("../filters/safeWords");
+const { analyzePostContent } = require("../ai/processRequestAi");
+const { createReviewPost } = require("./reviewController");
+const verifyModeratorStatus = require("../services/checkModeratorStatus");
+const { resetPostCheckCounter } = require("../services/forumCountersReset");
 const {
   sendDeletedFromForumEmail,
   sendDeletedCommentEmail,
   sendCommentedNotificationEmail,
-} = require('../services/emailService');
+} = require("../services/emailService");
 const createForumPost = async (req, res) => {
   const { title, content, authorId, authorName, topic, challengeId } = req.body;
   if (!title || !content || !authorId || !authorName || !topic) {
     return res.status(400).json({
-      error: 'Title, content, authorId, and authorName are required',
+      error: "Title, content, authorId, and authorName are required",
     });
   }
@@ -29,5 +29,5 @@
     const postCounter = user.postCounter;
     const postCheckCounter = user.postCheckCounter;
-    console.log('Post check:', postCheckCounter);
+    console.log("Post check:", postCheckCounter);
 
     if (postCounter >= -11) {
@@ -46,9 +46,9 @@
       if (isProfane) {
         return res.status(400).json({
-          error: 'Content contains inappropriate language',
+          error: "Content contains inappropriate language",
         });
       } else if (filter.check(post.content)) {
         return res.status(400).json({
-          error: 'Content contains inappropriate language',
+          error: "Content contains inappropriate language",
         });
       } else if (post.content.length > 200) {
@@ -58,9 +58,9 @@
           return;
         } catch (reviewError) {
-          console.error('Error submitting post for review:', reviewError);
+          console.error("Error submitting post for review:", reviewError);
           return res.status(500).json({
             error:
               reviewError.message ||
-              'Failed to submit post for review due to an internal error.',
+              "Failed to submit post for review due to an internal error.",
           });
         }
@@ -68,6 +68,6 @@
         return res.status(202).json({
           message:
-            'Would you like to send this post to moderator for approval?',
-          reason: 'USER_FLAGGED',
+            "Would you like to send this post to moderator for approval?",
+          reason: "USER_FLAGGED",
         });
       } else if (
@@ -80,6 +80,6 @@
         try {
           const aiResponse = await analyzePostContent(post.title, post.content);
-          if (aiResponse.aiResponse === 'INAPPROPRIATE') {
-            console.log('AI analysis says INAPPROPRIATE:', aiResponse.reason);
+          if (aiResponse.aiResponse === "INAPPROPRIATE") {
+            console.log("AI analysis says INAPPROPRIATE:", aiResponse.reason);
             await prisma.users.update({
               where: { id: authorId },
@@ -89,11 +89,11 @@
             });
             return res.status(400).json({
-              error: 'Content is not appropriate for the forum',
+              error: "Content is not appropriate for the forum",
             });
           }
         } catch (error) {
-          console.error('AI analysis error:', error);
+          console.error("AI analysis error:", error);
           return res.status(500).json({
-            error: 'AI analysis failed, please try again later',
+            error: "AI analysis failed, please try again later",
           });
         }
@@ -118,15 +118,15 @@
       await resetPostCheckCounter(authorId);
       res.status(201).json({
-        message: 'Forum post created successfully',
+        message: "Forum post created successfully",
         post: savedPost,
       });
     } else {
       return res.status(400).json({
-        error: 'You have reached the daily limit for creating posts.',
+        error: "You have reached the daily limit for creating posts.",
       });
     }
   } catch (err) {
-    console.error('Server error:', err);
-    res.status(500).json({ error: 'Internal server error' });
+    console.error("Server error:", err);
+    res.status(500).json({ error: "Internal server error" });
   }
 };
@@ -179,5 +179,5 @@
     const filters = [];
     let orderBy = [];
-    if (topic && topic !== 'all') {
+    if (topic && topic !== "all") {
       filters.push({ topic });
     }
@@ -191,11 +191,11 @@
       }
     }
-    if (sort === 'past-week' || sort === 'past-month' || sort === 'past-year') {
+    if (sort === "past-week" || sort === "past-month" || sort === "past-year") {
       const fromDate = new Date();
-      if (sort === 'past-week') {
+      if (sort === "past-week") {
         fromDate.setDate(fromDate.getDate() - 7);
-      } else if (sort === 'past-month') {
+      } else if (sort === "past-month") {
         fromDate.setDate(fromDate.getDate() - 30);
-      } else if (sort === 'past-year') {
+      } else if (sort === "past-year") {
         fromDate.setDate(fromDate.getDate() - 365);
       }
@@ -206,17 +206,17 @@
       });
     } else if (!commentSort) {
-      orderBy.push({ date_created: 'desc' });
+      orderBy.push({ date_created: "desc" });
     }
     if (search) {
-      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, '-');
+      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, "-");
       filters.push({
         OR: [
-          { title: { contains: search, mode: 'insensitive' } },
-          { content: { contains: search, mode: 'insensitive' } },
+          { title: { contains: search, mode: "insensitive" } },
+          { content: { contains: search, mode: "insensitive" } },
           {
             challenges: {
               title: {
                 contains: challengeSearchTerm,
-                mode: 'insensitive',
+                mode: "insensitive",
               },
             },
@@ -229,11 +229,11 @@
     const whereCondition = filters.length > 0 ? { AND: filters } : {};
 
-    if (commentSort === 'most-popular') {
-      orderBy.push({ comment_count: 'desc' });
-
-      orderBy.push({ date_created: 'desc' });
-    } else if (commentSort === 'least-popular') {
-      orderBy.push({ comment_count: 'asc' });
-      orderBy.push({ date_created: 'desc' });
+    if (commentSort === "most-popular") {
+      orderBy.push({ comment_count: "desc" });
+
+      orderBy.push({ date_created: "desc" });
+    } else if (commentSort === "least-popular") {
+      orderBy.push({ comment_count: "asc" });
+      orderBy.push({ date_created: "desc" });
     }
 
@@ -263,5 +263,5 @@
     }));
     if (
-      (sort === 'past-week' || sort === 'past-month' || sort == 'past-year') &&
+      (sort === "past-week" || sort === "past-month" || sort == "past-year") &&
       !commentSort
     ) {
@@ -270,18 +270,18 @@
 
     // Set cache control headers to prevent caching
-    res.set('Cache-Control', 'no-store, no-cache, must-revalidate, private');
-    res.set('Pragma', 'no-cache');
-    res.set('Expires', '0');
+    res.set("Cache-Control", "no-store, no-cache, must-revalidate, private");
+    res.set("Pragma", "no-cache");
+    res.set("Expires", "0");
 
     // Add response information to help debug the filtering
-    res.set('X-Total-Posts', forumPosts.length.toString());
-    res.set('X-Filter-Topic', topic || 'none');
-    res.set('X-Filter-Applied', JSON.stringify(whereCondition));
-    res.set('X-Sort-Order', JSON.stringify(orderBy));
+    res.set("X-Total-Posts", forumPosts.length.toString());
+    res.set("X-Filter-Topic", topic || "none");
+    res.set("X-Filter-Applied", JSON.stringify(whereCondition));
+    res.set("X-Sort-Order", JSON.stringify(orderBy));
 
     res.status(200).json({ forumPosts, totalCount });
   } catch (err) {
-    console.error('Server error:', err);
-    res.status(500).json({ error: 'Internal server error' });
+    console.error("Server error:", err);
+    res.status(500).json({ error: "Internal server error" });
   }
 };
@@ -308,5 +308,5 @@
     filters.push({ author_id: userId });
 
-    if (topic && topic !== 'all') {
+    if (topic && topic !== "all") {
       filters.push({ topic: topic.trim() });
     }
@@ -317,16 +317,25 @@
     }
 
-    if (dateSort === 'newest') {
-      orderBy.push({ date_created: 'desc' });
+    if (dateSort === "newest") {
+      orderBy.push({ date_created: "desc" });
     } else {
-      orderBy.push({ date_created: 'asc' });
+      orderBy.push({ date_created: "asc" });
     }
 
     if (searchText && searchText.trim()) {
       const search = searchText.trim();
+      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, "-");
       filters.push({
         OR: [
-          { title: { contains: search, mode: 'insensitive' } },
-          { content: { contains: search, mode: 'insensitive' } },
+          { title: { contains: search, mode: "insensitive" } },
+          { content: { contains: search, mode: "insensitive" } },
+          {
+            challenges: {
+              title: {
+                contains: challengeSearchTerm,
+                mode: "insensitive",
+              },
+            },
+          },
         ],
       });
@@ -335,13 +344,13 @@
     const whereCondition = filters.length > 0 ? { AND: filters } : {};
 
-    if (commentSort && commentSort !== 'none') {
-      if (commentSort === 'most-popular') {
-        orderBy.push({ comment_count: 'desc' });
+    if (commentSort && commentSort !== "none") {
+      if (commentSort === "most-popular") {
+        orderBy.push({ comment_count: "desc" });
       } else {
-        orderBy.push({ comment_count: 'asc' });
+        orderBy.push({ comment_count: "asc" });
       }
-      orderBy.push({ date_created: 'desc' });
+      orderBy.push({ date_created: "desc" });
     } else {
-      orderBy.push({ date_created: 'desc' });
+      orderBy.push({ date_created: "desc" });
     }
 
@@ -385,6 +394,6 @@
     });
   } catch (err) {
-    console.error('Error fetching posts by user:', err);
-    res.status(500).json({ error: 'Failed to fetch user posts' });
+    console.error("Error fetching posts by user:", err);
+    res.status(500).json({ error: "Failed to fetch user posts" });
   }
 };
@@ -404,5 +413,5 @@
 
     if (!post) {
-      return res.status(404).json({ error: 'Forum post not found' });
+      return res.status(404).json({ error: "Forum post not found" });
     }
 
@@ -412,5 +421,5 @@
     if (!isAuthor && !isUserModerator) {
       return res.status(403).json({
-        error: 'You do not have permission to delete this post',
+        error: "You do not have permission to delete this post",
       });
     }
@@ -431,9 +440,9 @@
     return res.status(204).send();
   } catch (err) {
-    if (err.code === 'P2025') {
-      return res.status(404).json({ error: 'Forum post not found' });
-    }
-    console.error('Server error:', err);
-    res.status(500).json({ error: 'Internal server error' });
+    if (err.code === "P2025") {
+      return res.status(404).json({ error: "Forum post not found" });
+    }
+    console.error("Server error:", err);
+    res.status(500).json({ error: "Internal server error" });
   }
 };
@@ -445,5 +454,5 @@
   if (!post_id || !content || !authorId || !authorName) {
     return res.status(400).json({
-      error: 'post_id, content, authorId, and authorName are required',
+      error: "post_id, content, authorId, and authorName are required",
     });
   }
@@ -458,7 +467,7 @@
     const profane = filter.check(comment.content);
     if (profane) {
-      console.log('not safe words or profanity detected!');
+      console.log("not safe words or profanity detected!");
       return res.status(400).json({
-        error: 'Content contains inappropriate language or is not on topic',
+        error: "Content contains inappropriate language or is not on topic",
       });
     }
@@ -491,10 +500,10 @@
     }
     res.status(201).json({
-      message: 'Comment created successfully',
+      message: "Comment created successfully",
       comment: savedComment,
     });
   } catch (err) {
-    console.error('Server error:', err);
-    res.status(500).json({ error: 'Internal server error' });
+    console.error("Server error:", err);
+    res.status(500).json({ error: "Internal server error" });
   }
 };
@@ -506,5 +515,5 @@
     return res
       .status(400)
-      .json({ error: 'post_id query parameter is required' });
+      .json({ error: "post_id query parameter is required" });
   }
 
@@ -515,5 +524,5 @@
       },
       orderBy: {
-        dateCreated: 'desc',
+        dateCreated: "desc",
       },
     });
@@ -532,6 +541,6 @@
     res.status(200).json(comments);
   } catch (err) {
-    console.error('Server error:', err);
-    res.status(500).json({ error: 'Internal server error' });
+    console.error("Server error:", err);
+    res.status(500).json({ error: "Internal server error" });
   }
 };
@@ -547,5 +556,5 @@
 
     if (!comment) {
-      return res.status(404).json({ error: 'Comment not found' });
+      return res.status(404).json({ error: "Comment not found" });
     }
 
@@ -558,5 +567,5 @@
       return res
         .status(404)
-        .json({ error: 'Post associated with comment not found' });
+        .json({ error: "Post associated with comment not found" });
     }
 
@@ -566,5 +575,5 @@
     if (!isUserModerator && !isAuthor) {
       return res.status(403).json({
-        error: 'You do not have permission to delete this comment',
+        error: "You do not have permission to delete this comment",
       });
     }
@@ -597,9 +606,9 @@
     return res.status(204).send();
   } catch (err) {
-    if (err.code === 'P2025') {
-      return res.status(404).json({ error: 'Comment not found' });
-    }
-    console.error('Server error:', err);
-    res.status(500).json({ error: 'Internal server error' });
+    if (err.code === "P2025") {
+      return res.status(404).json({ error: "Comment not found" });
+    }
+    console.error("Server error:", err);
+    res.status(500).json({ error: "Internal server error" });
   }
 };
Index: client/src/Dashboard/components/Forum.jsx
===================================================================
--- client/src/Dashboard/components/Forum.jsx	(revision 51add1c0def4e413e64f210d72cedd8ba28b0458)
+++ client/src/Dashboard/components/Forum.jsx	(revision de90604457c8e9d85097a1fed23eac0252f43d3a)
@@ -1,12 +1,12 @@
-import React, { useState, useEffect, useCallback } from 'react';
-import { useNavigate, useSearchParams } from 'react-router-dom';
-import commentIcon from '../../assets/images/comment.svg';
-import trashIcon from '../../assets/images/delete.svg';
-import Navbar from './Navbar';
-import { getForumPosts, deleteForumPost } from '@/services/forumService';
-import { useAuth } from '@/contexts/AuthContext';
-import { DatePicker } from 'react-daisyui-timetools';
-import 'react-datepicker/dist/react-datepicker.css';
-import CalendarPopover from './CalendarPopover';
+import React, { useState, useEffect, useCallback } from "react";
+import { useNavigate, useSearchParams } from "react-router-dom";
+import commentIcon from "../../assets/images/comment.svg";
+import trashIcon from "../../assets/images/delete.svg";
+import Navbar from "./Navbar";
+import { getForumPosts, deleteForumPost } from "@/services/forumService";
+import { useAuth } from "@/contexts/AuthContext";
+import { DatePicker } from "react-daisyui-timetools";
+import "react-datepicker/dist/react-datepicker.css";
+import CalendarPopover from "./CalendarPopover";
 // import { useForumSearchParams } from "../../contexts/ForumSearchParamsContext";
 const Forum = () => {
@@ -22,18 +22,18 @@
   const [modal, setModal] = useState({
     isOpen: false,
-    message: '',
-    type: '',
+    message: "",
+    type: "",
     postId: null,
   });
   const [isDeleting, setIsDeleting] = useState(false);
-  const postsPerPage = 6;
+  const postsPerPage = 10;
   const { user } = useAuth();
 
   const defaultFilters = {
-    topic: 'all',
-    dateSort: 'newest',
+    topic: "all",
+    dateSort: "newest",
     selectedDate: null,
-    commentSort: 'none',
-    searchText: '',
+    commentSort: "none",
+    searchText: "",
   };
 
@@ -49,10 +49,10 @@
   const [showFilters, setShowFilters] = useState(false);
 
-  const showModal = (message, type = 'info', postId = null) => {
+  const showModal = (message, type = "info", postId = null) => {
     setModal({ isOpen: true, message, type, postId });
   };
 
   const closeModal = () => {
-    setModal({ isOpen: false, message: '', type: '', postId: null });
+    setModal({ isOpen: false, message: "", type: "", postId: null });
   };
 
@@ -101,8 +101,8 @@
         setPage(pageNum);
       } catch (error) {
-        console.error('Error fetching forum posts:', error);
+        console.error("Error fetching forum posts:", error);
 
         if (error.response) {
-          console.error('Error response:', error.response);
+          console.error("Error response:", error.response);
         }
 
@@ -118,5 +118,5 @@
   );
   useEffect(() => {
-    const pageFromUrl = parseInt(forumSearchParams.get('page') || '1', 10);
+    const pageFromUrl = parseInt(forumSearchParams.get("page") || "1", 10);
     const filtersFromUrl = { ...defaultFilters };
     for (const [key, value] of forumSearchParams.entries()) {
@@ -138,5 +138,5 @@
       }
     }
-    newSearchParams.set('page', '1');
+    newSearchParams.set("page", "1");
     setForumSearchParams(newSearchParams);
   };
@@ -150,5 +150,5 @@
       newSearchParams.delete(filterKey);
       setPage(1);
-      newSearchParams.set('page', '1');
+      newSearchParams.set("page", "1");
       setForumSearchParams(newSearchParams);
     }
@@ -160,5 +160,5 @@
     const freshDefaultFilters = { ...defaultFilters };
     setFilters(freshDefaultFilters);
-    setForumSearchParams({ page: '1' });
+    setForumSearchParams({ page: "1" });
 
     setPage(1);
@@ -172,15 +172,15 @@
 
       await fetchPosts(1, false, { ...filters });
-      showModal('Post deleted successfully.', 'success');
+      showModal("Post deleted successfully.", "success");
     } catch (error) {
-      console.error('Error deleting post:', error);
+      console.error("Error deleting post:", error);
     }
   };
   const formatFilterLabel = (value) => {
-    if (!value) return '';
+    if (!value) return "";
     return value
-      .split('-')
+      .split("-")
       .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
-      .join(' ');
+      .join(" ");
   };
 
@@ -196,5 +196,5 @@
                   navigate(`/dashboard/create-post`, {
                     state: {
-                      from: '/dashboard/forum',
+                      from: "/dashboard/forum",
                       fromForumSearch: forumSearchParams.toString(),
                     },
@@ -222,5 +222,5 @@
                   navigate(`/dashboard/user-posts`, {
                     state: {
-                      from: '/dashboard/forum',
+                      from: "/dashboard/forum",
                       fromForumSearch: forumSearchParams.toString(),
                     },
@@ -253,6 +253,6 @@
                     Filters
                     {/* Active filter count indicator */}
-                    {(filters.topic !== 'all' ||
-                      filters.dateSort !== 'newest' ||
+                    {(filters.topic !== "all" ||
+                      filters.dateSort !== "newest" ||
                       filters.selectedDate ||
                       (filters.searchText && filters.searchText.trim())) && (
@@ -260,8 +260,8 @@
                         {
                           [
-                            filters.topic !== 'all',
-                            filters.dateSort !== 'newest',
+                            filters.topic !== "all",
+                            filters.dateSort !== "newest",
                             filters.selectedDate,
-                            filters.commentSort !== 'none',
+                            filters.commentSort !== "none",
                             filters.searchText && filters.searchText.trim(),
                           ].filter(Boolean).length
@@ -276,5 +276,5 @@
                     <svg
                       className={`w-5 h-5 transition-transform duration-200 ${
-                        showFilters ? 'rotate-180' : ''
+                        showFilters ? "rotate-180" : ""
                       }`}
                       fill="none"
@@ -295,5 +295,5 @@
                 <div
                   className={`transition-all duration-300 ${
-                    showFilters ? 'block opacity-100' : 'hidden opacity-0'
+                    showFilters ? "block opacity-100" : "hidden opacity-0"
                   } lg:block lg:opacity-100`}
                 >
@@ -308,5 +308,5 @@
                         <input
                           type="text"
-                          placeholder="Search titles and content..."
+                          placeholder="Search by title, content or challenge"
                           value={filters.searchText}
                           onChange={(e) =>
@@ -317,5 +317,5 @@
                           }
                           onKeyDown={(e) => {
-                            if (e.key === 'Enter') {
+                            if (e.key === "Enter") {
                               applyFilters();
                             }
@@ -420,10 +420,10 @@
                                 ? new Date(
                                     filters.selectedDate
-                                  ).toLocaleDateString('en-US', {
-                                    year: 'numeric',
-                                    month: 'short',
-                                    day: 'numeric',
+                                  ).toLocaleDateString("en-US", {
+                                    year: "numeric",
+                                    month: "short",
+                                    day: "numeric",
                                   })
-                                : ''
+                                : ""
                             }
                             placeholder="Select date"
@@ -465,6 +465,6 @@
                       </label>
                       <div className="flex gap-1.5">
-                        {(filters.topic !== 'all' ||
-                          filters.dateSort !== 'newest' ||
+                        {(filters.topic !== "all" ||
+                          filters.dateSort !== "newest" ||
                           filters.selectedDate ||
                           (filters.searchText &&
@@ -495,15 +495,15 @@
                   {/* Active Filters Display - Improved Mobile Layout */}
                   <div className="flex flex-wrap gap-1.5 sm:gap-2">
-                    {filters.topic !== 'all' && (
+                    {filters.topic !== "all" && (
                       <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                         <span className="font-medium text-xs">
-                          {filters.topic === 'general'
-                            ? 'General'
-                            : 'Daily Challenge'}
+                          {filters.topic === "general"
+                            ? "General"
+                            : "Daily Challenge"}
                         </span>
                         <button
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('topic')}
+                          onClick={() => handleRemoveFilter("topic")}
                           aria-label="Remove topic filter"
                         >
@@ -520,5 +520,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('searchText')}
+                          onClick={() => handleRemoveFilter("searchText")}
                           aria-label="Remove search filter"
                         >
@@ -527,5 +527,5 @@
                       </span>
                     )}
-                    {filters.commentSort != 'none' &&
+                    {filters.commentSort != "none" &&
                       filters.commentSort.trim() && (
                         <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1 max-w-[200px]">
@@ -536,5 +536,5 @@
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter('commentSort')}
+                            onClick={() => handleRemoveFilter("commentSort")}
                             aria-label="Remove search filter"
                           >
@@ -544,5 +544,5 @@
                       )}
 
-                    {filters.dateSort !== 'newest' && (
+                    {filters.dateSort !== "newest" && (
                       <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                         <span className="font-medium text-xs">
@@ -552,5 +552,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('dateSort')}
+                          onClick={() => handleRemoveFilter("dateSort")}
                           aria-label="Remove sort filter"
                         >
@@ -563,9 +563,9 @@
                         <span className="font-medium text-xs">
                           {new Date(filters.selectedDate).toLocaleDateString(
-                            'en-US',
+                            "en-US",
                             {
-                              year: 'numeric',
-                              month: 'short',
-                              day: 'numeric',
+                              year: "numeric",
+                              month: "short",
+                              day: "numeric",
                             }
                           )}
@@ -574,5 +574,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('selectedDate')}
+                          onClick={() => handleRemoveFilter("selectedDate")}
                           aria-label="Remove date filter"
                         >
@@ -613,5 +613,12 @@
                   </div>
                 ) : (
-                  <div className="grid grid-cols-1 md:grid-cols-2 l:gird-cols-2 xl:grid-cols-2 2xl:grid-cols-4 gap-4 lg:gap-6">
+                  <div
+                    className="
+  grid grid-cols-1 
+  sm:grid-cols-2 
+  [@media(min-width:2000px)]:grid-cols-4
+  gap-4 lg:gap-6
+"
+                  >
                     {posts.map((post) => (
                       <div
@@ -628,6 +635,6 @@
                                 e.stopPropagation();
                                 showModal(
-                                  'Are you sure you want to delete this post? This action cannot be undone.',
-                                  'confirm',
+                                  "Are you sure you want to delete this post? This action cannot be undone.",
+                                  "confirm",
                                   post.id
                                 );
@@ -637,5 +644,5 @@
                                 src={trashIcon}
                                 alt="Delete"
-                                className="w-3 h-3 sm:w-4 sm:h-4"
+                                className="w-3 h-3 sm:w-4 sm:h-4 2xl:h-5 2xl:w-5"
                               />
                             </button>
@@ -643,5 +650,5 @@
 
                           <h1
-                            className="text-base sm:text-lg md:text-base lg:text-xl font-bold mb-2 pr-8 sm:pr-12 cursor-pointer break-words"
+                            className="text-base sm:text-lg md:text-base lg:text-2xl font-bold mb-2 pr-8 sm:pr-12 cursor-pointer break-words"
                             onClick={() => {
                               navigate(`/dashboard/forum-detail/${post.id}`, {
@@ -659,12 +666,12 @@
                             <span
                               className={`inline-block text-xs font-medium px-1 py-0.5 rounded ${
-                                post.topic === 'general'
-                                  ? 'bg-blue-100 text-blue-800'
-                                  : 'bg-green-100 text-green-800'
+                                post.topic === "general"
+                                  ? "bg-blue-100 text-blue-800"
+                                  : "bg-green-100 text-green-800"
                               }`}
                             >
-                              {post.topic === 'general'
-                                ? 'General'
-                                : 'Daily Challenge'}
+                              {post.topic === "general"
+                                ? "General"
+                                : "Daily Challenge"}
                             </span>
                             {post.challengeTitle && (
@@ -676,5 +683,5 @@
 
                           <p className="text-xs text-base-content/70 mb-1 sm:mb-2">
-                            By{' '}
+                            By{" "}
                             <span className="font-semibold">
                               {post.author_name}
@@ -683,9 +690,9 @@
                             <span className="italic">
                               {new Date(post.date_created).toLocaleDateString(
-                                'en-US',
+                                "en-US",
                                 {
-                                  year: 'numeric',
-                                  month: 'short',
-                                  day: 'numeric',
+                                  year: "numeric",
+                                  month: "short",
+                                  day: "numeric",
                                 }
                               )}
@@ -693,7 +700,7 @@
                           </p>
 
-                          <p className="hidden sm:block text-sm md:text-xs lg:text-sm text-base-content/80 line-clamp-1 mb-auto">
+                          <p className="hidden sm:block text-sm md:text-xs lg:text-sm 2xl:text-lg text-base-content/80 line-clamp-1 mb-auto">
                             {post.content && post.content.length > 50
-                              ? post.content.slice(0, 50) + '...'
+                              ? post.content.slice(0, 50) + "..."
                               : post.content}
                           </p>
@@ -730,5 +737,5 @@
                       onClick={() => {
                         const newPage = page - 1;
-                        forumSearchParams.set('page', newPage.toString());
+                        forumSearchParams.set("page", newPage.toString());
                         setForumSearchParams(forumSearchParams);
                       }}
@@ -745,8 +752,8 @@
                           key={idx}
                           className={`btn btn-sm px-2 sm:px-3 ${
-                            page - 1 === idx ? 'border-amber-400' : 'btn-ghost'
+                            page - 1 === idx ? "border-amber-400" : "btn-ghost"
                           }`}
                           onClick={() => {
-                            forumSearchParams.set('page', (idx + 1).toString());
+                            forumSearchParams.set("page", (idx + 1).toString());
                             setForumSearchParams(forumSearchParams);
                           }}
@@ -768,5 +775,5 @@
                         className="btn btn-sm border-amber-400 px-2 sm:px-3"
                         onClick={() => {
-                          forumSearchParams.set('page', page.toString());
+                          forumSearchParams.set("page", page.toString());
                           setForumSearchParams(forumSearchParams);
                         }}
@@ -780,8 +787,8 @@
                       <button
                         className={`btn btn-sm px-2 sm:px-3 ${
-                          page === totalPages ? 'border-amber-400' : 'btn-ghost'
+                          page === totalPages ? "border-amber-400" : "btn-ghost"
                         }`}
                         onClick={() => {
-                          forumSearchParams.set('page', totalPages.toString());
+                          forumSearchParams.set("page", totalPages.toString());
                           setForumSearchParams(forumSearchParams);
                         }}
@@ -796,5 +803,5 @@
                       onClick={() => {
                         const newPage = page + 1;
-                        forumSearchParams.set('page', newPage.toString());
+                        forumSearchParams.set("page", newPage.toString());
                         setForumSearchParams(forumSearchParams);
                       }}
@@ -822,5 +829,5 @@
           <div className="bg-base-200 rounded-lg shadow-xl p-4 sm:p-6 w-full max-w-sm sm:max-w-md mx-4">
             <div className="flex items-center gap-3 mb-4">
-              {modal.type === 'confirm' && (
+              {modal.type === "confirm" && (
                 <div className="w-8 h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -839,5 +846,5 @@
                 </div>
               )}
-              {modal.type === 'success' && (
+              {modal.type === "success" && (
                 <div className="w-8 h-8 rounded-full bg-success flex items-center justify-center shrink-0">
                   <svg
@@ -862,5 +869,5 @@
             <p className="py-3 sm:py-4 text-sm sm:text-base">{modal.message}</p>
             <div className="flex justify-end gap-2 sm:gap-3 mt-3 sm:mt-4">
-              {modal.type === 'confirm' ? (
+              {modal.type === "confirm" ? (
                 <>
                   <button
@@ -882,5 +889,5 @@
                       </>
                     ) : (
-                      'Delete'
+                      "Delete"
                     )}
                   </button>
Index: client/src/Dashboard/components/ManagePosts.jsx
===================================================================
--- client/src/Dashboard/components/ManagePosts.jsx	(revision 51add1c0def4e413e64f210d72cedd8ba28b0458)
+++ client/src/Dashboard/components/ManagePosts.jsx	(revision de90604457c8e9d85097a1fed23eac0252f43d3a)
@@ -1,15 +1,15 @@
-import React, { useState, useEffect, useCallback, useRef } from 'react';
-import { useSearchParams } from 'react-router-dom';
-import doneAll from '../../assets/images/done-all.svg';
-import trashIcon from '../../assets/images/delete.svg';
-import { useAuth } from '@/contexts/AuthContext';
+import React, { useState, useEffect, useCallback, useRef } from "react";
+import { useSearchParams } from "react-router-dom";
+import doneAll from "../../assets/images/done-all.svg";
+import trashIcon from "../../assets/images/delete.svg";
+import { useAuth } from "@/contexts/AuthContext";
 import {
   getReviewPosts,
   deleteReviewPost,
   approveReviewPost,
-} from '@/services/reviewService';
-import CalendarPopover from './CalendarPopover';
-import 'react-datepicker/dist/react-datepicker.css';
-import 'cally';
+} from "@/services/reviewService";
+import CalendarPopover from "./CalendarPopover";
+import "react-datepicker/dist/react-datepicker.css";
+import "cally";
 const ManagePosts = () => {
   const [posts, setPosts] = useState([]);
@@ -25,6 +25,6 @@
   const [modal, setModal] = useState({
     isOpen: false,
-    message: '',
-    type: '',
+    message: "",
+    type: "",
     postId: null,
     post: null,
@@ -34,8 +34,8 @@
   // Filter states
   const defaultFilters = {
-    topic: 'all',
-    dateSort: 'newest',
+    topic: "all",
+    dateSort: "newest",
     selectedDate: null,
-    searchText: '',
+    searchText: "",
   };
 
@@ -60,5 +60,5 @@
       }
     }
-    newSearchParams.set('page', '1');
+    newSearchParams.set("page", "1");
     setPage(1);
     setSearchParams(newSearchParams);
@@ -72,5 +72,5 @@
       newSearchParams.delete(filterKey);
       setPage(1);
-      newSearchParams.set('page', '1');
+      newSearchParams.set("page", "1");
       setSearchParams(newSearchParams);
     }
@@ -79,5 +79,5 @@
     const freshDefaultFilters = { ...defaultFilters };
     setFilters(freshDefaultFilters);
-    setSearchParams({ page: '1' });
+    setSearchParams({ page: "1" });
     setPage(1);
   };
@@ -94,11 +94,11 @@
 
   const openViewPostModal = (post) => {
-    showModal('', 'view-post', post.id, post);
+    showModal("", "view-post", post.id, post);
   };
   const closeModal = () => {
     setModal({
       isOpen: false,
-      message: '',
-      type: '',
+      message: "",
+      type: "",
       postId: null,
       post: null,
@@ -108,7 +108,7 @@
   const confirmAction = async () => {
     setIsActionLoading(true);
-    if (modal.type === 'delete' && modal.postId) {
+    if (modal.type === "delete" && modal.postId) {
       await handleDeletePost(modal.postId);
-    } else if (modal.type === 'approve' && modal.post) {
+    } else if (modal.type === "approve" && modal.post) {
       await handleApprovePost(modal.post);
     }
@@ -124,12 +124,12 @@
 
       const filtersForApi = {
-        searchText: searchParams.get('searchText') || '',
-        topic: searchParams.get('topic') || 'all',
-        selectedDate: searchParams.get('selectedDate') || null,
-        dateSort: searchParams.get('dateSort') || 'newest',
+        searchText: searchParams.get("searchText") || "",
+        topic: searchParams.get("topic") || "all",
+        selectedDate: searchParams.get("selectedDate") || null,
+        dateSort: searchParams.get("dateSort") || "newest",
       };
 
       try {
-        const currentPage = parseInt(searchParams.get('page') || '1', 10);
+        const currentPage = parseInt(searchParams.get("page") || "1", 10);
         setPage(currentPage);
 
@@ -144,10 +144,10 @@
         setTotalPages(data.totalPages);
       } catch (err) {
-        console.error('Error fetching review posts:', err);
+        console.error("Error fetching review posts:", err);
         setPosts([]);
         setTotalPages(0);
         setError(
           err.response?.data?.error ||
-            'Failed to fetch posts. You may not have permission.'
+            "Failed to fetch posts. You may not have permission."
         );
       } finally {
@@ -163,9 +163,9 @@
       await deleteReviewPost(postId, user.id);
       setPosts((prevPosts) => prevPosts.filter((p) => p.id !== postId));
-      showModal('Post deleted successfully.', 'deleted');
+      showModal("Post deleted successfully.", "deleted");
     } catch (err) {
-      console.error('Error deleting review post:', err);
+      console.error("Error deleting review post:", err);
       setError(
-        err.response?.data?.message || err.message || 'Failed to delete post.'
+        err.response?.data?.message || err.message || "Failed to delete post."
       );
     }
@@ -185,13 +185,13 @@
         prevPosts.filter((p) => p.id !== postToApprove.id)
       );
-      showModal('Post approved successfully.', 'success');
+      showModal("Post approved successfully.", "success");
     } catch (err) {
-      console.error('Error approving post:', err);
+      console.error("Error approving post:", err);
       setError(
-        err.response?.data?.message || err.message || 'Failed to approve post.'
+        err.response?.data?.message || err.message || "Failed to approve post."
       );
       showModal(
-        err.response?.data?.message || err.message || 'Failed to approve post.',
-        'error'
+        err.response?.data?.message || err.message || "Failed to approve post.",
+        "error"
       );
     }
@@ -199,15 +199,15 @@
 
   const openConfirmationModal = (type, item) => {
-    if (type === 'delete') {
+    if (type === "delete") {
       showModal(
         `Are you sure you want to delete post with title "${item.title}"? This action cannot be undone.`,
-        'delete',
+        "delete",
         item.id,
         item
       );
-    } else if (type === 'approve') {
+    } else if (type === "approve") {
       showModal(
         `Are you sure you want to approve post with title "${item.title}"? It will be published to the forum.`,
-        'approve',
+        "approve",
         item.id,
         item
@@ -218,9 +218,9 @@
   const isLoading = authLoading || isFetching;
   const formatFilterLabel = (value) => {
-    if (!value) return '';
+    if (!value) return "";
     return value
-      .split('-')
+      .split("-")
       .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
-      .join(' ');
+      .join(" ");
   };
 
@@ -244,6 +244,6 @@
                     Filters
                     {/* Active filter count indicator */}
-                    {(filters.topic !== 'all' ||
-                      filters.dateSort !== 'newest' ||
+                    {(filters.topic !== "all" ||
+                      filters.dateSort !== "newest" ||
                       filters.selectedDate ||
                       (filters.searchText && filters.searchText.trim())) && (
@@ -251,8 +251,8 @@
                         {
                           [
-                            filters.topic !== 'all',
-                            filters.dateSort !== 'newest',
+                            filters.topic !== "all",
+                            filters.dateSort !== "newest",
                             filters.selectedDate,
-                            filters.commentSort !== 'none',
+                            filters.commentSort !== "none",
                             filters.searchText && filters.searchText.trim(),
                           ].filter(Boolean).length
@@ -267,5 +267,5 @@
                     <svg
                       className={`w-5 h-5 transition-transform duration-200 ${
-                        showFilters ? 'rotate-180' : ''
+                        showFilters ? "rotate-180" : ""
                       }`}
                       fill="none"
@@ -286,5 +286,5 @@
                 <div
                   className={`transition-all duration-300 ${
-                    showFilters ? 'block opacity-100' : 'hidden opacity-0'
+                    showFilters ? "block opacity-100" : "hidden opacity-0"
                   } lg:block lg:opacity-100`}
                 >
@@ -308,5 +308,5 @@
                           }
                           onKeyDown={(e) => {
-                            if (e.key === 'Enter') {
+                            if (e.key === "Enter") {
                               applyFilters();
                             }
@@ -390,10 +390,10 @@
                                 ? new Date(
                                     filters.selectedDate
-                                  ).toLocaleDateString('en-US', {
-                                    year: 'numeric',
-                                    month: 'short',
-                                    day: 'numeric',
+                                  ).toLocaleDateString("en-US", {
+                                    year: "numeric",
+                                    month: "short",
+                                    day: "numeric",
                                   })
-                                : '' // Use empty string so placeholder is visible
+                                : "" // Use empty string so placeholder is visible
                             }
                             placeholder="Select date"
@@ -436,6 +436,6 @@
                       </label>
                       <div className="flex gap-1.5">
-                        {(filters.topic !== 'all' ||
-                          filters.dateSort !== 'newest' ||
+                        {(filters.topic !== "all" ||
+                          filters.dateSort !== "newest" ||
                           filters.selectedDate ||
                           (filters.searchText &&
@@ -466,15 +466,15 @@
                   {/* Active Filters Display - Improved Mobile Layout */}
                   <div className="flex flex-wrap gap-1.5 sm:gap-2">
-                    {filters.topic !== 'all' && (
+                    {filters.topic !== "all" && (
                       <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                         <span className="font-medium text-xs">
-                          {filters.topic === 'general'
-                            ? 'General'
-                            : 'Daily Challenge'}
+                          {filters.topic === "general"
+                            ? "General"
+                            : "Daily Challenge"}
                         </span>
                         <button
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('topic')}
+                          onClick={() => handleRemoveFilter("topic")}
                           aria-label="Remove topic filter"
                         >
@@ -491,5 +491,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('searchText')}
+                          onClick={() => handleRemoveFilter("searchText")}
                           aria-label="Remove search filter"
                         >
@@ -498,15 +498,15 @@
                       </span>
                     )}
-                    {filters.dateSort !== 'newest' && (
+                    {filters.dateSort !== "newest" && (
                       <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                         <span className="font-medium text-xs">
-                          {filters.dateSort === 'oldest'
-                            ? 'Oldest First'
-                            : 'Most Recent'}
+                          {filters.dateSort === "oldest"
+                            ? "Oldest First"
+                            : "Most Recent"}
                         </span>
                         <button
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('dateSort')}
+                          onClick={() => handleRemoveFilter("dateSort")}
                           aria-label="Remove sort filter"
                         >
@@ -519,9 +519,9 @@
                         <span className="font-medium text-xs">
                           {new Date(filters.selectedDate).toLocaleDateString(
-                            'en-US',
+                            "en-US",
                             {
-                              year: 'numeric',
-                              month: 'short',
-                              day: 'numeric',
+                              year: "numeric",
+                              month: "short",
+                              day: "numeric",
                             }
                           )}
@@ -530,5 +530,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter('selectedDate')}
+                          onClick={() => handleRemoveFilter("selectedDate")}
                           aria-label="Remove date filter"
                         >
@@ -576,11 +576,11 @@
             <p className="text-xs sm:text-sm text-base-content/40 mt-2">
               {activeFilters.searchText ||
-              activeFilters.topic !== 'all' ||
+              activeFilters.topic !== "all" ||
               activeFilters.selectedDate
-                ? 'Try adjusting your filters to see more posts.'
-                : 'No posts are currently awaiting review.'}
+                ? "Try adjusting your filters to see more posts."
+                : "No posts are currently awaiting review."}
             </p>
             {(activeFilters.searchText ||
-              activeFilters.topic !== 'all' ||
+              activeFilters.topic !== "all" ||
               activeFilters.selectedDate) && (
               <button
@@ -611,5 +611,5 @@
                     title="Approve Post"
                     className="btn btn-xs sm:btn-sm btn-success btn-circle"
-                    onClick={() => openConfirmationModal('approve', post)}
+                    onClick={() => openConfirmationModal("approve", post)}
                   >
                     <img
@@ -622,5 +622,5 @@
                     title="Discard Post"
                     className="btn btn-xs sm:btn-sm btn-error btn-circle"
-                    onClick={() => openConfirmationModal('delete', post)}
+                    onClick={() => openConfirmationModal("delete", post)}
                   >
                     <img
@@ -636,10 +636,10 @@
                   <span
                     className={`inline-block text-xs font-semibold px-1.5 py-0.5 rounded ${
-                      post.topic === 'general'
-                        ? 'bg-blue-100 text-blue-800'
-                        : 'bg-green-100 text-green-800'
+                      post.topic === "general"
+                        ? "bg-blue-100 text-blue-800"
+                        : "bg-green-100 text-green-800"
                     }`}
                   >
-                    {post.topic === 'general' ? 'General' : 'Daily Challenge'}
+                    {post.topic === "general" ? "General" : "Daily Challenge"}
                   </span>
                   {post.challengeTitle && (
@@ -654,8 +654,8 @@
                   <span className="mx-1">·</span>
                   <span className="italic">
-                    {new Date(post.created_at).toLocaleDateString('en-US', {
-                      year: 'numeric',
-                      month: 'short',
-                      day: 'numeric',
+                    {new Date(post.created_at).toLocaleDateString("en-US", {
+                      year: "numeric",
+                      month: "short",
+                      day: "numeric",
                     })}
                   </span>
@@ -663,5 +663,5 @@
                 <p className="text-sm sm:text-base text-base-content/90 whitespace-pre-line break-words">
                   {post.content && post.content.length > 60
-                    ? post.content.slice(0, 60) + '...'
+                    ? post.content.slice(0, 60) + "..."
                     : post.content}
                 </p>
@@ -677,5 +677,5 @@
               onClick={() => {
                 const newPage = page - 1;
-                searchParams.set('page', newPage.toString());
+                searchParams.set("page", newPage.toString());
                 setSearchParams(searchParams);
               }}
@@ -690,8 +690,8 @@
                 key={idx}
                 className={`btn btn-sm px-2 sm:px-3 ${
-                  page - 1 === idx ? 'border-amber-400' : 'btn-ghost'
+                  page - 1 === idx ? "border-amber-400" : "btn-ghost"
                 }`}
                 onClick={() => {
-                  searchParams.set('page', (idx + 1).toString());
+                  searchParams.set("page", (idx + 1).toString());
                   setSearchParams(searchParams);
                 }}
@@ -710,5 +710,5 @@
                 className="btn btn-sm border-amber-400 px-2 sm:px-3"
                 onClick={() => {
-                  searchParams.set('page', page.toString());
+                  searchParams.set("page", page.toString());
                   setSearchParams(searchParams);
                 }}
@@ -722,8 +722,8 @@
               <button
                 className={`btn btn-sm px-2 sm:px-3 ${
-                  page === totalPages ? 'border-amber-400' : 'btn-ghost'
+                  page === totalPages ? "border-amber-400" : "btn-ghost"
                 }`}
                 onClick={() => {
-                  searchParams.set('page', totalPages.toString());
+                  searchParams.set("page", totalPages.toString());
                   setSearchParams(searchParams);
                 }}
@@ -738,5 +738,5 @@
               onClick={() => {
                 const newPage = page + 1;
-                searchParams.set('page', newPage.toString());
+                searchParams.set("page", newPage.toString());
                 setSearchParams(searchParams);
               }}
@@ -760,5 +760,5 @@
           <div className="bg-base-200 rounded-lg shadow-xl p-4 sm:p-6  w-full max-w-xl sm:max-w-md mx-4">
             <div className="flex items-center gap-3 mb-4">
-              {(modal.type === 'approve' || modal.type === 'success') && (
+              {(modal.type === "approve" || modal.type === "success") && (
                 <div className="w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-success flex items-center justify-center shrink-0 break-words">
                   <svg
@@ -777,7 +777,7 @@
                 </div>
               )}
-              {(modal.type === 'delete' ||
-                modal.type === 'deleted' ||
-                modal.type === 'error') && (
+              {(modal.type === "delete" ||
+                modal.type === "deleted" ||
+                modal.type === "error") && (
                 <div className="w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -797,12 +797,12 @@
               )}
               <h3 className="font-bold text-base sm:text-lg" id="modal-title">
-                {modal.type === 'approve' && 'Approve Post'}
-                {(modal.type === 'deleted' || modal.type === 'delete') &&
-                  'Discard Post'}
-                {(modal.type === 'success' || modal.type === 'error') &&
-                  'Approve Post'}
+                {modal.type === "approve" && "Approve Post"}
+                {(modal.type === "deleted" || modal.type === "delete") &&
+                  "Discard Post"}
+                {(modal.type === "success" || modal.type === "error") &&
+                  "Approve Post"}
               </h3>
             </div>
-            {modal.type === 'view-post' && modal.post ? (
+            {modal.type === "view-post" && modal.post ? (
               <div className="space-y-4 max-h-[70vh] overflow-y-auto pr-2">
                 <h3
@@ -817,9 +817,9 @@
                   <span className="italic">
                     {new Date(modal.post.created_at).toLocaleDateString(
-                      'en-US',
+                      "en-US",
                       {
-                        year: 'numeric',
-                        month: 'long',
-                        day: 'numeric',
+                        year: "numeric",
+                        month: "long",
+                        day: "numeric",
                       }
                     )}
@@ -836,5 +836,5 @@
             )}
             <div className="flex justify-end gap-2 sm:gap-3 mt-3 sm:mt-4">
-              {modal.type === 'approve' || modal.type === 'delete' ? (
+              {modal.type === "approve" || modal.type === "delete" ? (
                 <>
                   <button
@@ -847,5 +847,5 @@
                   <button
                     className={`btn btn-sm sm:btn-md ${
-                      modal.type === 'approve' ? 'btn-success' : 'btn-error'
+                      modal.type === "approve" ? "btn-success" : "btn-error"
                     }`}
                     onClick={confirmAction}
@@ -855,12 +855,12 @@
                       <>
                         <span className="loading loading-spinner loading-sm mr-2"></span>
-                        {modal.type === 'approve'
-                          ? 'Approving...'
-                          : 'Discarding...'}
+                        {modal.type === "approve"
+                          ? "Approving..."
+                          : "Discarding..."}
                       </>
-                    ) : modal.type === 'approve' ? (
-                      'Approve'
+                    ) : modal.type === "approve" ? (
+                      "Approve"
                     ) : (
-                      'Discard'
+                      "Discard"
                     )}
                   </button>
Index: client/src/Dashboard/components/UserPosts.jsx
===================================================================
--- client/src/Dashboard/components/UserPosts.jsx	(revision 51add1c0def4e413e64f210d72cedd8ba28b0458)
+++ client/src/Dashboard/components/UserPosts.jsx	(revision de90604457c8e9d85097a1fed23eac0252f43d3a)
@@ -1,13 +1,13 @@
-import { useAuth } from '../../contexts/AuthContext.jsx';
-import { act, useEffect, useState } from 'react';
-import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
-import { getPendingPosts } from '@/services/reviewService';
-import { getAllPostsByUser, deleteForumPost } from '@/services/forumService.js';
-import { deleteReviewPost } from '@/services/reviewService';
-import commentIcon from '../../assets/images/comment.svg';
-import CalendarPopover from './CalendarPopover.jsx';
-import { DatePicker } from 'react-daisyui-timetools';
-import 'react-datepicker/dist/react-datepicker.css';
-import trashIcon from '../../assets/images/delete.svg';
+import { useAuth } from "../../contexts/AuthContext.jsx";
+import { act, useEffect, useState } from "react";
+import { useLocation, useNavigate, useSearchParams } from "react-router-dom";
+import { getPendingPosts } from "@/services/reviewService";
+import { getAllPostsByUser, deleteForumPost } from "@/services/forumService.js";
+import { deleteReviewPost } from "@/services/reviewService";
+import commentIcon from "../../assets/images/comment.svg";
+import CalendarPopover from "./CalendarPopover.jsx";
+import { DatePicker } from "react-daisyui-timetools";
+import "react-datepicker/dist/react-datepicker.css";
+import trashIcon from "../../assets/images/delete.svg";
 
 const UserPosts = () => {
@@ -16,5 +16,5 @@
   const [pendingPosts, setPendingPosts] = useState([]);
   const location = useLocation();
-  const fromPath = location.state?.from || '/dashboard/forum';
+  const fromPath = location.state?.from || "/dashboard/forum";
 
   const fromForumSearchParams = location.state?.fromForumSearch;
@@ -22,5 +22,5 @@
   const [isCalendarOpen, setIsCalendarOpen] = useState(false);
   const [loading, setLoading] = useState(true);
-  const [activeTab, setActiveTab] = useState('published');
+  const [activeTab, setActiveTab] = useState("published");
   const navigate = useNavigate();
   const [totalUserPosts, setTotalUserPosts] = useState(0);
@@ -29,5 +29,5 @@
   const [totalPages, setTotalPages] = useState(1);
   const [pendingCurrentPage, setPendingCurrentPage] = useState(() => {
-    return parseInt(searchParams.get('pendingPage') || '1', 10);
+    return parseInt(searchParams.get("pendingPage") || "1", 10);
   });
   const PENDING_PAGE_SIZE = 10;
@@ -35,22 +35,22 @@
   // Filter states
   const defaultFilters = {
-    topic: 'all',
-    dateSort: 'newest',
+    topic: "all",
+    dateSort: "newest",
     selectedDate: null,
-    commentSort: 'none',
-    searchText: '',
+    commentSort: "none",
+    searchText: "",
   };
   const [modal, setModal] = useState({
     isOpen: false,
-    message: '',
-    type: '',
+    message: "",
+    type: "",
     postId: null,
   });
-  const showModal = (message, type = 'info', postId = null) => {
+  const showModal = (message, type = "info", postId = null) => {
     setModal({ isOpen: true, message, type, postId });
   };
 
   const closeModal = () => {
-    setModal({ isOpen: false, message: '', type: '', postId: null });
+    setModal({ isOpen: false, message: "", type: "", postId: null });
   };
 
@@ -78,9 +78,9 @@
 
         closeModal();
-        showModal('Post removed successfully.', 'success');
+        showModal("Post removed successfully.", "success");
       } catch (error) {
-        console.error('Error removing post:', error);
+        console.error("Error removing post:", error);
         closeModal();
-        showModal('Failed to remove post. Please try again.', 'error');
+        showModal("Failed to remove post. Please try again.", "error");
       } finally {
         setIsDeleting(false);
@@ -107,9 +107,9 @@
       setTotalUserPosts(approvedData.userPostsCount);
       closeModal();
-      showModal('Post deleted successfully.', 'success');
+      showModal("Post deleted successfully.", "success");
     } catch (error) {
-      console.error('Error deleting post:', error);
+      console.error("Error deleting post:", error);
       closeModal();
-      showModal('Failed to delete post. Please try again.', 'error');
+      showModal("Failed to delete post. Please try again.", "error");
     }
   };
@@ -126,14 +126,5 @@
     return initialFilters;
   });
-  const [appliedFilters, setAppliedFilters] = useState(() => {
-    //Useful?
-    const initialFilters = { ...defaultFilters };
-    for (const [key, value] of searchParams.entries()) {
-      if (key in initialFilters) {
-        initialFilters[key] = value;
-      }
-    }
-    return initialFilters;
-  });
+
   const [showFilters, setShowFilters] = useState(false);
   const pendingTotalPages = Math.ceil(pendingPosts.length / PENDING_PAGE_SIZE);
@@ -150,8 +141,8 @@
       }
     }
-    newSearchParams.set('page', '1');
+    newSearchParams.set("page", "1");
     setCurrentPage(1);
-    if (searchParams.get('pendingPage')) {
-      newSearchParams.set('pendingPage', searchParams.get('pendingPage'));
+    if (searchParams.get("pendingPage")) {
+      newSearchParams.set("pendingPage", searchParams.get("pendingPage"));
     }
     setSearchParams(newSearchParams);
@@ -167,5 +158,5 @@
       newSearchParams.delete(filterKey);
       setCurrentPage(1);
-      newSearchParams.set('page', '1');
+      newSearchParams.set("page", "1");
       setSearchParams(newSearchParams);
     } else {
@@ -178,7 +169,7 @@
     setAppliedFilters({ defaultFilters });
     const newSearchParams = new URLSearchParams();
-    newSearchParams.set('page', '1');
-    if (searchParams.get('pendingPage')) {
-      newSearchParams.set('pendingPage', searchParams.get('pendingPage'));
+    newSearchParams.set("page", "1");
+    if (searchParams.get("pendingPage")) {
+      newSearchParams.set("pendingPage", searchParams.get("pendingPage"));
     }
     setCurrentPage(1);
@@ -188,17 +179,17 @@
     setPendingCurrentPage(newPage);
     const newSearchParams = new URLSearchParams(searchParams);
-    newSearchParams.set('pendingPage', newPage.toString());
+    newSearchParams.set("pendingPage", newPage.toString());
     setSearchParams(newSearchParams);
   };
   const formatFilterLabel = (value) => {
-    if (!value) return '';
+    if (!value) return "";
     return value
-      .split('-')
+      .split("-")
       .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
-      .join(' ');
+      .join(" ");
   };
   useEffect(() => {
     const pendingPageFromUrl = parseInt(
-      searchParams.get('pendingPage') || '1',
+      searchParams.get("pendingPage") || "1",
       10
     );
@@ -225,5 +216,5 @@
           setTotalUserPosts(approvedData.userPostsCount);
         } catch (error) {
-          console.error('Error fetching user posts:', error);
+          console.error("Error fetching user posts:", error);
           setApprovedPosts([]); // Clear posts on error
           setTotalPages(1);
@@ -256,9 +247,9 @@
                 <button
                   className={`tab tab-sm sm:tab-md lg:tab-lg rounded-lg ${
-                    activeTab === 'published'
-                      ? 'tab-active bg-[#FFB800] text-black hover:text-black'
-                      : 'hover:bg-base-200'
+                    activeTab === "published"
+                      ? "tab-active bg-[#FFB800] text-black hover:text-black"
+                      : "hover:bg-base-200"
                   } px-2 sm:px-4 whitespace-nowrap`}
-                  onClick={() => setActiveTab('published')}
+                  onClick={() => setActiveTab("published")}
                 >
                   <svg
@@ -281,9 +272,9 @@
                 <button
                   className={`tab tab-sm sm:tab-md lg:tab-lg rounded-lg ${
-                    activeTab === 'pending'
-                      ? 'tab-active bg-[#FFB800] text-black hover:text-black'
-                      : 'hover:bg-base-200'
+                    activeTab === "pending"
+                      ? "tab-active bg-[#FFB800] text-black hover:text-black"
+                      : "hover:bg-base-200"
                   } px-2 sm:px-4 whitespace-nowrap`}
-                  onClick={() => setActiveTab('pending')}
+                  onClick={() => setActiveTab("pending")}
                 >
                   <svg
@@ -312,5 +303,5 @@
                     navigate(`/dashboard/create-post`, {
                       state: {
-                        from: '/dashboard/user-posts',
+                        from: "/dashboard/user-posts",
                         fromUserPostsSearch: searchParams.toString(),
                       },
@@ -365,5 +356,5 @@
 
             {/* Filter Navbar */}
-            {activeTab == 'published' && (
+            {activeTab == "published" && (
               <div className="border-b border-base-300 shadow-sm">
                 <div className="p-3 sm:p-4 md:pl-12 w-full max-w-full mx-auto">
@@ -373,6 +364,6 @@
                       Filters
                       {/* Active filter count indicator */}
-                      {(filters.topic !== 'all' ||
-                        filters.dateSort !== 'newest' ||
+                      {(filters.topic !== "all" ||
+                        filters.dateSort !== "newest" ||
                         filters.selectedDate ||
                         (filters.searchText && filters.searchText.trim())) && (
@@ -380,8 +371,8 @@
                           {
                             [
-                              filters.topic !== 'all',
-                              filters.dateSort !== 'newest',
+                              filters.topic !== "all",
+                              filters.dateSort !== "newest",
                               filters.selectedDate,
-                              filters.commentSort !== 'none',
+                              filters.commentSort !== "none",
                               filters.searchText && filters.searchText.trim(),
                             ].filter(Boolean).length
@@ -396,5 +387,5 @@
                       <svg
                         className={`w-5 h-5 transition-transform duration-200 ${
-                          showFilters ? 'rotate-180' : ''
+                          showFilters ? "rotate-180" : ""
                         }`}
                         fill="none"
@@ -415,5 +406,5 @@
                   <div
                     className={`transition-all duration-300 ${
-                      showFilters ? 'block opacity-100' : 'hidden opacity-0'
+                      showFilters ? "block opacity-100" : "hidden opacity-0"
                     } lg:block lg:opacity-100`}
                   >
@@ -428,5 +419,5 @@
                           <input
                             type="text"
-                            placeholder="Search titles and content..."
+                            placeholder="Search by title, content or challenge"
                             value={filters.searchText}
                             onChange={(e) =>
@@ -437,5 +428,5 @@
                             }
                             onKeyDown={(e) => {
-                              if (e.key === 'Enter') {
+                              if (e.key === "Enter") {
                                 applyFilters();
                               }
@@ -538,10 +529,10 @@
                                   ? new Date(
                                       filters.selectedDate
-                                    ).toLocaleDateString('en-US', {
-                                      year: 'numeric',
-                                      month: 'short',
-                                      day: 'numeric',
+                                    ).toLocaleDateString("en-US", {
+                                      year: "numeric",
+                                      month: "short",
+                                      day: "numeric",
                                     })
-                                  : '' // Use empty string so placeholder is visible
+                                  : "" // Use empty string so placeholder is visible
                               }
                               placeholder="Select date"
@@ -584,6 +575,6 @@
                         </label>
                         <div className="flex gap-1.5">
-                          {(filters.topic !== 'all' ||
-                            filters.dateSort !== 'newest' ||
+                          {(filters.topic !== "all" ||
+                            filters.dateSort !== "newest" ||
                             filters.selectedDate ||
                             (filters.searchText &&
@@ -614,15 +605,15 @@
                     {/* Active Filters Display - Improved Mobile Layout */}
                     <div className="flex flex-wrap gap-1.5 sm:gap-2">
-                      {filters.topic !== 'all' && (
+                      {filters.topic !== "all" && (
                         <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                           <span className="font-medium text-xs">
-                            {filters.topic === 'general'
-                              ? 'General'
-                              : 'Daily Challenge'}
+                            {filters.topic === "general"
+                              ? "General"
+                              : "Daily Challenge"}
                           </span>
                           <button
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter('topic')}
+                            onClick={() => handleRemoveFilter("topic")}
                             aria-label="Remove topic filter"
                           >
@@ -639,5 +630,5 @@
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter('searchText')}
+                            onClick={() => handleRemoveFilter("searchText")}
                             aria-label="Remove search filter"
                           >
@@ -646,5 +637,5 @@
                         </span>
                       )}
-                      {filters.commentSort != 'none' &&
+                      {filters.commentSort != "none" &&
                         filters.commentSort.trim() && (
                           <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1 max-w-[200px]">
@@ -655,5 +646,5 @@
                               type="button"
                               className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                              onClick={() => handleRemoveFilter('commentSort')}
+                              onClick={() => handleRemoveFilter("commentSort")}
                               aria-label="Remove search filter"
                             >
@@ -662,15 +653,15 @@
                           </span>
                         )}
-                      {filters.dateSort !== 'newest' && (
+                      {filters.dateSort !== "newest" && (
                         <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                           <span className="font-medium text-xs">
-                            {filters.dateSort === 'oldest-first'
-                              ? 'Oldest First'
-                              : 'Most Recent'}
+                            {filters.dateSort === "oldest-first"
+                              ? "Oldest First"
+                              : "Most Recent"}
                           </span>
                           <button
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter('dateSort')}
+                            onClick={() => handleRemoveFilter("dateSort")}
                             aria-label="Remove sort filter"
                           >
@@ -683,9 +674,9 @@
                           <span className="font-medium text-xs">
                             {new Date(filters.selectedDate).toLocaleDateString(
-                              'en-US',
+                              "en-US",
                               {
-                                year: 'numeric',
-                                month: 'short',
-                                day: 'numeric',
+                                year: "numeric",
+                                month: "short",
+                                day: "numeric",
                               }
                             )}
@@ -694,5 +685,5 @@
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter('selectedDate')}
+                            onClick={() => handleRemoveFilter("selectedDate")}
                             aria-label="Remove date filter"
                           >
@@ -710,4 +701,5 @@
 
         {/* Main Content Area */}
+
         <div className="flex-1 overflow-y-auto">
           {loading ? (
@@ -721,5 +713,5 @@
                   {/* Tab Content */}
                   <div className="animate-fadeIn">
-                    {activeTab === 'published' && (
+                    {activeTab === "published" && (
                       <div>
                         {approvedPosts.length > 0 ? (
@@ -737,5 +729,5 @@
                                       showModal(
                                         `Are you sure you want to delete post with title '${post.title}' ? This action cannot be undone.`,
-                                        'confirm',
+                                        "confirm",
                                         post.id
                                       );
@@ -757,5 +749,5 @@
                                             state: {
                                               post,
-                                              from: '/dashboard/user-posts',
+                                              from: "/dashboard/user-posts",
                                             },
                                           }
@@ -771,12 +763,12 @@
                                     <span
                                       className={`inline-block text-xs font-semibold px-1.5 py-0.5 rounded ${
-                                        post.topic === 'general'
-                                          ? 'bg-blue-100 text-blue-800'
-                                          : 'bg-green-100 text-green-800'
+                                        post.topic === "general"
+                                          ? "bg-blue-100 text-blue-800"
+                                          : "bg-green-100 text-green-800"
                                       }`}
                                     >
-                                      {post.topic === 'general'
-                                        ? 'General'
-                                        : 'Daily Challenge'}
+                                      {post.topic === "general"
+                                        ? "General"
+                                        : "Daily Challenge"}
                                     </span>
                                     {post.challengeTitle && (
@@ -789,5 +781,5 @@
                                   <p className="mt-2 text-gray-400 text-xs sm:text-sm lg:text-base line-clamp-3 flex-grow">
                                     {post.content && post.content.length > 150
-                                      ? post.content.slice(0, 150) + '...'
+                                      ? post.content.slice(0, 150) + "..."
                                       : post.content}
                                   </p>
@@ -808,8 +800,8 @@
                                     {new Date(
                                       post.date_created
-                                    ).toLocaleDateString('en-US', {
-                                      year: 'numeric',
-                                      month: 'short',
-                                      day: 'numeric',
+                                    ).toLocaleDateString("en-US", {
+                                      year: "numeric",
+                                      month: "short",
+                                      day: "numeric",
                                     })}
                                   </div>
@@ -837,5 +829,5 @@
                                     const newPage = currentPage - 1;
                                     searchParams.set(
-                                      'page',
+                                      "page",
                                       newPage.toString()
                                     );
@@ -856,10 +848,10 @@
                                       className={`btn btn-sm px-2 sm:px-3 ${
                                         currentPage - 1 === idx
-                                          ? 'border-amber-400'
-                                          : 'btn-ghost'
+                                          ? "border-amber-400"
+                                          : "btn-ghost"
                                       }`}
                                       onClick={() => {
                                         searchParams.set(
-                                          'page',
+                                          "page",
                                           (idx + 1).toString()
                                         );
@@ -886,5 +878,5 @@
                                       onClick={() => {
                                         searchParams.set(
-                                          'page',
+                                          "page",
                                           currentPage.toString()
                                         );
@@ -901,10 +893,10 @@
                                     className={`btn btn-sm px-2 sm:px-3 ${
                                       currentPage === totalPages
-                                        ? 'border-amber-400'
-                                        : 'btn-ghost'
+                                        ? "border-amber-400"
+                                        : "btn-ghost"
                                     }`}
                                     onClick={() => {
                                       searchParams.set(
-                                        'page',
+                                        "page",
                                         totalPages.toString()
                                       );
@@ -923,5 +915,5 @@
                                     const newPage = currentPage + 1;
                                     searchParams.set(
-                                      'page',
+                                      "page",
                                       newPage.toString()
                                     );
@@ -960,15 +952,17 @@
                             </p>
                             <p className="text-xs sm:text-sm text-base-content/40 mt-2">
-                              {appliedFilters.searchText ||
-                              appliedFilters.topic !== 'all' ||
-                              appliedFilters.selectedDate ||
-                              appliedFilters.commentSort !== 'none'
-                                ? 'Try adjusting your filters to see more posts.'
-                                : 'Start creating content to see your published posts here!'}
+                              {searchParams.has("searchText") ||
+                              searchParams.has("topic") ||
+                              searchParams.has("selectedDate") ||
+                              searchParams.has("commentSort") ||
+                              searchParams.has("dateSort")
+                                ? "Try adjusting your filters to see more posts."
+                                : "Start creating content to see your published posts here!"}
                             </p>
-                            {(appliedFilters.searchText ||
-                              appliedFilters.topic !== 'all' ||
-                              appliedFilters.selectedDate ||
-                              appliedFilters.commentSort !== 'none') && (
+                            {(searchParams.has("searchText") ||
+                              searchParams.has("topic") ||
+                              searchParams.has("selectedDate") ||
+                              searchParams.has("commentSort") ||
+                              searchParams.has("dateSort")) && (
                               <button
                                 onClick={clearFilters}
@@ -983,5 +977,5 @@
                     )}
 
-                    {activeTab === 'pending' && (
+                    {activeTab === "pending" && (
                       <div>
                         {pendingPosts.length > 0 ? (
@@ -999,5 +993,5 @@
                                       showModal(
                                         `Are you sure you want to remove post with title '${post.title}' from review? This action cannot be undone.`,
-                                        'confirmRemoval',
+                                        "confirmRemoval",
                                         post.id
                                       );
@@ -1034,11 +1028,11 @@
                                         ></path>
                                       </svg>
-                                      Submitted{' '}
+                                      Submitted{" "}
                                       {new Date(
                                         post.created_at
-                                      ).toLocaleDateString('en-US', {
-                                        year: 'numeric',
-                                        month: 'short',
-                                        day: 'numeric',
+                                      ).toLocaleDateString("en-US", {
+                                        year: "numeric",
+                                        month: "short",
+                                        day: "numeric",
                                       })}
                                     </div>
@@ -1077,6 +1071,6 @@
                                       className={`btn btn-sm px-2 sm:px-3 ${
                                         pendingCurrentPage === idx + 1
-                                          ? 'border-amber-400'
-                                          : 'btn-ghost'
+                                          ? "border-amber-400"
+                                          : "btn-ghost"
                                       }`}
                                       onClick={() =>
@@ -1112,6 +1106,6 @@
                                     className={`btn btn-sm px-2 sm:px-3 ${
                                       pendingCurrentPage === pendingTotalPages
-                                        ? 'border-amber-400'
-                                        : 'btn-ghost'
+                                        ? "border-amber-400"
+                                        : "btn-ghost"
                                     }`}
                                     onClick={() =>
@@ -1183,6 +1177,6 @@
           <div className="bg-base-200 rounded-lg shadow-xl p-4 sm:p-6 w-full max-w-sm sm:max-w-md mx-4">
             <div className="flex items-center gap-3 mb-4">
-              {(modal.type === 'confirm' ||
-                modal.type === 'confirmRemoval') && (
+              {(modal.type === "confirm" ||
+                modal.type === "confirmRemoval") && (
                 <div className="w-8 h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -1201,5 +1195,5 @@
                 </div>
               )}
-              {modal.type === 'success' && (
+              {modal.type === "success" && (
                 <div className="w-8 h-8 rounded-full bg-success flex items-center justify-center shrink-0">
                   <svg
@@ -1218,5 +1212,5 @@
                 </div>
               )}
-              {modal.type === 'error' && (
+              {modal.type === "error" && (
                 <div className="w-8 h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -1236,11 +1230,11 @@
               )}
               <h3 className="font-bold text-base sm:text-lg" id="modal-title">
-                {modal.type === 'confirm'
-                  ? 'Delete Post'
-                  : modal.type === 'success'
-                  ? 'Success'
-                  : modal.type === 'confirmRemoval'
-                  ? 'Remove Post'
-                  : 'Error'}
+                {modal.type === "confirm"
+                  ? "Delete Post"
+                  : modal.type === "success"
+                  ? "Success"
+                  : modal.type === "confirmRemoval"
+                  ? "Remove Post"
+                  : "Error"}
               </h3>
             </div>
@@ -1249,5 +1243,5 @@
             </p>
             <div className="flex justify-end gap-2 sm:gap-3 mt-3 sm:mt-4">
-              {modal.type === 'confirm' ? (
+              {modal.type === "confirm" ? (
                 <>
                   <button
@@ -1269,9 +1263,9 @@
                       </>
                     ) : (
-                      'Delete'
+                      "Delete"
                     )}
                   </button>
                 </>
-              ) : modal.type === 'confirmRemoval' ? (
+              ) : modal.type === "confirmRemoval" ? (
                 <>
                   <button
@@ -1293,5 +1287,5 @@
                       </>
                     ) : (
-                      'Remove'
+                      "Remove"
                     )}
                   </button>
Index: client/src/Register/Register.jsx
===================================================================
--- client/src/Register/Register.jsx	(revision 51add1c0def4e413e64f210d72cedd8ba28b0458)
+++ client/src/Register/Register.jsx	(revision de90604457c8e9d85097a1fed23eac0252f43d3a)
@@ -1,13 +1,13 @@
-import React from 'react';
-import { Link, useNavigate } from 'react-router-dom';
-import { useState } from 'react';
-import { supabase } from '../contexts/AuthContext';
-import { signInWithGoogle } from '@/services/registerLoginService';
-import { useAuth } from '../contexts/AuthContext';
+import React from "react";
+import { Link, useNavigate } from "react-router-dom";
+import { useState } from "react";
+import { supabase } from "../contexts/AuthContext";
+import { signInWithGoogle } from "@/services/registerLoginService";
+import { useAuth } from "../contexts/AuthContext";
 
 const Register = () => {
   const { register } = useAuth();
   const [formErrors, setFormErrors] = useState({});
-  const [generalError, setGeneralError] = useState('');
+  const [generalError, setGeneralError] = useState("");
   const [googleLoading, setGoogleLoading] = useState(false);
   const nav = useNavigate();
@@ -26,12 +26,12 @@
 
   const [formData, setFormData] = useState({
-    username: '',
-    email: '',
-    password: '',
-    confirmPassword: '',
-    name: '',
+    username: "",
+    email: "",
+    password: "",
+    confirmPassword: "",
+    name: "",
   });
   function validateLocalEmailFormat(email) {
-    return email.includes('@') && email.includes('.');
+    return email.includes("@") && email.includes(".");
   }
   const handleInputChange = (e) => {
@@ -44,10 +44,10 @@
       setFormErrors((prev) => ({ ...prev, [name]: undefined }));
     }
-    setGeneralError('');
+    setGeneralError("");
   };
   const handleSubmit = async (e) => {
     e.preventDefault();
     setLoading(true);
-    setGeneralError('');
+    setGeneralError("");
     setFormErrors({});
 
@@ -55,5 +55,5 @@
       setFormErrors((prev) => ({
         ...prev,
-        email: 'Please enter a valid email format.',
+        email: "Please enter a valid email format.",
       }));
       setLoading(false);
@@ -63,5 +63,5 @@
       setFormErrors((prev) => ({
         ...prev,
-        passwordMatch: 'Passwords do not match',
+        passwordMatch: "Passwords do not match",
       }));
       setLoading(false);
@@ -75,5 +75,5 @@
       !formData.confirmPassword
     ) {
-      setGeneralError('Please fill in all required fields.');
+      setGeneralError("Please fill in all required fields.");
       setLoading(false);
       return;
@@ -92,5 +92,5 @@
 
       if (result.success) {
-        nav('/dashboard');
+        nav("/dashboard");
       } else {
         if (result.errors) {
@@ -98,10 +98,10 @@
         }
         setGeneralError(
-          result.error || 'Registration failed. Please try again.'
+          result.error || "Registration failed. Please try again."
         );
       }
     } catch (error) {
-      console.error('Unexpected error in Register handleSubmit:', error);
-      setGeneralError('A client-side error occurred. Please try again.');
+      console.error("Unexpected error in Register handleSubmit:", error);
+      setGeneralError("A client-side error occurred. Please try again.");
     } finally {
       setLoading(false);
@@ -120,5 +120,5 @@
         className="flex flex-col items-center justify-center h-screen overflow-y-hidden p-2 md:p-4"
       >
-        <h1 className="text-xl xl:text-2xl font-bold mb-3 md:mb-4 text-center">
+        <h1 className="text-xl 2xl:text-3xl font-bold mb-3 md:mb-4 text-center">
           Create an account
         </h1>
@@ -192,5 +192,5 @@
                 id="password"
                 name="password"
-                type={showPassword.password ? 'text' : 'password'}
+                type={showPassword.password ? "text" : "password"}
                 className="input input-sm w-full pr-8 2xl:input-lg"
                 placeholder="Password"
@@ -202,5 +202,5 @@
                 type="button"
                 className="absolute top-0 right-0 h-full px-2 flex items-center z-10"
-                onClick={() => togglePasswordVisibility('password')}
+                onClick={() => togglePasswordVisibility("password")}
                 tabIndex="-1"
                 disabled={loading || googleLoading}
@@ -271,5 +271,5 @@
               <input
                 id="confirmPassword"
-                type={showPassword.confirmPassword ? 'text' : 'password'}
+                type={showPassword.confirmPassword ? "text" : "password"}
                 name="confirmPassword"
                 value={formData.confirmPassword}
@@ -282,5 +282,5 @@
                 type="button"
                 className="absolute top-0 right-0 h-full px-2 flex items-center z-10"
-                onClick={() => togglePasswordVisibility('confirmPassword')}
+                onClick={() => togglePasswordVisibility("confirmPassword")}
                 tabIndex="-1"
                 disabled={loading || googleLoading}
@@ -352,5 +352,5 @@
               type="button"
               onClick={handleGoogleSignIn}
-              className="btn btn-outline btn-sm w-[50%] text-center "
+              className="btn btn-outline btn-sm 2xl:btn-md w-full text-center "
               disabled={loading || googleLoading}
             >
