Files
revenue-fe/src/utils/Common.ts
2025-02-01 16:44:51 +07:00

47 lines
1.3 KiB
TypeScript

// eslint-disable-next-line no-unused-vars
export const throttle = (func: (...args: any[]) => void, limit: number) => {
let lastFunc: any;
let lastRan: number;
return function (this: any, ...args: any[]) {
if (!lastRan) {
func.apply(this, args);
lastRan = Date.now();
} else {
clearTimeout(lastFunc);
lastFunc = setTimeout(
() => {
if (Date.now() - lastRan >= limit) {
func.apply(this, args);
lastRan = Date.now();
}
},
limit - (Date.now() - lastRan)
);
}
};
};
export const jsonToQueryParams = (json: any) => {
const params = new URLSearchParams();
for (const key in json) {
if (json.hasOwnProperty(key)) {
params.append(key, json[key]);
}
}
return params.toString();
};
export const ApplicationFileDownloadUrl = (API_URL: any, token: any, fileName: any) => {
return `${API_URL}/application/file/download?name=${fileName}&token=${token}`;
}
export const getFileExtension = (filename: string): string | null => {
const lastDotIndex = filename.lastIndexOf('.');
if (lastDotIndex === -1 || lastDotIndex === 0 || lastDotIndex === filename.length - 1) {
return null; // No extension found or invalid format
}
return filename.substring(lastDotIndex + 1);
}