mirror of
https://github.com/ramvignesh-b/pi-ku.git
synced 2026-05-04 08:56:52 +00:00
refactor: enforce strict linting rules, replace forEach with for...of loops, and remove console logging throughout the frontend.
This commit is contained in:
@@ -48,8 +48,6 @@ api.interceptors.response.use(
|
||||
originalRequest.headers.Authorization = `Bearer ${newAccessToken}`;
|
||||
return api(originalRequest);
|
||||
} catch (refreshError) {
|
||||
// Refresh failed, perform logout to clear tokens
|
||||
console.error("Session expired, logging out...");
|
||||
useAuthStore.getState().clearAuth();
|
||||
return Promise.reject(refreshError);
|
||||
}
|
||||
|
||||
@@ -67,10 +67,10 @@ export const ComposeCanvas = forwardRef<
|
||||
if (initialData) {
|
||||
await canvas.loadFromJSON(initialData);
|
||||
if (readOnly) {
|
||||
canvas.getObjects().forEach((obj) => {
|
||||
for (const obj of canvas.getObjects()) {
|
||||
obj.selectable = false;
|
||||
obj.evented = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
canvas.renderAll();
|
||||
} else {
|
||||
@@ -119,11 +119,11 @@ export const ComposeCanvas = forwardRef<
|
||||
const hiddenTextareas = document.querySelectorAll(
|
||||
'textarea[data-fabric="textarea"]',
|
||||
);
|
||||
hiddenTextareas.forEach((ta) => {
|
||||
if (!ta.getAttribute("aria-label")) {
|
||||
ta.setAttribute("aria-label", "Canvas text input");
|
||||
for (const textArea of hiddenTextareas) {
|
||||
if (!textArea.getAttribute("aria-label")) {
|
||||
textArea.setAttribute("aria-label", "Canvas text input");
|
||||
}
|
||||
});
|
||||
}
|
||||
}, 100);
|
||||
|
||||
canvas.on("mouse:down", (opt) => {
|
||||
|
||||
@@ -15,8 +15,8 @@ export const replacePathParams = (
|
||||
params: Record<string, string>,
|
||||
): string => {
|
||||
let result = url;
|
||||
Object.entries(params).forEach(([key, value]) => {
|
||||
for (const [key, value] of Object.entries(params)) {
|
||||
result = result.replace(`:${key}`, value);
|
||||
});
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
@@ -36,8 +36,7 @@ export const useAuth = () => {
|
||||
const logout = async () => {
|
||||
try {
|
||||
await api.post(endpoints.LOGOUT);
|
||||
} catch (error) {
|
||||
console.error("Logout failed:", error);
|
||||
} catch (_error) {
|
||||
} finally {
|
||||
clearAuth();
|
||||
setMasterKey(null);
|
||||
|
||||
@@ -43,8 +43,7 @@ async function decryptLetters(
|
||||
)) as LetterMetadata;
|
||||
|
||||
return { ...letter, metadata };
|
||||
} catch (err) {
|
||||
console.warn("Decryption failed for letter:", letter.public_id, err);
|
||||
} catch (_err) {
|
||||
return {
|
||||
...letter,
|
||||
metadata: { recipient: "Encrypted Letter" },
|
||||
@@ -67,7 +66,7 @@ export function useLetters() {
|
||||
.get(endpoints.LETTERS)
|
||||
.then((res) => decryptLetters(res.data, masterKey))
|
||||
.then(setLetters)
|
||||
.catch((err) => console.error("Drawer load failed:", err))
|
||||
.catch((_err) => {})
|
||||
.finally(() => setLoading(false));
|
||||
}, [masterKey]);
|
||||
|
||||
|
||||
@@ -28,8 +28,7 @@ export default function Activate() {
|
||||
});
|
||||
await publicApi.get(url);
|
||||
setStatus("success");
|
||||
} catch (err) {
|
||||
console.error("Activation error:", err);
|
||||
} catch (_err) {
|
||||
setStatus("error");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -79,8 +79,7 @@ export default function Editor() {
|
||||
requestAnimationFrame(() => {
|
||||
canvasRef.current?.loadData(canvasData);
|
||||
});
|
||||
} catch (err) {
|
||||
console.error("Failed to load existing letter:", err);
|
||||
} catch (_err) {
|
||||
} finally {
|
||||
setIsInitialLoading(false);
|
||||
}
|
||||
@@ -158,8 +157,7 @@ export default function Editor() {
|
||||
}
|
||||
|
||||
setTimeout(() => setIsSaveSuccess(false), 5000);
|
||||
} catch (error) {
|
||||
console.error("Save failed:", error);
|
||||
} catch (_error) {
|
||||
} finally {
|
||||
setIsSealing(false);
|
||||
}
|
||||
@@ -169,9 +167,7 @@ export default function Editor() {
|
||||
if (!shareLink) return;
|
||||
try {
|
||||
await navigator.clipboard.writeText(shareLink);
|
||||
} catch (err) {
|
||||
console.error("Failed to copy:", err);
|
||||
}
|
||||
} catch (_err) {}
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -46,7 +46,6 @@ export default function Login() {
|
||||
|
||||
navigate(ROUTES.DRAWER);
|
||||
} catch (err) {
|
||||
console.error("Login error:", err);
|
||||
let message =
|
||||
"Sorry, we're experiencing technical issues.\nPlease try again later.";
|
||||
if (axios.isAxiosError(err) && err.response?.status !== 500) {
|
||||
|
||||
@@ -52,7 +52,6 @@ export default function Reader() {
|
||||
setCanvasData(json);
|
||||
setIsDecrypting(false);
|
||||
} catch (err: any) {
|
||||
console.error("Reader Error:", err);
|
||||
setError(`Failed to load letter: ${err.message || "Unknown error"}`);
|
||||
setIsDecrypting(false);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@ export default function Register() {
|
||||
});
|
||||
navigate(ROUTES.VERIFY_EMAIL);
|
||||
} catch (err) {
|
||||
console.error("Registration error:", err);
|
||||
let message = "Registration failed. Please try again.";
|
||||
if (axios.isAxiosError(err)) {
|
||||
message = err.response?.data?.message || message;
|
||||
|
||||
@@ -39,9 +39,7 @@ export async function decryptCanvasImages(
|
||||
// We need the raw file in the editor so we can re-encrypt it if the user saves again.
|
||||
obj._customRawFile = await blobUrlToFile(blobUrl, obj.src);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("Error decrypting image in canvas:", obj.src, err);
|
||||
}
|
||||
} catch (_err) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -66,9 +64,7 @@ export async function decryptCanvasImagesWithSharingKey(
|
||||
try {
|
||||
const res = await api.get(remoteUrl, { responseType: "blob" });
|
||||
obj.src = await crypto.decryptImageWithSharingKey(res.data, sharingKey);
|
||||
} catch (err) {
|
||||
console.error("Guest decryption failed for canvas image:", err);
|
||||
}
|
||||
} catch (_err) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -96,9 +92,7 @@ export async function encryptCanvasImages(
|
||||
);
|
||||
filenameMapping.set(img.src, filename);
|
||||
encryptedFiles.set(filename, encryptedBlob);
|
||||
} catch (err) {
|
||||
console.error("Failed to encrypt new canvas image:", err);
|
||||
}
|
||||
} catch (_err) {}
|
||||
}
|
||||
|
||||
// Update the canvas JSON to use the new encrypted filenames instead of blob URLs.
|
||||
|
||||
Reference in New Issue
Block a user