Browse Source

eslint代码检查结果修改

fogwind 2 ngày trước cách đây
mục cha
commit
a6de9ac6aa

+ 1 - 1
src/app/api/graphql/route.ts

@@ -17,7 +17,7 @@ import {
     CREATE_CHECKOUT_PAYMENT_METHODS,
     CREATE_CHECKOUT_ORDER,
     CREATE_PRODUCT_REVIEW,
-    GET_PRODUCT_BY_URL_KEY,
+    // GET_PRODUCT_BY_URL_KEY,
 } from "@/graphql";
 
 const ALLOWED_OPERATIONS: Record<string, any> = {

+ 2 - 5
src/components/home/CategoryCarousel.tsx

@@ -71,7 +71,7 @@ interface CategoryCarouselProps {
 const CategoryCarousel: FC<CategoryCarouselProps> = async ({
   options: _options,
 }) => {
-  try {
+  
     const {data} = await cachedGraphQLRequest<CategoriesResponse>(
       "home",
       GET_HOME_CATEGORIES,
@@ -155,10 +155,7 @@ const CategoryCarousel: FC<CategoryCarouselProps> = async ({
         </div>
       </section>
     );
-  } catch (error) {
-    console.error("Error fetching categories:", error);
-    return null;
-  }
+
 };
 
 export default CategoryCarousel;

+ 2 - 9
src/components/home/ProductCarousel.tsx

@@ -19,7 +19,7 @@ const ProductCarousel: FC<ProductCarouselProps> = async ({
   sortOrder,
 }) => {
   const { filters, title } = options;
-  try {
+
     const { sort, limit, ...rest } = filters || {};
     const filterObject: Record<string, string> = {};
     Object.entries(rest).forEach(([key, value]) => {
@@ -78,14 +78,7 @@ const ProductCarousel: FC<ProductCarouselProps> = async ({
         products={products}
       />
     );
-  } catch (error) {
-    console.error("Error fetching products for carousel:", {
-      title,
-      filters,
-      error: error instanceof Error ? error.message : error,
-    });
-    return null;
-  }
+
 };
 
 export default ProductCarousel;

+ 10 - 65
src/components/theme/filters/SortOrder.tsx

@@ -4,7 +4,7 @@ import { SORT, SortOrderTypes } from "@/utils/constants";
 import { createUrl } from "@/utils/helper";
 import { Select, SelectItem } from "@heroui/select";
 import { usePathname, useRouter, useSearchParams } from "next/navigation";
-import { FC, useState, useEffect } from "react";
+import { FC } from "react";
 import {
   Drawer,
   DrawerContent,
@@ -27,11 +27,7 @@ const SortOrder: FC<{
   const sort = searchParams.get(SORT) || "name-asc";
 
   const { isOpen, onOpen, onOpenChange } = useDisclosure();
-  const [tempSort, setTempSort] = useState(sort);
 
-  useEffect(() => {
-    setTempSort(sort);
-  }, [sort]);
 
   const handleSortChange = (value: string) => {
     const newParams = new URLSearchParams(searchParams.toString());
@@ -42,10 +38,7 @@ const SortOrder: FC<{
     router.replace(newUrl);
   };
 
-  const applySort = () => {
-    handleSortChange(tempSort);
-    onOpenChange();
-  };
+
 
   const clearFilters = () => {
     const q = searchParams.get("q");
@@ -57,50 +50,9 @@ const SortOrder: FC<{
 
   return (
     <>
-      {/* Desktop View */}
-      <section className="hidden md:flex w-64 items-center gap-x-2.5">
-        <p
-          id="sort-label"
-          className="leading-0 text-nowrap min-[1300]:block hidden"
-        >
-          {title}
-        </p>
-        <Select
-          defaultOpen={false}
-          aria-label={title}
-          aria-labelledby="sort-label"
-          selectedKeys={[sort]}
-          isMultiline={false}
-          items={sortOrders}
-          placeholder="Select a Sort Order"
-          classNames={{
-            value: "text-neutral-800 dark:text-neutral-200",
-          }}
-          renderValue={(items) => (
-            <div className="flex items-center gap-1.5 overflow-x-auto pb-1.5 pt-1">
-              {items.map((item) => (
-                <p key={item.key} className="text-neutral-800 dark:text-neutral-200">{item.data?.title}</p>
-              ))}
-            </div>
-          )}
-          size="md"
-          variant="flat"
-          onSelectionChange={(e) => handleSortChange(e.currentKey as string)}
-        >
-          {(order) => (
-            <SelectItem
-              key={order.value}
-              textValue={order.value}
-              className="text-neutral-800 dark:text-neutral-200"
-            >
-              {order.title}
-            </SelectItem>
-          )}
-        </Select>
-      </section>
-
+     
       {/* Mobile View Toggle */}
-      <div className="md:hidden flex flex-wrap gap-3">
+      <div className="flex flex-wrap gap-3">
         <Button
           size="md"
           variant="flat"
@@ -135,15 +87,7 @@ const SortOrder: FC<{
                         Clear all filters
                       </button>
                     )}
-                    <Button
-                      color="primary"
-                      radius="full"
-                      size="md"
-                      className="px-6 font-semibold"
-                      onPress={applySort}
-                    >
-                      Apply Filter
-                    </Button>
+                    
                   </div>
                 </div>
               </DrawerHeader>
@@ -154,7 +98,7 @@ const SortOrder: FC<{
                   </p>
                   <Select
                     aria-label="Sort options"
-                    selectedKeys={[tempSort]}
+                    selectedKeys={[sort]}
                     className="w-full"
                     variant="flat"
                     size="lg"
@@ -162,9 +106,10 @@ const SortOrder: FC<{
                       value: "text-neutral-800 dark:text-neutral-200",
                       trigger: "dark:bg-neutral-800",
                     }}
-                    onSelectionChange={(e) =>
-                      setTempSort(e.currentKey as string)
-                    }
+                    onSelectionChange={(e) => {
+                      handleSortChange(e.currentKey as string);
+                      onOpenChange();
+                    }}
                   >
                     {sortOrders.map((order) => (
                       <SelectItem

+ 40 - 24
src/utils/hooks/useGuestCartToken.ts

@@ -11,9 +11,45 @@ import { CREATE_CART_TOKEN } from "@/graphql";
 // Main Hook
 // ---------------------------
 export const useGuestCartToken = () => {
-  const [token, setToken] = useState<string | null>(null);
-  const [cartId, setCartId] = useState<number | null>(null);
-  const [isReady, setIsReady] = useState(false);
+
+  const [token, setToken] = useState(() => {
+      const cookieToken = getCookie(GUEST_CART_TOKEN);
+      let guestCartToken: string | null = null;
+      console.log("cookieToken -----1 ", cookieToken);
+      if (cookieToken) {
+        console.log("cookieToken -----2 ", cookieToken);
+        const isGuest = getCookie(IS_GUEST) !== "false";
+        const decoded = decodeJWT<{
+          sessionToken: string;
+          cartId: number;
+          isGuest: boolean;
+        }>(cookieToken, isGuest);
+
+        if (decoded) {
+          guestCartToken = decoded.sessionToken;
+        }
+      }
+      return guestCartToken;
+  });
+  const [cartId, setCartId] = useState(() => {
+    const cookieToken = getCookie(GUEST_CART_TOKEN);
+    let guestCartId: number | null = null;
+    if (cookieToken) {
+
+      const isGuest = getCookie(IS_GUEST) !== "false";
+      const decoded = decodeJWT<{
+        sessionToken: string;
+        cartId: number;
+        isGuest: boolean;
+      }>(cookieToken, isGuest);
+
+      if (decoded) {
+        guestCartId = decoded.cartId;
+      }
+    }
+    return guestCartId;
+  });
+  // const [isReady, setIsReady] = useState(true);
 
   const isResettingRef = useRef(false);
   const tokenCreatedRef = useRef(false);
@@ -95,31 +131,11 @@ export const useGuestCartToken = () => {
     isResettingRef.current = false;
   };
 
-  useEffect(() => {
-    const cookieToken = getCookie(GUEST_CART_TOKEN);
-    console.log("cookieToken -----1 ", cookieToken);
-    if (cookieToken) {
-       console.log("cookieToken -----2 ", cookieToken);
-      const isGuest = getCookie(IS_GUEST) !== "false";
-      const decoded = decodeJWT<{
-        sessionToken: string;
-        cartId: number;
-        isGuest: boolean;
-      }>(cookieToken, isGuest);
-
-      if (decoded) {
-        setToken(decoded.sessionToken);
-        setCartId(decoded.cartId);
-      }
-    }
-
-    setIsReady(true);
-  }, []);
 
   return {
     token,
     cartId,
-    isReady,
+    // isReady,
     createGuestToken,
     resetGuestToken,
     deleteCookie,