From b8175e3b63e0fd3c9c8c6c02ea00cf5ca38e86a6 Mon Sep 17 00:00:00 2001 From: AmirReza Jamali Date: Sun, 21 Sep 2025 09:58:27 +0330 Subject: [PATCH] fix(auth, customers): Refresh page on logout and rename form field This commit introduces two main improvements: ensuring a clean state after user logout and enhancing the clarity of the customer creation form. The logout function in the `UserContext` now calls `router.refresh()`. This forces a page reload, preventing the user from seeing stale, authenticated data after logging out. Additionally, the form field for assigning companies to a customer has been renamed from `company_ids` to `companies` in both the form component and the Zod validation schema. This refactoring improves code clarity and consistency. A related `console.log` statement was also removed. --- src/components/Layouts/header/user-info/index.tsx | 1 - src/components/forms/customers/CreateCustomer.tsx | 2 +- .../forms/customers/useCreateCustomerPresenter.ts | 1 - src/contexts/User.ctx.tsx | 15 ++++++++------- src/lib/api/types/Customers.ts | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/components/Layouts/header/user-info/index.tsx b/src/components/Layouts/header/user-info/index.tsx index b9df9df..dee1d75 100644 --- a/src/components/Layouts/header/user-info/index.tsx +++ b/src/components/Layouts/header/user-info/index.tsx @@ -110,7 +110,6 @@ export function UserInfo() { onClick={() => { setIsOpen(false); logout(); - }} > diff --git a/src/components/forms/customers/CreateCustomer.tsx b/src/components/forms/customers/CreateCustomer.tsx index 51dc122..3dadf1c 100644 --- a/src/components/forms/customers/CreateCustomer.tsx +++ b/src/components/forms/customers/CreateCustomer.tsx @@ -63,7 +63,7 @@ const CreateCustomer = ({ defaultValues, editMode, id }: IProps) => { : [] } placeholder="Select companies to assign" - {...register("company_ids", { + {...register("companies", { required: "Please select at least one interest", })} errors={errors} diff --git a/src/components/forms/customers/useCreateCustomerPresenter.ts b/src/components/forms/customers/useCreateCustomerPresenter.ts index 30e142d..8e475ca 100644 --- a/src/components/forms/customers/useCreateCustomerPresenter.ts +++ b/src/components/forms/customers/useCreateCustomerPresenter.ts @@ -41,7 +41,6 @@ const useCreateCustomerPresenter = ({ credentials: data, }); } else { - console.log(data.company_ids); createCustomer({ ...data, diff --git a/src/contexts/User.ctx.tsx b/src/contexts/User.ctx.tsx index 92b93c7..5a33b0a 100644 --- a/src/contexts/User.ctx.tsx +++ b/src/contexts/User.ctx.tsx @@ -1,20 +1,20 @@ "use client"; +import Cookies from "js-cookie"; import React, { createContext, - useState, + ReactNode, + useCallback, useContext, useEffect, - useCallback, useMemo, - ReactNode, + useState, } from "react"; -import Cookies from "js-cookie"; -import { z } from "zod"; -import { UserSchema, ILoginResponse } from "../lib/api/types"; -import { COOKIE_KEYS } from "../lib/shared/cookies"; import { useRouter } from "next/navigation"; +import { z } from "zod"; +import { ILoginResponse, UserSchema } from "../lib/api/types"; +import { COOKIE_KEYS } from "../lib/shared/cookies"; type User = z.infer; @@ -77,6 +77,7 @@ export const UserProvider: React.FC = ({ children }) => { Cookies.remove(COOKIE_KEYS.access_token); Cookies.remove(COOKIE_KEYS.refresh_token); Cookies.remove(COOKIE_KEYS.user); + router.refresh(); }, []); const value = useMemo( diff --git a/src/lib/api/types/Customers.ts b/src/lib/api/types/Customers.ts index db3c7e7..f13f7b4 100644 --- a/src/lib/api/types/Customers.ts +++ b/src/lib/api/types/Customers.ts @@ -48,7 +48,7 @@ const createCustomerCredentials = z.object({ .optional(), annual_revenue: z.number().min(0).max(999999999999).optional(), business_type: z.string().min(2).max(100).optional(), - company_ids: z.array(z.string()).optional(), + companies: z.array(z.string()).optional(), contact_person: z .object({ email: z.string(),