fix: eslint warnings (#252)

This commit is contained in:
kimatata
2025-07-20 10:59:57 +09:00
committed by GitHub
parent e6be84b67e
commit 9ae67fd303
118 changed files with 423 additions and 511 deletions

View File

@@ -1,8 +1,6 @@
'use client';
import { createContext, useState, useEffect, useContext } from 'react';
import { ProjectRoleType, TokenContextType, TokenType } from '@/types/user';
import { TokenProps } from '@/types/user';
import { useRouter, usePathname } from '@/src/i18n/routing';
import { createContext, useState, useEffect } from 'react';
import { addToast } from '@heroui/react';
import {
isSignedIn as tokenIsSinedIn,
isAdmin as tokenIsAdmin,
@@ -13,7 +11,10 @@ import {
checkSignInPage as tokenCheckSignInPage,
fetchMyRoles,
} from './token';
import { addToast } from '@heroui/react';
import { logError } from './errorHandler';
import { ProjectRoleType, TokenContextType, TokenType } from '@/types/user';
import { TokenProps } from '@/types/user';
import { useRouter, usePathname } from '@/src/i18n/routing';
const LOCAL_STORAGE_KEY = 'unittcms-auth-token';
function storeTokenToLocalStorage(token: TokenType) {
@@ -31,20 +32,20 @@ const defaultContext = {
},
isSignedIn: () => false,
isAdmin: () => false,
isProjectOwner: (projectId: number) => {
isProjectOwner: () => {
return false;
},
isProjectManager: (projectId: number) => {
isProjectManager: () => {
return false;
},
isProjectDeveloper: (projectId: number) => {
isProjectDeveloper: () => {
return false;
},
isProjectReporter: (projectId: number) => {
isProjectReporter: () => {
return false;
},
refreshProjectRoles: () => {},
setToken: (token: TokenType) => {},
setToken: () => {},
storeTokenToLocalStorage,
removeTokenFromLocalStorage,
};
@@ -94,8 +95,8 @@ const TokenProvider = ({ toastMessages, locale, children }: TokenProps) => {
try {
const data = await fetchMyRoles(token.access_token);
setProjectRoles(data);
} catch (error: any) {
console.error('Error in effect:', error.message);
} catch (error: unknown) {
logError('Error fetching project roles', error);
}
}
@@ -154,10 +155,12 @@ const TokenProvider = ({ toastMessages, locale, children }: TokenProps) => {
router.push(ret.redirectPath, { locale: locale });
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [pathname, hasRestoreFinished]);
useEffect(() => {
refreshProjectRoles();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [hasRestoreFinished, token]);
return <TokenContext.Provider value={tokenContext}>{children}</TokenContext.Provider>;

View File

@@ -1,3 +1,4 @@
import { logError } from '@/utils/errorHandler';
import Config from '@/config/config';
const apiServer = Config.apiServer;
import { CaseType } from '@/types/case';
@@ -20,8 +21,8 @@ async function fetchCase(jwt: string, caseId: number) {
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data', error);
}
}
@@ -43,8 +44,8 @@ async function fetchCases(jwt: string, folderId: number) {
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data', error);
}
}
@@ -79,9 +80,8 @@ async function createCase(jwt: string, folderId: string, title: string, descript
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error creating case:', error);
throw error;
} catch (error: unknown) {
logError('Error creating case', error);
}
}
@@ -103,9 +103,8 @@ async function updateCase(jwt: string, updateCaseData: CaseType) {
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error updating project:', error);
throw error;
} catch (error: unknown) {
logError('Error updating project', error);
}
}
@@ -126,9 +125,8 @@ async function deleteCases(jwt: string, deleteCaseIds: number[], projectId: numb
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
} catch (error: any) {
console.error('Error deleting cases:', error);
throw error;
} catch (error: unknown) {
logError('Error deleting cases', error);
}
}
@@ -160,8 +158,8 @@ async function exportCases(jwt: string, folderId: number, type: string) {
a.click();
a.remove();
window.URL.revokeObjectURL(objectUrl);
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data', error);
}
}

View File

@@ -0,0 +1,10 @@
/**
* Error handler utility for logging errors
*/
export const logError = (context: string, error: unknown) => {
if (error instanceof Error) {
console.error(`${context}:`, error.message);
} else {
console.error(`${context}:`, error);
}
};

View File

@@ -25,5 +25,5 @@ export const useFormGuard = (isDirty: boolean, confirmText: string) => {
window.removeEventListener('beforeunload', handleBeforeUnload);
window.removeEventListener('click', handleClick, true);
};
}, [isDirty]);
}, [confirmText, isDirty]);
};

View File

@@ -1,32 +1,7 @@
import { logError } from '@/utils/errorHandler';
import Config from '@/config/config';
const apiServer = Config.apiServer;
/**
* fetch project
*/
async function fetchProject(jwt: string, projectId: number) {
const url = `${apiServer}/projects/${projectId}`;
try {
const response = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${jwt}`,
},
});
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
}
}
/**
* fetch projects (public and user own projects)
*/
@@ -48,8 +23,34 @@ async function fetchProjects(jwt: string) {
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}
/**
* fetch project
*/
async function fetchProject(jwt: string, projectId: number) {
const url = `${apiServer}/projects/${projectId}`;
try {
const response = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${jwt}`,
},
});
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}
@@ -74,8 +75,8 @@ async function fetchMyProjects(jwt: string) {
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}
@@ -107,8 +108,8 @@ async function createProject(jwt: string, name: string, detail: string, isPublic
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error creating new project:', error);
} catch (error: unknown) {
logError('Error creating new project:', error);
throw error;
}
}
@@ -141,8 +142,8 @@ async function updateProject(jwt: string, projectId: number, name: string, detai
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error updating project:', error);
} catch (error: unknown) {
logError('Error updating project:', error);
throw error;
}
}
@@ -166,8 +167,8 @@ async function deleteProject(jwt: string, projectId: number) {
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
} catch (error: any) {
console.error('Error deleting project:', error);
} catch (error: unknown) {
logError('Error deleting project:', error);
throw error;
}
}

View File

@@ -1,3 +1,4 @@
import { logError } from '@/utils/errorHandler';
import { ProjectRoleType, TokenType } from '@/types/user';
import { roles, memberRoles } from '@/config/selection';
import Config from '@/config/config';
@@ -56,8 +57,8 @@ async function fetchMyRoles(jwt: string) {
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}
@@ -165,7 +166,7 @@ const isPrivatePath = (pathname: string) => {
};
function checkSignInPage(token: TokenType, pathname: string) {
let ret = {
const ret = {
ok: true,
reason: '',
redirectPath: '',

View File

@@ -1,3 +1,4 @@
import { logError } from '@/utils/errorHandler';
import Config from '@/config/config';
const apiServer = Config.apiServer;
@@ -19,8 +20,8 @@ async function findUser(jwt: string, userId: number) {
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}
@@ -42,8 +43,8 @@ async function searchUsers(jwt: string, projectId: number, searchText: string) {
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}
@@ -70,8 +71,8 @@ async function updateUserRole(jwt: string, userId: number, newRole: number) {
}
const data = await response.json();
return data;
} catch (error: any) {
console.error('Error fetching data:', error.message);
} catch (error: unknown) {
logError('Error fetching data:', error);
}
}