From fb05ddfc7c87014b637f87c4808871f16ab9ba90 Mon Sep 17 00:00:00 2001 From: Timofei Ponomarev Date: Tue, 28 Jan 2025 17:58:38 +0100 Subject: [PATCH] commit: refactor: move dialog context to providers directory This commit reorganizes the dialog-related code by: Moving DialogsProvider from context/ to providers/ directory Updating import paths across components to use the new location 3. Removing unused context files and types Consolidating dialog-related code for better maintainability This is a structural change that improves code organization while maintaining existing functionality. --- .../user-management/components/dialogs/dialogs.tsx | 2 +- .../hooks/useDialogHandlers/useDialogHandlers.ts | 2 +- .../components/page-components/content/content.tsx | 2 +- .../views/user-management/context/dialogs/index.ts | 1 - .../DialogsProvider/DialogsProvider.tsx} | 14 ++------------ .../providers/DialogsProvider/hooks/useDialogs.ts | 13 +++++++++++++ .../providers/DialogsProvider/index.ts | 2 ++ .../dialogs => providers/DialogsProvider}/types.ts | 0 .../user-management-context.tsx | 0 .../views/user-management/user-management-page.tsx | 2 +- 10 files changed, 21 insertions(+), 17 deletions(-) delete mode 100644 packages/ui/src/views/user-management/context/dialogs/index.ts rename packages/ui/src/views/user-management/{context/dialogs/context.tsx => providers/DialogsProvider/DialogsProvider.tsx} (73%) create mode 100644 packages/ui/src/views/user-management/providers/DialogsProvider/hooks/useDialogs.ts create mode 100644 packages/ui/src/views/user-management/providers/DialogsProvider/index.ts rename packages/ui/src/views/user-management/{context/dialogs => providers/DialogsProvider}/types.ts (100%) rename packages/ui/src/views/user-management/{context => providers}/user-management-context.tsx (100%) diff --git a/packages/ui/src/views/user-management/components/dialogs/dialogs.tsx b/packages/ui/src/views/user-management/components/dialogs/dialogs.tsx index aa69e24275..569c578184 100644 --- a/packages/ui/src/views/user-management/components/dialogs/dialogs.tsx +++ b/packages/ui/src/views/user-management/components/dialogs/dialogs.tsx @@ -1,5 +1,4 @@ import { useDialogHandlers } from '@/views/user-management/components/dialogs/hooks' -import { useDialogs } from '@/views/user-management/context/dialogs' import { DialogLabels, IDialogErrorStates, @@ -7,6 +6,7 @@ import { IDialogLoadingStates, IUserManagementPageProps } from '@/views/user-management/types' +import { useDialogs } from '@views/user-management/providers/DialogsProvider' import { CreateUserDialog } from './components/create-user' import { DeleteUserDialog } from './components/delete-user' diff --git a/packages/ui/src/views/user-management/components/dialogs/hooks/useDialogHandlers/useDialogHandlers.ts b/packages/ui/src/views/user-management/components/dialogs/hooks/useDialogHandlers/useDialogHandlers.ts index 676ed9ffff..c5627eff38 100644 --- a/packages/ui/src/views/user-management/components/dialogs/hooks/useDialogHandlers/useDialogHandlers.ts +++ b/packages/ui/src/views/user-management/components/dialogs/hooks/useDialogHandlers/useDialogHandlers.ts @@ -1,5 +1,5 @@ -import { useDialogs } from '@/views/user-management/context/dialogs/context' import { DialogLabels, IDialogHandlers } from '@/views/user-management/types' +import { useDialogs } from '@views/user-management/providers/DialogsProvider' export const useDialogHandlers = (handlers: IDialogHandlers) => { const { closeDialog, openDialog } = useDialogs() diff --git a/packages/ui/src/views/user-management/components/page-components/content/content.tsx b/packages/ui/src/views/user-management/components/page-components/content/content.tsx index 2b64378b89..12971b398d 100644 --- a/packages/ui/src/views/user-management/components/page-components/content/content.tsx +++ b/packages/ui/src/views/user-management/components/page-components/content/content.tsx @@ -7,7 +7,7 @@ import { UsersList } from '@/views/user-management/components/page-components/co import { ContentProps } from '@/views/user-management/components/page-components/content/types' import { Header } from '@/views/user-management/components/page-components/header' import { DialogLabels, UsersProps } from '@/views/user-management/types' -import { useDialogs } from '@views/user-management/context/dialogs' +import { useDialogs } from '@views/user-management/providers/DialogsProvider' export const Content = ({ userData, diff --git a/packages/ui/src/views/user-management/context/dialogs/index.ts b/packages/ui/src/views/user-management/context/dialogs/index.ts deleted file mode 100644 index 630b4d7e78..0000000000 --- a/packages/ui/src/views/user-management/context/dialogs/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './context' diff --git a/packages/ui/src/views/user-management/context/dialogs/context.tsx b/packages/ui/src/views/user-management/providers/DialogsProvider/DialogsProvider.tsx similarity index 73% rename from packages/ui/src/views/user-management/context/dialogs/context.tsx rename to packages/ui/src/views/user-management/providers/DialogsProvider/DialogsProvider.tsx index c19a4cdd2b..1bd3dab5bc 100644 --- a/packages/ui/src/views/user-management/context/dialogs/context.tsx +++ b/packages/ui/src/views/user-management/providers/DialogsProvider/DialogsProvider.tsx @@ -1,10 +1,10 @@ -import { createContext, useContext, useState } from 'react' +import { createContext, useState } from 'react' import { DialogLabels } from '@/views/user-management/types' import { DialogsContextType, DialogState } from './types' -const DialogsContext = createContext(undefined) +export const DialogsContext = createContext(undefined) export const DialogsProvider = ({ children }: { children: React.ReactNode }) => { const [dialogsOpenState, setDialogsOpenState] = useState({ @@ -33,13 +33,3 @@ export const DialogsProvider = ({ children }: { children: React.ReactNode }) => {children} ) } - -export const useDialogs = () => { - const context = useContext(DialogsContext) - - if (!context) { - throw new Error('useDialogs must be used within DialogsProvider') - } - - return context -} diff --git a/packages/ui/src/views/user-management/providers/DialogsProvider/hooks/useDialogs.ts b/packages/ui/src/views/user-management/providers/DialogsProvider/hooks/useDialogs.ts new file mode 100644 index 0000000000..f90ccdff62 --- /dev/null +++ b/packages/ui/src/views/user-management/providers/DialogsProvider/hooks/useDialogs.ts @@ -0,0 +1,13 @@ +import { useContext } from 'react' + +import { DialogsContext } from '@/views/user-management/providers/DialogsProvider' + +export const useDialogs = () => { + const context = useContext(DialogsContext) + + if (!context) { + throw new Error('useDialogs must be used within DialogsProvider') + } + + return context +} diff --git a/packages/ui/src/views/user-management/providers/DialogsProvider/index.ts b/packages/ui/src/views/user-management/providers/DialogsProvider/index.ts new file mode 100644 index 0000000000..fbde073f95 --- /dev/null +++ b/packages/ui/src/views/user-management/providers/DialogsProvider/index.ts @@ -0,0 +1,2 @@ +export * from './DialogsProvider' +export * from './hooks/useDialogs' diff --git a/packages/ui/src/views/user-management/context/dialogs/types.ts b/packages/ui/src/views/user-management/providers/DialogsProvider/types.ts similarity index 100% rename from packages/ui/src/views/user-management/context/dialogs/types.ts rename to packages/ui/src/views/user-management/providers/DialogsProvider/types.ts diff --git a/packages/ui/src/views/user-management/context/user-management-context.tsx b/packages/ui/src/views/user-management/providers/user-management-context.tsx similarity index 100% rename from packages/ui/src/views/user-management/context/user-management-context.tsx rename to packages/ui/src/views/user-management/providers/user-management-context.tsx diff --git a/packages/ui/src/views/user-management/user-management-page.tsx b/packages/ui/src/views/user-management/user-management-page.tsx index 17da014f89..a08ae0281c 100644 --- a/packages/ui/src/views/user-management/user-management-page.tsx +++ b/packages/ui/src/views/user-management/user-management-page.tsx @@ -2,11 +2,11 @@ import { SandboxLayout } from '@/views' import { Dialogs } from '@/views/user-management/components/dialogs' import { Content } from '@/views/user-management/components/page-components/content' import { UserManagementTabs } from '@/views/user-management/components/tabs' -import { DialogsProvider } from '@/views/user-management/context/dialogs/context' import { useUserManagement } from '@/views/user-management/hooks/use-user-management' import { IUserManagementPageProps } from '@/views/user-management/types' import { getFilterOptions, getSortDirections, getSortOptions } from '@views/repo/constants/filter-options' import { useFilters } from '@views/repo/hooks' +import { DialogsProvider } from '@views/user-management/providers/DialogsProvider' export const UserManagementPage: React.FC = ({ useAdminListUsersStore,