From 646a897b93b2f7a73615a25e4f8d53e34004fa18 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Thu, 22 May 2025 22:00:37 +0200 Subject: [PATCH] Fix some lint issues --- app/src/contexts/AuthContext.tsx | 4 ++-- app/src/contexts/WorkspaceContext.tsx | 31 ++++++++++++--------------- app/src/hooks/useAdminData.ts | 16 +++++++------- app/src/hooks/useFileContent.ts | 4 ++-- app/src/hooks/useFileList.ts | 2 +- app/src/hooks/useFileNavigation.ts | 8 +++---- app/src/hooks/useFileOperations.ts | 4 ++-- app/src/hooks/useGitOperations.ts | 2 +- app/src/hooks/useProfileSettings.ts | 4 ++-- app/src/hooks/useUserAdmin.ts | 10 ++++----- app/src/utils/fileHelpers.ts | 4 ++-- app/src/utils/remarkWikiLinks.ts | 5 ++--- 12 files changed, 45 insertions(+), 49 deletions(-) diff --git a/app/src/contexts/AuthContext.tsx b/app/src/contexts/AuthContext.tsx index 3e8cdf4..866d2f5 100644 --- a/app/src/contexts/AuthContext.tsx +++ b/app/src/contexts/AuthContext.tsx @@ -12,7 +12,7 @@ import { refreshToken as apiRefreshToken, getCurrentUser, } from '@/api/auth'; -import type { User } from '@/types/authApi'; +import type { User } from '@/types/models'; interface AuthContextType { user: User | null; @@ -49,7 +49,7 @@ export const AuthProvider: React.FC = ({ children }) => { } }; - initializeAuth(); + void initializeAuth(); }, []); const login = useCallback( diff --git a/app/src/contexts/WorkspaceContext.tsx b/app/src/contexts/WorkspaceContext.tsx index a16a89e..039078a 100644 --- a/app/src/contexts/WorkspaceContext.tsx +++ b/app/src/contexts/WorkspaceContext.tsx @@ -1,25 +1,22 @@ -import type { - ReactNode} from 'react'; import React, { + type ReactNode, createContext, useContext, useState, useEffect, - useCallback + useCallback, } from 'react'; -import type { MantineColorScheme} from '@mantine/core'; -import { useMantineColorScheme } from '@mantine/core'; +import { useMantineColorScheme, type MantineColorScheme } from '@mantine/core'; import { notifications } from '@mantine/notifications'; +import { DEFAULT_WORKSPACE_SETTINGS, type Workspace } from '@/types/models'; import { + deleteWorkspace, getLastWorkspaceName, getWorkspace, - updateWorkspace, - updateLastWorkspaceName, - deleteWorkspace, listWorkspaces, + updateLastWorkspaceName, + updateWorkspace, } from '@/api/workspace'; -import type { Workspace} from '@/types/workspace'; -import { DEFAULT_WORKSPACE_SETTINGS } from '@/types/workspace'; interface WorkspaceContextType { currentWorkspace: Workspace | null; @@ -80,7 +77,7 @@ export const WorkspaceProvider: React.FC = ({ }); } }, - [] + [setColorScheme] ); const loadFirstAvailableWorkspace = useCallback(async (): Promise => { @@ -100,7 +97,7 @@ export const WorkspaceProvider: React.FC = ({ color: 'red', }); } - }, []); + }, [loadWorkspaceData]); useEffect(() => { const initializeWorkspace = async (): Promise => { @@ -120,8 +117,8 @@ export const WorkspaceProvider: React.FC = ({ } }; - initializeWorkspace(); - }, []); + void initializeWorkspace(); + }, [loadFirstAvailableWorkspace, loadWorkspaceData, loadWorkspaces]); const switchWorkspace = useCallback( async (workspaceName: string): Promise => { @@ -141,7 +138,7 @@ export const WorkspaceProvider: React.FC = ({ setLoading(false); } }, - [] + [loadWorkspaceData, loadWorkspaces] ); const deleteCurrentWorkspace = useCallback(async (): Promise => { @@ -182,7 +179,7 @@ export const WorkspaceProvider: React.FC = ({ color: 'red', }); } - }, [currentWorkspace]); + }, [currentWorkspace, loadWorkspaceData, loadWorkspaces]); const updateSettings = useCallback( async (newSettings: Partial): Promise => { @@ -206,7 +203,7 @@ export const WorkspaceProvider: React.FC = ({ throw error; } }, - [currentWorkspace, setColorScheme] + [currentWorkspace, loadWorkspaces, setColorScheme] ); const updateColorScheme = useCallback( diff --git a/app/src/hooks/useAdminData.ts b/app/src/hooks/useAdminData.ts index 4620637..730b4ad 100644 --- a/app/src/hooks/useAdminData.ts +++ b/app/src/hooks/useAdminData.ts @@ -1,8 +1,7 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import { notifications } from '@mantine/notifications'; import { getUsers, getWorkspaces, getSystemStats } from '@/api/admin'; -import type { SystemStats, WorkspaceStats } from '@/types/adminApi'; -import type { User } from '@/types/authApi'; +import type { SystemStats, User, WorkspaceStats } from '@/types/models'; // Possible types of admin data type AdminDataType = 'stats' | 'workspaces' | 'users'; @@ -45,7 +44,7 @@ export const useAdminData = ( const [loading, setLoading] = useState(true); const [error, setError] = useState(null); - const loadData = async () => { + const loadData = useCallback(async () => { setLoading(true); setError(null); try { @@ -67,7 +66,8 @@ export const useAdminData = ( } catch (err) { const message = err instanceof Error - ? (err as any)?.response?.data?.error || err.message + ? (err as { response?: { data?: { error?: string } } })?.response + ?.data?.error || err.message : 'An unknown error occurred'; setError(message); notifications.show({ @@ -78,11 +78,11 @@ export const useAdminData = ( } finally { setLoading(false); } - }; + }, [type]); useEffect(() => { - loadData(); - }, [type]); + void loadData(); + }, [loadData]); return { data, loading, error, reload: loadData }; }; diff --git a/app/src/hooks/useFileContent.ts b/app/src/hooks/useFileContent.ts index 3bdd43c..500a9a4 100644 --- a/app/src/hooks/useFileContent.ts +++ b/app/src/hooks/useFileContent.ts @@ -1,8 +1,8 @@ import { useState, useCallback, useEffect } from 'react'; import { isImageFile } from '../utils/fileHelpers'; import { useWorkspace } from '../contexts/WorkspaceContext'; -import { DEFAULT_FILE } from '@/types/file'; import { getFileContent } from '@/api/file'; +import { DEFAULT_FILE } from '@/types/models'; interface UseFileContentResult { content: string; @@ -51,7 +51,7 @@ export const useFileContent = ( useEffect(() => { if (selectedFile && currentWorkspace) { - loadFileContent(selectedFile); + void loadFileContent(selectedFile); } }, [selectedFile, currentWorkspace, loadFileContent]); diff --git a/app/src/hooks/useFileList.ts b/app/src/hooks/useFileList.ts index 9d0b2ed..d835961 100644 --- a/app/src/hooks/useFileList.ts +++ b/app/src/hooks/useFileList.ts @@ -1,7 +1,7 @@ import { useState, useCallback } from 'react'; import { listFiles } from '../api/file'; import { useWorkspace } from '../contexts/WorkspaceContext'; -import type { FileNode } from '../types/fileApi'; +import type { FileNode } from '@/types/models'; interface UseFileListResult { files: FileNode[]; diff --git a/app/src/hooks/useFileNavigation.ts b/app/src/hooks/useFileNavigation.ts index 37a3ce6..3bc24e6 100644 --- a/app/src/hooks/useFileNavigation.ts +++ b/app/src/hooks/useFileNavigation.ts @@ -1,7 +1,7 @@ import { useState, useCallback, useEffect } from 'react'; -import { DEFAULT_FILE } from '../types/file'; import { useWorkspace } from '../contexts/WorkspaceContext'; import { useLastOpenedFile } from './useLastOpenedFile'; +import { DEFAULT_FILE } from '@/types/models'; interface UseFileNavigationResult { selectedFile: string; @@ -36,14 +36,14 @@ export const useFileNavigation = (): UseFileNavigationResult => { const lastFile = await loadLastOpenedFile(); if (lastFile) { - handleFileSelect(lastFile); + await handleFileSelect(lastFile); } else { - handleFileSelect(null); + await handleFileSelect(null); } }; if (currentWorkspace) { - initializeFile(); + void initializeFile(); } }, [currentWorkspace, loadLastOpenedFile, handleFileSelect]); diff --git a/app/src/hooks/useFileOperations.ts b/app/src/hooks/useFileOperations.ts index b9d2bf8..3ef5b9e 100644 --- a/app/src/hooks/useFileOperations.ts +++ b/app/src/hooks/useFileOperations.ts @@ -3,7 +3,7 @@ import { notifications } from '@mantine/notifications'; import { saveFile, deleteFile } from '../api/file'; import { useWorkspace } from '../contexts/WorkspaceContext'; import { useGitOperations } from './useGitOperations'; -import { FileAction } from '../types/file'; +import { FileAction } from '@/types/models'; interface UseFileOperationsResult { handleSave: (filePath: string, content: string) => Promise; @@ -28,7 +28,7 @@ export const useFileOperations = (): UseFileOperationsResult => { await handleCommitAndPush(commitMessage); } }, - [settings] + [settings, handleCommitAndPush] ); const handleSave = useCallback( diff --git a/app/src/hooks/useGitOperations.ts b/app/src/hooks/useGitOperations.ts index 8f79c85..617330e 100644 --- a/app/src/hooks/useGitOperations.ts +++ b/app/src/hooks/useGitOperations.ts @@ -2,7 +2,7 @@ import { useCallback } from 'react'; import { notifications } from '@mantine/notifications'; import { pullChanges, commitAndPush } from '../api/git'; import { useWorkspace } from '../contexts/WorkspaceContext'; -import type { CommitHash } from '@/types/git'; +import type { CommitHash } from '@/types/models'; interface UseGitOperationsResult { handlePull: () => Promise; diff --git a/app/src/hooks/useProfileSettings.ts b/app/src/hooks/useProfileSettings.ts index b8ed528..587257d 100644 --- a/app/src/hooks/useProfileSettings.ts +++ b/app/src/hooks/useProfileSettings.ts @@ -1,8 +1,8 @@ import { useState, useCallback } from 'react'; import { notifications } from '@mantine/notifications'; import { updateProfile, deleteUser } from '../api/user'; -import type { User } from '../types/authApi'; -import type { UpdateProfileRequest } from '../types/userApi'; +import type { UpdateProfileRequest } from '@/types/api'; +import type { User } from '@/types/models'; interface UseProfileSettingsResult { loading: boolean; diff --git a/app/src/hooks/useUserAdmin.ts b/app/src/hooks/useUserAdmin.ts index d536723..9258eb0 100644 --- a/app/src/hooks/useUserAdmin.ts +++ b/app/src/hooks/useUserAdmin.ts @@ -5,8 +5,8 @@ import { deleteUser as adminDeleteUser, } from '../api/admin'; import { notifications } from '@mantine/notifications'; -import type { User } from '../types/authApi'; -import type { CreateUserRequest, UpdateUserRequest } from '../types/adminApi'; +import type { User } from '@/types/models'; +import type { CreateUserRequest, UpdateUserRequest } from '@/types/api'; interface UseUserAdminResult { users: User[]; @@ -30,7 +30,7 @@ export const useUserAdmin = (): UseUserAdminResult => { message: 'User created successfully', color: 'green', }); - reload(); + await reload(); return true; } catch (err) { const message = err instanceof Error ? err.message : String(err); @@ -54,7 +54,7 @@ export const useUserAdmin = (): UseUserAdminResult => { message: 'User updated successfully', color: 'green', }); - reload(); + await reload(); return true; } catch (err) { const message = err instanceof Error ? err.message : String(err); @@ -75,7 +75,7 @@ export const useUserAdmin = (): UseUserAdminResult => { message: 'User deleted successfully', color: 'green', }); - reload(); + await reload(); return true; } catch (err) { const message = err instanceof Error ? err.message : String(err); diff --git a/app/src/utils/fileHelpers.ts b/app/src/utils/fileHelpers.ts index f589377..bcc2dde 100644 --- a/app/src/utils/fileHelpers.ts +++ b/app/src/utils/fileHelpers.ts @@ -1,5 +1,5 @@ -import { API_BASE_URL } from '@/types/authApi'; -import { IMAGE_EXTENSIONS } from '../types/file'; +import { API_BASE_URL } from '@/types/api'; +import { IMAGE_EXTENSIONS } from '@/types/models'; /** * Checks if the given file path has an image extension. diff --git a/app/src/utils/remarkWikiLinks.ts b/app/src/utils/remarkWikiLinks.ts index 9ed5fe0..43b3a1d 100644 --- a/app/src/utils/remarkWikiLinks.ts +++ b/app/src/utils/remarkWikiLinks.ts @@ -1,10 +1,9 @@ import { visit } from 'unist-util-visit'; -import { InlineContainerType, MARKDOWN_REGEX } from '../types/markdown'; -import type { Node } from 'unist'; -import type { Parent } from 'unist'; +import type { Node, Parent } from 'unist'; import type { Text } from 'mdast'; import { lookupFileByName } from '@/api/file'; import { getFileUrl } from './fileHelpers'; +import { InlineContainerType, MARKDOWN_REGEX } from '@/types/models'; /** * Represents a wiki link match from the regex