wiki/z-archive/ui_nyla/DEPENDENCY_MAP.md

516 lines
13 KiB
Markdown

# Dependency Map - Frontend Nyla
Diese Datei enthält eine detaillierte Dependency Map aller Code-Elemente im Frontend Nyla.
## Legende
- `→` = Import/Dependency
- `[Module]` = Modul/Namespace
- `(Hook)` = React Hook
- `(Component)` = React Component
- `(Context)` = React Context
- `(Type)` = TypeScript Type/Interface
---
## 1. Application Entry & Core
### main.tsx
```
main.tsx
→ react (StrictMode)
→ react-dom/client (createRoot)
→ App.tsx
```
### App.tsx
```
App.tsx
→ react-router-dom (BrowserRouter, Routes, Route)
→ react (useEffect)
→ pages/Login (Login)
→ pages/Register (Register)
→ auth/authProvider (AuthProvider)
→ auth/ProtectedRoute (ProtectedRoute)
→ contexts/LanguageContext (LanguageProvider)
→ pages/Home/Home (Home)
→ assets/styles/light.css
→ index.css
```
---
## 2. Authentication Layer
### auth/authProvider.tsx
```
auth/authProvider.tsx
→ @azure/msal-browser (AuthenticationResult, EventType, PublicClientApplication)
→ @azure/msal-react (MsalProvider)
→ auth/authConfig (msalConfig)
→ react (ReactNode, useEffect, useState)
```
### auth/ProtectedRoute.tsx
```
auth/ProtectedRoute.tsx
→ react-router-dom (Navigate)
→ hooks/useAuthentication (useAuth)
→ react (ReactNode)
```
### hooks/useAuthentication.ts
```
hooks/useAuthentication.ts
→ @azure/msal-react (useMsal, useIsAuthenticated)
→ api.ts (api)
→ react (useState, useCallback, useEffect)
```
---
## 3. API Layer
### api.ts
```
api.ts
→ axios (axios.create, AxiosInstance)
→ [Environment Variables]
```
### hooks/useApi.ts
```
hooks/useApi.ts
→ api.ts (api)
→ react (useState, useCallback)
```
---
## 4. Context Layer
### contexts/LanguageContext.tsx
```
contexts/LanguageContext.tsx
→ react (createContext, useContext, useState, useEffect, ReactNode)
→ locales/index (loadLanguage)
→ locales/types (Language, TranslationKeys)
```
### locales/index.ts
```
locales/index.ts
→ locales/de (de)
→ locales/en (en)
→ locales/fr (fr)
→ locales/types (Language, TranslationKeys, LanguageLoader)
```
---
## 5. Page Management System
### components/PageManager/PageManager.tsx
```
PageManager.tsx
→ react (useEffect, useState, Suspense)
→ react-router-dom (useLocation)
→ framer-motion (motion, AnimatePresence)
→ components/PageManager/pageConfigs (pageConfigs)
→ components/PageManager/PageManager.module.css
```
### components/PageManager/pageConfigs.ts
```
pageConfigs.ts
→ react (lazy)
→ components/PageManager/pageConfigInterface (PageConfig)
→ pages/Home/Dashboard (Dashboard) [lazy]
→ pages/Home/Dateien (Dateien) [lazy]
→ pages/Home/TeamBereich (TeamBereich) [lazy]
→ pages/Home/Connections (Connections) [lazy]
→ pages/Home/Workflows (Workflows) [lazy]
→ pages/Home/Einstellungen (Einstellungen) [lazy]
→ pages/Home/Prompts (Prompts) [lazy]
→ react-icons/* (Icons)
```
### components/PageManager/pageConfigInterface.ts
```
pageConfigInterface.ts
→ react (ComponentType)
→ react-icons (IconType)
```
---
## 6. Sidebar System
### components/Sidebar/Sidebar.tsx
```
Sidebar.tsx
→ react (React)
→ components/Sidebar/SidebarItem (SidebarItem)
→ components/Sidebar/SidebarUser (SidebarUser)
→ hooks/useSidebar (useSidebarFromPageConfigs)
→ components/Sidebar/sidebarLogic (useSidebarLogic)
→ components/Sidebar/sidebarTypes (SidebarProps)
→ components/Sidebar/SidebarStyles/Sidebar.module.css
→ react-icons/go (GoSidebarExpand, GoSidebarCollapse)
```
### hooks/useSidebar.ts
```
useSidebar.ts
→ components/PageManager/pageConfigs (getSidebarItems)
→ react (useMemo)
```
### components/Sidebar/sidebarLogic.ts
```
sidebarLogic.ts
→ react-router-dom (useLocation, useNavigate)
→ react (useState, useCallback, useEffect)
```
---
## 7. Dashboard & Workflow System
### pages/Home/Dashboard.tsx
```
Dashboard.tsx
→ react (useState, useCallback, useRef, useEffect)
→ react-router-dom (useSearchParams)
→ hooks/useWorkflows (useWorkflows)
→ components/Dashboard/DashboardChat/dashboardChatAreaTypes (Workflow)
→ components/Dashboard/DashboardChat/useWorkflowManager (useWorkflowManager)
→ contexts/LanguageContext (useLanguage)
→ components/Dashboard/DashboardChat/DashboardChat (DashboardChat)
→ pages/Home/HomeStyles/Dashboard.module.css
→ components/PageManager/pages.module.css
→ react-icons/io (IoMdArrowDropdown, IoMdClose)
```
### components/Dashboard/DashboardChat/DashboardChat.tsx
```
DashboardChat.tsx
→ react (React)
→ components/Dashboard/DashboardChat/DashboardChatArea (DashboardChatArea)
→ components/Dashboard/DashboardChat/dashboardChatAreaTypes (DashboardChatProps)
→ components/Dashboard/DashboardChatAreaStyles/DashboardChat.module.css
```
### components/Dashboard/DashboardChat/DashboardChatArea.tsx
```
DashboardChatArea.tsx
→ react (useState, useEffect, useRef, useCallback, useMemo)
→ components/Dashboard/DashboardChat/DashboardChatAreaMessageList (DashboardChatAreaMessageList)
→ components/Dashboard/DashboardChat/DashboardChatAreaInput (DashboardChatAreaInput)
→ components/Dashboard/DashboardChat/DashboardChatAreaConnectedFiles (DashboardChatAreaConnectedFiles)
→ components/Dashboard/DashboardChat/DashboardChatAreaFilePreview (DashboardChatAreaFilePreview)
→ components/Dashboard/DashboardChat/DashboardChatAreaLogItem (DashboardChatAreaLogItem)
→ components/Dashboard/DashboardChat/dashboardChatAreaTypes (Types)
→ components/Dashboard/DashboardChatAreaStyles/*.module.css
```
### components/Dashboard/DashboardChat/useWorkflowManager.ts
```
useWorkflowManager.ts
→ react (useState, useEffect, useCallback, useRef, useMemo)
→ hooks/useWorkflows (useWorkflow, useWorkflowStatus, useWorkflowMessages, useWorkflowLogs, useWorkflowOperations, StartWorkflowRequest)
→ components/Dashboard/DashboardChat/dashboardChatAreaTypes (WorkflowState, WorkflowActions)
```
### hooks/useWorkflows.ts
```
useWorkflows.ts
→ react (useState, useEffect)
→ hooks/useApi (useApiRequest)
→ components/Dashboard/DashboardChat/dashboardChatAreaTypes (Workflow, WorkflowMessage, WorkflowStats, WorkflowDocument, WorkflowLog)
```
---
## 8. Connections Module
### pages/Home/Connections.tsx
```
Connections.tsx
→ react (useState)
→ components/Connections (ConnectionsTable, useConnectionsLogic)
→ contexts/LanguageContext (useLanguage)
→ components/PageManager/pages.module.css
→ react-icons/io (IoIosLink)
```
### components/Connections/ConnectionsTable.tsx
```
ConnectionsTable.tsx
→ react (useState, useEffect)
→ components/Connections/connectionsLogic (useConnectionsLogic)
→ components/Connections/ConnectionEditModal (ConnectionEditModal)
→ components/Connections/ConnectionsErrorDisplay (ConnectionsErrorDisplay)
→ hooks/useConnections (useConnections)
→ contexts/LanguageContext (useLanguage)
→ components/Connections/ConnectionsTable.module.css
```
### components/Connections/connectionsLogic.tsx
```
connectionsLogic.tsx
→ react (useState, useCallback)
→ hooks/useConnections (useConnections, useConnectionOperations)
→ components/Connections/connectionsInterfaces (Connection Types)
```
### hooks/useConnections.ts
```
useConnections.ts
→ react (useState, useEffect, useCallback)
→ hooks/useApi (useApiRequest)
→ components/Connections/connectionsInterfaces (Connection Types)
```
---
## 9. Files Module
### pages/Home/Dateien.tsx
```
Dateien.tsx
→ react (useRef, useState)
→ components/Dateien (DateienTable)
→ hooks/useFiles (useFileOperations)
→ contexts/LanguageContext (useLanguage)
→ components/PageManager/pages.module.css
→ pages/Home/HomeStyles/Dateien.module.css
→ react-icons/io (IoMdCloudUpload)
```
### components/Dateien/DateienTable.tsx
```
DateienTable.tsx
→ react (useState, useEffect, useCallback)
→ components/Dateien/dateienLogic (useDateienLogic)
→ components/FilePreview (FilePreview)
→ hooks/useFiles (useFiles, useFileOperations)
→ contexts/LanguageContext (useLanguage)
→ components/Dateien/DateienTable.module.css
```
### hooks/useFiles.ts
```
useFiles.ts
→ react (useState, useEffect, useCallback)
→ hooks/useApi (useApiRequest)
```
### components/FilePreview/FilePreview.tsx
```
FilePreview.tsx
→ react (useState, useEffect)
→ components/FilePreview/renderers/* (Alle Renderer)
→ components/FilePreview/FilePreview.module.css
```
### components/FilePreview/renderers/*
```
renderers/
→ ApplicationRenderer.tsx
→ ErrorRenderer.tsx
→ HtmlRenderer.tsx
→ ImageRenderer.tsx
→ JsonRenderer.tsx
→ LoadingRenderer.tsx
→ PdfRenderer.tsx
→ TextRenderer.tsx
→ UnsupportedRenderer.tsx
→ index.ts (Exports)
```
---
## 10. Prompts Module
### pages/Home/Prompts.tsx
```
Prompts.tsx
→ react (useState)
→ components/Prompts (PromptsTable)
→ components/Popup (Popup, EditForm)
→ hooks/usePrompts (usePrompts, usePromptOperations)
→ contexts/LanguageContext (useLanguage)
→ components/PageManager/pages.module.css
→ react-icons/io (IoMdAdd)
```
### components/Prompts/PromptsTable.tsx
```
PromptsTable.tsx
→ react (useState, useEffect)
→ components/Prompts/promptsLogic (usePromptsLogic)
→ hooks/usePrompts (usePrompts, usePromptOperations)
→ contexts/LanguageContext (useLanguage)
→ components/Prompts/PromptsTable.module.css
```
### hooks/usePrompts.ts
```
usePrompts.ts
→ react (useState, useEffect, useCallback)
→ hooks/useApi (useApiRequest)
→ components/Prompts/promptsTypes (Prompt Types)
```
---
## 11. Workflows Module
### pages/Home/Workflows.tsx
```
Workflows.tsx
→ components/Workflows (WorkflowsTable)
→ contexts/LanguageContext (useLanguage)
→ components/PageManager/pages.module.css
→ pages/Home/HomeStyles/Workflows.module.css
```
### components/Workflows/WorkflowsTable.tsx
```
WorkflowsTable.tsx
→ react (useState, useEffect)
→ components/Workflows/workflowsLogic (useWorkflowsLogic)
→ hooks/useWorkflows (useWorkflows)
→ contexts/LanguageContext (useLanguage)
→ components/Workflows/WorkflowsTable.module.css
```
---
## 12. Popup/Modal System
### components/Popup/Popup.tsx
```
Popup.tsx
→ react (useEffect, ReactNode)
→ components/Popup/Popup.module.css
```
### components/Popup/EditForm.tsx
```
EditForm.tsx
→ react (useState, useEffect, useCallback)
→ components/Popup/EditForm.module.css
```
### components/Popup/ViewForm.tsx
```
ViewForm.tsx
→ react (ReactNode)
→ components/Popup/ViewForm.module.css
```
---
## 13. Form Generator
### components/FormGenerator/FormGenerator.tsx
```
FormGenerator.tsx
→ react (useState, useEffect)
→ components/FormGenerator/FormGenerator.module.css
```
---
## 14. Users & Settings
### pages/Home/Einstellungen.tsx
```
Einstellungen.tsx
→ react (useState, useEffect, useRef)
→ hooks/useUsers (useCurrentUser, useUser, User)
→ contexts/LanguageContext (useLanguage, Language)
→ components/settings/settingsUser (SettingsUser)
→ components/PageManager/pages.module.css
→ pages/Home/HomeStyles/Einstellungen.module.css
```
### hooks/useUsers.ts
```
useUsers.ts
→ react (useState, useEffect, useCallback)
→ hooks/useApi (useApiRequest)
```
---
## 15. Team/Mitglieder Module
### pages/Home/TeamBereich.tsx
```
TeamBereich.tsx
→ components/Mitglieder/MitgliederTable (MitgliederTable)
→ components/PageManager/pages.module.css
```
### components/Mitglieder/MitgliederTable.tsx
```
MitgliederTable.tsx
→ react (useState, useEffect)
→ components/Mitglieder/mitgliederLogic (useMitgliederLogic)
→ contexts/LanguageContext (useLanguage)
→ components/Mitglieder/MitgliederTable.module.css
```
---
## 16. SharePoint Test Module
### pages/Home/TestSharepoint.tsx
```
TestSharepoint.tsx
→ react (useState)
→ components/TestSharepoint (TestSharepointTable, useTestSharepointLogic)
→ contexts/LanguageContext (useLanguage)
→ components/PageManager/pages.module.css
→ pages/Home/HomeStyles/TestSharepoint.module.css
→ react-icons/io (IoIosRefresh, IoIosLink)
```
### hooks/useSharePointTest.ts
```
useSharePointTest.ts
→ react (useState, useEffect, useCallback)
→ hooks/useApi (useApiRequest)
```
---
## Dependency Summary
### Most Imported Modules
1. **react** - In fast allen Komponenten und Hooks
2. **react-router-dom** - Für Routing und Navigation
3. **hooks/useApi** - Für API-Aufrufe
4. **contexts/LanguageContext** - Für Internationalisierung
5. **components/PageManager/pageConfigs** - Für Seiten-Konfiguration
### Core Infrastructure Dependencies
- `api.ts` → Alle API-Hooks
- `hooks/useApi.ts` → Alle Feature-Hooks
- `contexts/LanguageContext.tsx` → Alle Komponenten mit i18n
- `components/PageManager/pageConfigs.ts` → PageManager & Sidebar
### External Library Dependencies
- **@azure/msal-*** → Authentication
- **axios** → HTTP Client
- **framer-motion** → Animations
- **react-icons** → Icons
- **xstate** → State Machine (optional)
---
*Zuletzt aktualisiert: 2025-01-15*