Files
negareh-console/src/config/func.ts
T
hamid zarghami 10245bdb08 order ticket
2026-01-28 16:01:00 +03:30

89 lines
2.5 KiB
TypeScript

const TOKEN_NAME = import.meta.env.VITE_TOKEN_NAME;
const REFRESH_TOKEN_NAME = import.meta.env.VITE_REFRESH_TOKEN_NAME;
export const getToken = () => {
return localStorage.getItem(TOKEN_NAME);
};
export const setToken = (token: string) => {
localStorage.setItem(TOKEN_NAME, token);
};
export const removeToken = () => {
localStorage.removeItem(TOKEN_NAME);
};
export const getRefreshToken = () => {
return localStorage.getItem(REFRESH_TOKEN_NAME);
};
export const setRefreshToken = (refreshToken: string) => {
localStorage.setItem(REFRESH_TOKEN_NAME, refreshToken);
};
export const removeRefreshToken = () => {
localStorage.removeItem(REFRESH_TOKEN_NAME);
};
export const timeAgo = (dateString: string): string => {
const date = new Date(dateString);
const now = new Date();
const diffInMs = now.getTime() - date.getTime();
const diffInMinutes = Math.floor(diffInMs / (1000 * 60));
const diffInHours = Math.floor(diffInMinutes / 60);
const diffInDays = Math.floor(diffInHours / 24);
if (diffInMinutes < 1) return "همین الان";
if (diffInMinutes < 60) return `${diffInMinutes} دقیقه پیش`;
if (diffInHours < 24) return `${diffInHours} ساعت پیش`;
if (diffInDays < 7) return `${diffInDays} روز پیش`;
return date.toLocaleDateString("fa-IR");
};
export const NumberFormat = (num?: number): string => {
if (!num) return "0";
return num.toLocaleString("fa-IR");
};
export interface IGeneralError {
status: number;
success: boolean;
error: {
message: string[];
};
}
export const extractErrorMessage = (
error: Error | unknown,
fallbackMessage: string = "خطایی رخ داده است",
): string => {
try {
const axiosError = error as { response?: { data: IGeneralError } };
return axiosError?.response?.data?.error?.message?.[0] || fallbackMessage;
} catch {
return fallbackMessage;
}
};
export const getFileNameAndExtensionFromUrl = (
url: string,
): { fileName: string; extension: string } => {
try {
const cleanUrl = url.split("?")[0].split("#")[0];
const lastPart = cleanUrl.substring(cleanUrl.lastIndexOf("/") + 1);
if (!lastPart || !lastPart.includes(".")) {
return { fileName: "", extension: "" };
}
const lastDotIndex = lastPart.lastIndexOf(".");
const fileName = lastPart.substring(0, lastDotIndex);
const extension = lastPart.substring(lastDotIndex + 1);
return { fileName, extension };
} catch {
return { fileName: "", extension: "" };
}
};