From 127c90ca5f0578f509f106c0d299fab30e432458 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Mon, 13 Oct 2025 11:21:18 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(frontend)=20fix=20circular=20depen?= =?UTF-8?q?dency=20problems?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A circular dependency was introduced in the previous commit. This commit resolves the circular dependency by refactoring the code to remove the circular reference. --- .../features/docs/doc-management/api/useCreateChildDoc.tsx | 4 +++- .../docs/doc-management/api/useCreateFavoriteDoc.tsx | 3 ++- .../docs/doc-management/api/useDeleteFavoriteDoc.tsx | 3 ++- .../src/features/docs/doc-management/api/useUpdateDoc.tsx | 3 ++- .../features/docs/doc-management/api/useUpdateDocLink.tsx | 5 ++++- .../src/features/docs/doc-share/api/useCreateDocAccess.tsx | 2 +- .../features/docs/doc-share/api/useCreateDocInvitation.tsx | 3 ++- .../src/features/docs/doc-share/api/useDeleteDocAccess.ts | 2 +- .../src/features/docs/doc-share/api/useDocInvitations.tsx | 3 ++- .../features/docs/doc-share/api/useUpdateDocInvitation.ts | 3 ++- 10 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateChildDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateChildDoc.tsx index dd203783..d6ad9aaf 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateChildDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateChildDoc.tsx @@ -2,7 +2,9 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { APIError, errorCauses, fetchAPI } from '@/api'; -import { Doc, KEY_LIST_DOC } from '..'; +import { Doc } from '../types'; + +import { KEY_LIST_DOC } from './useDocs'; export type CreateChildDocParam = Pick & { parentId: string; diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateFavoriteDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateFavoriteDoc.tsx index fe69c58f..c951e86c 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateFavoriteDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateFavoriteDoc.tsx @@ -1,7 +1,8 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { APIError, errorCauses, fetchAPI } from '@/api'; -import { Doc } from '@/docs/doc-management'; + +import { Doc } from '../types'; export type CreateFavoriteDocParams = Pick; diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/api/useDeleteFavoriteDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/api/useDeleteFavoriteDoc.tsx index b332fd42..baceb1b5 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/api/useDeleteFavoriteDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/api/useDeleteFavoriteDoc.tsx @@ -1,7 +1,8 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { APIError, errorCauses, fetchAPI } from '@/api'; -import { Doc } from '@/docs/doc-management'; + +import { Doc } from '../types'; export type DeleteFavoriteDocParams = Pick; diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDoc.tsx index d63283e2..0e5af2db 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDoc.tsx @@ -5,7 +5,8 @@ import { } from '@tanstack/react-query'; import { APIError, errorCauses, fetchAPI } from '@/api'; -import { Doc } from '@/docs/doc-management'; + +import { Doc } from '../types'; import { KEY_CAN_EDIT } from './useDocCanEdit'; diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDocLink.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDocLink.tsx index bc6df9f4..68389b5b 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDocLink.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/api/useUpdateDocLink.tsx @@ -3,9 +3,12 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; import { APIError, errorCauses, fetchAPI } from '@/api'; -import { Doc, KEY_DOC } from '@/docs/doc-management'; import { useBroadcastStore } from '@/stores'; +import { Doc } from '../types'; + +import { KEY_DOC } from './useDoc'; + export type UpdateDocLinkParams = Pick & Partial>; diff --git a/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocAccess.tsx b/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocAccess.tsx index c391dbfa..db6de8c1 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocAccess.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocAccess.tsx @@ -8,12 +8,12 @@ import { KEY_LIST_DOC, Role, } from '@/docs/doc-management'; -import { KEY_LIST_DOC_ACCESSES } from '@/docs/doc-share'; import { User } from '@/features/auth'; import { useBroadcastStore } from '@/stores'; import { OptionType } from '../types'; +import { KEY_LIST_DOC_ACCESSES } from './useDocAccesses'; import { KEY_LIST_USER } from './useUsers'; interface CreateDocAccessParams { diff --git a/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocInvitation.tsx b/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocInvitation.tsx index 536a5e24..a13e4235 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocInvitation.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-share/api/useCreateDocInvitation.tsx @@ -2,9 +2,10 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { APIError, errorCauses, fetchAPI } from '@/api'; import { Doc, Role } from '@/docs/doc-management'; -import { Invitation, OptionType } from '@/docs/doc-share/types'; import { User } from '@/features/auth'; +import { Invitation, OptionType } from '../types'; + import { KEY_LIST_DOC_INVITATIONS } from './useDocInvitations'; interface CreateDocInvitationParams { diff --git a/src/frontend/apps/impress/src/features/docs/doc-share/api/useDeleteDocAccess.ts b/src/frontend/apps/impress/src/features/docs/doc-share/api/useDeleteDocAccess.ts index a563ea7e..6b99e79e 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-share/api/useDeleteDocAccess.ts +++ b/src/frontend/apps/impress/src/features/docs/doc-share/api/useDeleteDocAccess.ts @@ -6,10 +6,10 @@ import { import { APIError, errorCauses, fetchAPI } from '@/api'; import { KEY_DOC, KEY_LIST_DOC } from '@/docs/doc-management'; -import { KEY_LIST_USER } from '@/docs/doc-share'; import { useBroadcastStore } from '@/stores'; import { KEY_LIST_DOC_ACCESSES } from './useDocAccesses'; +import { KEY_LIST_USER } from './useUsers'; interface DeleteDocAccessProps { docId: string; diff --git a/src/frontend/apps/impress/src/features/docs/doc-share/api/useDocInvitations.tsx b/src/frontend/apps/impress/src/features/docs/doc-share/api/useDocInvitations.tsx index 150f99ad..dbea614b 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-share/api/useDocInvitations.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-share/api/useDocInvitations.tsx @@ -7,7 +7,8 @@ import { fetchAPI, useAPIInfiniteQuery, } from '@/api'; -import { Invitation } from '@/docs/doc-share/types'; + +import { Invitation } from '../types'; export type DocInvitationsParams = { docId: string; diff --git a/src/frontend/apps/impress/src/features/docs/doc-share/api/useUpdateDocInvitation.ts b/src/frontend/apps/impress/src/features/docs/doc-share/api/useUpdateDocInvitation.ts index 51f22950..f7befde1 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-share/api/useUpdateDocInvitation.ts +++ b/src/frontend/apps/impress/src/features/docs/doc-share/api/useUpdateDocInvitation.ts @@ -6,7 +6,8 @@ import { import { APIError, errorCauses, fetchAPI } from '@/api'; import { Role } from '@/docs/doc-management'; -import { Invitation } from '@/docs/doc-share/types'; + +import { Invitation } from '../types'; import { KEY_LIST_DOC_INVITATIONS } from './useDocInvitations';