redirect url + accordion + blog + ...
This commit is contained in:
@@ -1,10 +1,22 @@
|
||||
'use client'
|
||||
|
||||
import { QueryClient, QueryClientProvider, HydrationBoundary } from '@tanstack/react-query'
|
||||
import { IApiErrorRepsonse } from '@/types/error.types'
|
||||
import { QueryClient, QueryClientProvider, HydrationBoundary, QueryCache } from '@tanstack/react-query'
|
||||
import { ReactNode, useState } from 'react'
|
||||
import { removeToken } from './func'
|
||||
import { useSharedStore } from '@/shared/store/sharedStore'
|
||||
|
||||
export default function QueryProvider({ children }: { children: ReactNode }) {
|
||||
const { setIsLogin } = useSharedStore()
|
||||
const [client] = useState(() => new QueryClient({
|
||||
queryCache: new QueryCache({
|
||||
onError: async (error: IApiErrorRepsonse) => {
|
||||
if (error.response?.status === 401) {
|
||||
removeToken()
|
||||
setIsLogin(false)
|
||||
}
|
||||
}
|
||||
}),
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
staleTime: 1000 * 60 * 5, // دادهها برای 5 دقیقه معتبر هستند
|
||||
|
||||
+2
-1
@@ -1,10 +1,11 @@
|
||||
import axios from "axios";
|
||||
import { getToken } from "./func";
|
||||
import { BASE_URL } from "./const";
|
||||
// import { Pages } from "./Pages";
|
||||
|
||||
const axiosInstance = axios.create({
|
||||
// baseURL: process.env.NEXT_PUBLIC_BASE_URL,
|
||||
baseURL: "https://api.danakcorp.com",
|
||||
baseURL: BASE_URL,
|
||||
});
|
||||
|
||||
axiosInstance.interceptors.response.use(
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
export const BASE_URL = "https://api.danakcorp.com";
|
||||
export const REFRESH_TOKEN_NAME = "dsc_refresh_token";
|
||||
export const TOKEN_NAME = "dsc_token";
|
||||
export const LOGIN_URL = "https://console.danakcorp.com/auth/login";
|
||||
export const CONSOLE_URL = "https://console.danakcorp.com";
|
||||
+5
-4
@@ -1,4 +1,5 @@
|
||||
import Cookie from "js-cookie";
|
||||
import { TOKEN_NAME, REFRESH_TOKEN_NAME } from "./const";
|
||||
|
||||
export function isEmail(input: string): boolean {
|
||||
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
||||
@@ -31,12 +32,12 @@ export const timeAgo = (date: string | Date): string => {
|
||||
|
||||
return "همین الان";
|
||||
};
|
||||
export const getToken = () => {
|
||||
return Cookie.get(process.env.NEXT_PUBLIC_BASE_URL || "");
|
||||
export const getToken = async () => {
|
||||
return Cookie.get(TOKEN_NAME);
|
||||
};
|
||||
|
||||
export const getRefreshToken = () => {
|
||||
return Cookie.get(process.env.VITE_REFRESH_TOKEN_NAME || "");
|
||||
return Cookie.get(REFRESH_TOKEN_NAME);
|
||||
};
|
||||
|
||||
const isProduction = process.env.NODE_ENV === "production";
|
||||
@@ -55,7 +56,7 @@ export const setRefreshToken = (refreshToken: string) => {
|
||||
};
|
||||
|
||||
export const removeToken = () => {
|
||||
Cookie.remove(process.env.NEXT_PUBLIC_TOKEN_NAME || "", {
|
||||
Cookie.remove(TOKEN_NAME, {
|
||||
domain,
|
||||
path: "/",
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user