From c53742d4708c4d06ceef09e98f8028b0b0f4e307 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 27 Feb 2026 13:15:50 +0300 Subject: [PATCH] lint frontend --- .../src/components/kanban/CreateListModal.tsx | 2 +- frontend/src/hooks/useApi.ts | 414 +++++++++--------- frontend/src/hooks/useBoard.ts | 2 +- frontend/src/pages/BoardCreate.tsx | 2 +- frontend/src/pages/BoardEdit.tsx | 2 +- frontend/src/pages/Login.tsx | 2 +- 6 files changed, 217 insertions(+), 207 deletions(-) diff --git a/frontend/src/components/kanban/CreateListModal.tsx b/frontend/src/components/kanban/CreateListModal.tsx index c6d7f65..dcd9141 100644 --- a/frontend/src/components/kanban/CreateListModal.tsx +++ b/frontend/src/components/kanban/CreateListModal.tsx @@ -2,7 +2,7 @@ import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { z } from 'zod'; import { ModalContentProps } from '../../types'; -import { useToast } from '@/context/toasts'; +import { useToast } from '../../context/toasts/useToast'; const listSchema = z.object({ name: z diff --git a/frontend/src/hooks/useApi.ts b/frontend/src/hooks/useApi.ts index 8cd6320..58f87d5 100644 --- a/frontend/src/hooks/useApi.ts +++ b/frontend/src/hooks/useApi.ts @@ -11,6 +11,7 @@ import { Checklist, CommentWithUser, } from '../types/kanban'; +import { useMemo } from 'react'; const api = axios.create({ baseURL: '/api', @@ -46,215 +47,224 @@ api.interceptors.response.use( ); export function useApi() { - return { - // Auth - login: async (email: string, password: string): Promise => { - const response = await api.post('/auth/login', { - email, - password, - }); - return response.data; - }, - register: async (userData: RegisterData): Promise => { - const response = await api.post('/auth/register', userData); - return response.data; - }, - getCurrentUser: async (): Promise => { - const response = await api.get('/users/me'); - return response.data; - }, + return useMemo( + () => ({ + // Auth + login: async (email: string, password: string): Promise => { + const response = await api.post('/auth/login', { + email, + password, + }); + return response.data; + }, + register: async (userData: RegisterData): Promise => { + const response = await api.post('/auth/register', userData); + return response.data; + }, + getCurrentUser: async (): Promise => { + const response = await api.get('/users/me'); + return response.data; + }, - // Products - getProducts: async (): Promise => { - const response = await api.get('/products'); - return response.data; - }, - getProduct: async (id: string): Promise => { - const response = await api.get(`/products/${id}`); - return response.data; - }, - createProduct: async (productData: Omit): Promise => { - const response = await api.post('/products', productData); - return response.data; - }, - updateProduct: async (id: string, productData: Partial): Promise => { - const response = await api.put(`/products/${id}`, productData); - return response.data; - }, - deleteProduct: async (id: string): Promise => { - await api.delete(`/products/${id}`); - }, + // Products + getProducts: async (): Promise => { + const response = await api.get('/products'); + return response.data; + }, + getProduct: async (id: string): Promise => { + const response = await api.get(`/products/${id}`); + return response.data; + }, + createProduct: async (productData: Omit): Promise => { + const response = await api.post('/products', productData); + return response.data; + }, + updateProduct: async ( + id: string, + productData: Partial + ): Promise => { + const response = await api.put(`/products/${id}`, productData); + return response.data; + }, + deleteProduct: async (id: string): Promise => { + await api.delete(`/products/${id}`); + }, - // Orders - getOrders: async (): Promise => { - const response = await api.get('/orders'); - return response.data; - }, - getOrder: async (id: string): Promise => { - const response = await api.get(`/orders/${id}`); - return response.data; - }, - createOrder: async (orderData: Omit): Promise => { - const response = await api.post('/orders', orderData); - return response.data; - }, + // Orders + getOrders: async (): Promise => { + const response = await api.get('/orders'); + return response.data; + }, + getOrder: async (id: string): Promise => { + const response = await api.get(`/orders/${id}`); + return response.data; + }, + createOrder: async (orderData: Omit): Promise => { + const response = await api.post('/orders', orderData); + return response.data; + }, - // Boards - getBoards: async (): Promise => { - const response = await api.get('/boards'); - return response.data; - }, - getBoard: async (id: number): Promise => { - const response = await api.get(`/boards/${id}`); - return response.data; - }, - createBoard: async (boardData: BoardCreate): Promise => { - const response = await api.post('/boards', boardData); - return response.data; - }, - updateBoard: async (id: number, boardData: Partial): Promise => { - const response = await api.put(`/boards/${id}`, boardData); - return response.data; - }, - deleteBoard: async (id: number): Promise => { - await api.delete(`/boards/${id}`); - }, + // Boards + getBoards: async (): Promise => { + const response = await api.get('/boards'); + return response.data; + }, + getBoard: async (id: number): Promise => { + const response = await api.get(`/boards/${id}`); + return response.data; + }, + createBoard: async (boardData: BoardCreate): Promise => { + const response = await api.post('/boards', boardData); + return response.data; + }, + updateBoard: async (id: number, boardData: Partial): Promise => { + const response = await api.put(`/boards/${id}`, boardData); + return response.data; + }, + deleteBoard: async (id: number): Promise => { + await api.delete(`/boards/${id}`); + }, - // Lists - createList: async (boardId: number, listData: { name: string; pos: number }): Promise => { - const response = await api.post(`/boards/${boardId}/lists`, listData); - return response.data; - }, - updateList: async ( - id: number, - listData: { name: string; pos: number; closed?: boolean } - ): Promise => { - const response = await api.put(`/lists/${id}`, listData); - return response.data; - }, - deleteList: async (id: number): Promise => { - await api.delete(`/lists/${id}`); - }, + // Lists + createList: async ( + boardId: number, + listData: { name: string; pos: number } + ): Promise => { + const response = await api.post(`/boards/${boardId}/lists`, listData); + return response.data; + }, + updateList: async ( + id: number, + listData: { name: string; pos: number; closed?: boolean } + ): Promise => { + const response = await api.put(`/lists/${id}`, listData); + return response.data; + }, + deleteList: async (id: number): Promise => { + await api.delete(`/lists/${id}`); + }, - // Cards - createCard: async ( - listId: number, - cardData: { - name: string; - description?: string; - pos: number; - due?: string | null; - due_complete?: boolean; - badges?: Record; - cover?: Record; - desc_data?: Record; - } - ): Promise => { - const response = await api.post(`/lists/${listId}/cards`, cardData); - return response.data; - }, - getCard: async (id: number): Promise => { - const response = await api.get(`/cards/${id}`); - return response.data; - }, - updateCard: async ( - id: number, - cardData: { - name: string; - description?: string; - pos: number; - due?: string | null; - due_complete?: boolean; - closed?: boolean; - list_id?: number; - badges?: Record; - cover?: Record; - desc_data?: Record; - } - ): Promise => { - const response = await api.put(`/cards/${id}`, cardData); - return response.data; - }, - deleteCard: async (id: number): Promise => { - await api.delete(`/cards/${id}`); - }, + // Cards + createCard: async ( + listId: number, + cardData: { + name: string; + description?: string; + pos: number; + due?: string | null; + due_complete?: boolean; + badges?: Record; + cover?: Record; + desc_data?: Record; + } + ): Promise => { + const response = await api.post(`/lists/${listId}/cards`, cardData); + return response.data; + }, + getCard: async (id: number): Promise => { + const response = await api.get(`/cards/${id}`); + return response.data; + }, + updateCard: async ( + id: number, + cardData: { + name: string; + description?: string; + pos: number; + due?: string | null; + due_complete?: boolean; + closed?: boolean; + list_id?: number; + badges?: Record; + cover?: Record; + desc_data?: Record; + } + ): Promise => { + const response = await api.put(`/cards/${id}`, cardData); + return response.data; + }, + deleteCard: async (id: number): Promise => { + await api.delete(`/cards/${id}`); + }, - // Labels - getLabels: async (boardId: number): Promise => { - const response = await api.get(`/boards/${boardId}/labels`); - return response.data; - }, - createLabel: async ( - boardId: number, - labelData: { name: string; color: string } - ): Promise