Project: doctolib-doctolib · Branch: TIGAH-2492_fix-document-view-after-upload · Mode: · Model: claude-haiku-4-5-20251001 Stats: 1 user messages, 35 tool calls, tools used: Grep, Glob, Read, Bash. Conversation Turn 1 — User I need to find which component is responsible for displaying documents when clicking "dokumente anzeigen" on the timeline. Search for: 1. Components that use useDecryptedDocumentsShow hook 2. Timeline document viewer components 3. Any components related to "dokumente anzeigen" or document viewing in timeline 4. Check if there are other query hooks being used for document viewing besides useDecryptedDocumentsShow The goal is to verify that the component is actually using the query hook we modified (useDecryptedDocumentsShow from decryptedDocuments.ts). Be thorough - check in engines/ehr (timeline), engines/documents, and main app directories. Turn 1 — Assistant I'll search systematically for components related to displaying documents in the timeline, particularly focusing on the "dokumente anzeigen" functionality and the useDecryptedDocumentsShow hook. Tools used: - Grep: useDecryptedDocumentsShow Tools used: - Grep: dokumente anzeigen Tools used: - Glob: /decryptedDocuments.ts Tool results: → result (ok): No files found Tool results: → result (ok): Found 17 files engines/documents/app/assets/javascripts/queries/documents/doctor_app/decryptedDocuments.ts app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/ConsultationDocumentItem/PaperFormBody.tsx app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/redesign/DigitalFormItemDetails/MusterItemDetails.tsx app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/histo …(truncated, 1492 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/engines/documents/app/assets/javascripts/queries/documents/doctor_app/decryptedDocuments.ts Good! I found several files using useDecryptedDocumentsShow. Let me now read the hook definition and check the main components: Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/engines/documents/app/assets/javascripts/queries/documents/doctor_app/decryptedDocuments.ts Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/hooks/useTimelineDocumentItemController.ts Tools used: - Grep: Timeline.Document|DocumentItem.Timeline Tool results: → result (ok): 1→import type { AccountContextType } from '@doctolib/shared_context' 2→import { AccountContext } from '@doctolib/shared_context' 3→import type { DecryptFile } from 'engines/e2ee/public' 4→import { TankerContext } from 'engines/e2ee/public' 5→import { useQuery, useQueryClient } from '@tanstack/react-query' 6→import { handleEncryptedDocument } from 'components/shared/documents/utils' 7→import { HttpClientContext } from 'contexts/ReactQueryProvider' 8→import { use …(truncated, 5467 more chars) Tool results: → result (ok): 1→import useCarePlansWithQuotation from '@doctolib/financial_os_api/public/hooks/useCarePlansWithQuotation' 2→import { updateDocumentCarePlan } from '@doctolib/financial_os_api/public/modules/carePlanHelper' 3→import type { CarePlanOptionValue } from '@doctolib/financial_os_api/public/types/CarePlanSelectorTypes' 4→import { AccountContext } from '@doctolib/shared_context' 5→import { printDocument } from 'components/doctor/desktop/pages/patient/patient-file-tabs/consultation/U …(truncated, 11201 more chars) Tool results: → result (ok): No files found Perfect! Now let me check the actual component that uses this controller: Tools used: - Glob: /TimelineItemDetails//DocumentItem.tsx Tools used: - Grep: useTimelineDocumentItemController Tool results: → result (ok): No files found Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/shared/ItemDetailsBody/DocumentItemDetailsBody.test.tsx /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/shared/ItemDetailsBody/DocumentItemDetailsBody.tsx /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/ …(truncated, 106 more chars) Let me search more specifically for the file that actually uses this controller: Tools used: - Bash: grep -r "useTimelineDocumentItemController" /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts --include=".tsx" --include=".ts" 2>/dev/null Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/redesign/DocumentItemDetails/DocumentItemDetails.tsx Tool results: → result (ok): 1→import { IconButton } from '@doctolib/design-system/IconButton' 2→import useTimelineDocumentItemController from 'components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/hooks/useTimelineDocumentItemController' 3→import HeaderItemDetails from 'components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/redesign/shared/views/HeaderItemDetails' 4→import DocumentItemDetailsBody from 'components/doctor/desktop/pages/patient/pati …(truncated, 9377 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/redesign/DocumentItemDetails/DocumentItemDetails.tsx:import useTimelineDocumentItemController from 'components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/hooks/useTimelineDocumentItemController' /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/his …(truncated, 713 more chars) Now let me check the timeline to see how the document viewer is triggered and also check the body component: Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/shared/ItemDetailsBody/DocumentItemDetailsBody.tsx Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib -path "/history/panel-items/" -name "Document" -type f | head -20 Tool results: → result (ok): 1→import { isFeatureEnabled } from '@doctolib/variation_management' 2→import type { VersionInfo } from 'components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/CdaVersionInfo' 3→import CdaVersionInfo from 'components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/CdaVersionInfo' 4→import { Text } from '@doctolib/design-system/Text' 5→import i18n from 'services/i18n' 6→import { SpinnerLoader } from '@doctolib/design-system/Spinner …(truncated, 5883 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/SlidingPanelDocumentPreview.jsx /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/SharedDocumentStatusIcon.jsx /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/ConsultationDocu …(truncated, 1503 more chars) Now let me check the SlidingPanelDocumentPreview component, which seems to be where the document is actually displayed: Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/SlidingPanelDocumentPreview.jsx Tool results: → result (ERROR): InputValidationError: Read failed due to the following issue: An unexpected parameter command was provided Let me fix that: Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/SlidingPanelDocumentPreview.jsx Tools used: - Bash: grep -r "dokumente anzeigen\|Dokumente anzeigen" /Users/USER/workspace/doctolib/doctolib --include=".yml" --include=".yaml" --include=".ts" --include=".tsx" --include=".js" --include=".jsx" …(truncated, 23 more chars) Tool results: → result (ok): 1→import { useContext, useState } from 'react' 2→import ReactDOM from 'react-dom' 3→import i18n from 'services/i18n' 4→import { Alert } from '@doctolib/design-system/Alert' 5→import Link from 'components/base/Link' 6→import useTimelineItemDetailsPerformance from 'components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/useTimelineItemDetailsPerformance' 7→import DocumentPreviewContent from 'components/shared/documents/DocumentPreviewCont …(truncated, 5454 more chars) Tool results: → result (ok): Command running in background with ID: bdb0dbe. Output is being written to: /private/tmp/claude/-Users-clertonra-workspace-doctolib-doctolib/tasks/bdb0dbe.output Let me wait for that command to complete and search for timeline components: Tools used: - Bash: cat /private/tmp/claude/-Users-clertonra-workspace-doctolib-doctolib/tasks/bdb0dbe.output 2>/dev/null || echo "Still running..." Tools used: - Glob: /history/panel-items/TimelineDocument.tsx Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib/engines/ehr -name "TimelineDocument" -o -name "DocumentTimeline" 2>/dev/null | head -20 Tool results: → result (ok) Tool results: → result (ok) Tool results: → result (ok): No files found Let me look for how the timeline displays documents and where "dokumente anzeigen" is called: Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib/engines/ehr -name ".tsx" -o -name ".ts" 2>/dev/null | grep -i document | head -20 Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts/queries/ehr/patients/documents.ts /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts/queries/ehr/patients/clinicalDocuments.ts /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts/queries/ehr/IdentityDocumentTypes.ts /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts/components/doctor/shared/ClinicalDocuments/EPrescriptionConsent.tsx /Users/USER/workspa …(truncated, 2617 more chars) Let me check the timeline module for document viewing. Let me search for where the timeline items click handler calls the document viewer: Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib/engines/ehr -path "/modules/" -name "Timeline" -type f 2>/dev/null | head -20 Tools used: - Bash: grep -r "showDocumentDetails\|showDocument\|onDocumentClick" /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts --include=".tsx" --include=".ts" 2>/dev/null | head -20 Tool results: → result (ok) Tool results: → result (ok) Let me search more broadly for timeline components and the document show action: Tools used: - Bash: grep -r "@doctolib/ehr-timeline" /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts --include=".tsx" --include=".ts" 2>/dev/null | head -10 Tools used: - Bash: ls -la /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts/modules/ Tool results: → result (ok): drwxr-xr-x clertonra staff 128 B Wed Dec 17 16:18:23 2025 . drwxr-xr-x clertonra staff 416 B Wed Dec 17 16:18:23 2025 .. drwxr-xr-x clertonra staff 96 B Wed Dec 17 16:18:23 2025 ConsultationDocumentForm drwxr-xr-x clertonra staff 128 B Wed Dec 17 16:18:23 2025 desktop Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/types/doctor/api/TimelineItem.ts:import type { TimelineItemDigitalForm, TimelineItemPublicSickNote } from '@doctolib/ehr-timeline' /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/types/doctor/api/TimelineItem.ts:import type { EncryptedTimelineItemRichText, TimelineItemRichText } from '@doctolib/ehr-timeline/TimelineItemRichText' /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/types/doctor/api/TimelineIte …(truncated, 1771 more chars) Let me check the desktop modules in the ehr engine: Tools used: - Bash: ls -la /Users/USER/workspace/doctolib/doctolib/engines/ehr/app/assets/javascripts/modules/desktop/ Tool results: → result (ok): drwxr-xr-x clertonra staff 128 B Wed Dec 17 16:18:23 2025 . drwxr-xr-x clertonra staff 128 B Wed Dec 17 16:18:23 2025 .. drwxr-xr-x clertonra staff 224 B Wed Dec 17 16:18:23 2025 care-plan drwxr-xr-x clertonra staff 128 B Wed Dec 17 16:18:23 2025 event-status-context-menu Let me check if there's a timeline list component in ehr-timeline package or in the main app: Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib -path "packages/ehr-timeline" -type d 2>/dev/null Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/node_modules /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/node_modules/.bin /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/node_modules/@doctolib /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/tests /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src /Use …(truncated, 3027 more chars) Now let me check the main timeline component list to see how documents are displayed: Tools used: - Bash: ls -la /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src/components/PatientTimeline/VirtualTimelineModule/views/ Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src -name "Document" -type f 2>/dev/null Tool results: → result (ok): drwxr-xr-x clertonra staff 128 B Thu Jan 15 14:04:40 2026 . drwxr-xr-x clertonra staff 192 B Fri Jan 23 16:22:06 2026 .. .rw-r--r-- clertonra staff 2.4 KB Thu Jan 15 14:04:40 2026 VirtualTimelineItem.tsx .rw-r--r-- clertonra staff 2.4 KB Thu Jan 15 14:04:40 2026 VirtuosoTimelineItem.tsx Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src/components/TimelineFilters/SearchAndFiltersWithFrDocumentClassificationModule/SearchAndFiltersWithDocumentClassificationModule.tsx Let me look for how documents are handled in the timeline - checking what triggers showing the document: Tools used: - Bash: grep -r "setActiveTimelineItem\|useActiveTimelineItem" /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline --include=".tsx" --include=".ts" 2>/dev/null | head -20 Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src/components/PatientTimeline/EhrPatientTimeline.tsx:import useActiveTimelineItem from '../../hooks/useActiveTimelineItem' /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src/components/PatientTimeline/EhrPatientTimeline.tsx: const { hasActiveTimelineItem, setActiveTimelineItem } = useActiveTimelineItem() /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src/components/Patien …(truncated, 1586 more chars) Perfect! Now I have the flow. Let me verify the query hooks being used in the controller and also check what other hooks might be used: Tools used: - Bash: grep -r "useDecrypted\|useDocuments\|useDocument" /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDeta …(truncated, 94 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/DocumentItemDetails/useDocumentItemsVariant.ts:const useDocumentItemsVariant = (): DocumentCardCategorizationVariant => /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/DocumentItemDetails/useDocumentItemsVariant.ts:export default useDocumentItemsVari …(truncated, 3233 more chars) Excellent! Now let me check the documents query hooks to see all available ones: Tools used: - Bash: ls -la /Users/USER/workspace/doctolib/doctolib/engines/documents/app/assets/javascripts/queries/documents/doctor_app/ Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/engines/documents/app/assets/javascripts/queries/documents/doctor_app/documents.ts (1–100) Tool results: → result (ok): 1→/ 2→ @file 3→ @deprecated This file is deprecated and will be removed in future releases. 4→ Please use the new implementation in packages/@doctolib/documents-ui/src/data/queries/documents.ts. 5→ This refactor happens because of the react query migration to v5. 6→ Feel free to move endpoints to this new file. 7→ / 8→ 9→import path from 'path' 10→import { useContext } from 'react' 11→import type { DoctorAppDocument } from '@doctolib/f …(truncated, 4820 more chars) Tool results: → result (ok): drwxr-xr-x clertonra staff 288 B Fri Jan 30 09:34:51 2026 . drwxr-xr-x clertonra staff 128 B Wed Dec 17 16:18:23 2025 .. drwxr-xr-x clertonra staff 224 B Thu Jan 15 14:05:25 2026 appointments .rw-r--r-- clertonra staff 16 B Wed Dec 17 16:18:23 2025 CODEOWNERS.local .rw-r--r-- clertonra staff 4.5 KB Thu Jan 29 17:03:30 2026 decryptedDocuments.ts .rw-r--r-- clertonra staff 21 KB Fri Jan 30 09:34:51 2026 documents.ts drwxr-xr-x clertonra staff 128 B Thu Jan 15 14:05:25 2026 patients .rw-r--r …(truncated, 165 more chars) Now let me create a comprehensive summary by checking how everything flows together. Let me verify which component is the primary document viewer: Tools used: - Bash: grep -r "dokumente\|Dokumente" /Users/USER/workspace/doctolib/doctolib/engines/ehr --include=".tsx" --include=".ts" 2>/dev/null | grep -i "show\|view\|anzeigen" | head -10 Tool results: → result (ok) Let me search for the localization keys: Tools used: - Bash: find /Users/USER/workspace/doctolib/doctolib -name ".yml" -o -name "*.yaml" 2>/dev/null | xargs grep -l "dokumente anzeigen\|Dokumente anzeigen" 2>/dev/null | head -5 Tool results: → result (ok): /Users/USER/workspace/doctolib/doctolib/config/locales/de.yml Let me verify by searching for the translations: Tools used: - Bash: grep -A 2 -B 2 "dokumente anzeigen\|Dokumente anzeigen" /Users/USER/workspace/doctolib/doctolib/config/locales/de.yml | head -20 Tool results: → result (ok): dialog_text: Sind Sie sicher, dass Sie das Dokument löschen möchten? dialog_title: Dokument löschen? see_more_documents: Weitere Dokumente anzeigen title: Zum Signieren edit_consultation: -- appointment: Termin appointments: access_documents: Dokumente anzeigen anonymous_show: account_required: Bitte loggen Sie sich ein, um mit der Videosprechstunde fortzufahren. -- other: "%{count} Rezepte" t …(truncated, 278 more chars) Perfect! Now let me create a comprehensive summary. Let me just verify the complete flow by checking how the timeline item details are opened: Tools used: - Read: /Users/USER/workspace/doctolib/doctolib/packages/@doctolib/ehr-timeline/src/components/PatientTimeline/VirtualTimelineModule/useVirtualTimelineModuleController.ts (1–80) Tool results: → result (ok): 1→import { useMemo } from 'react' 2→import useActiveTimelineItem from '../../../hooks/useActiveTimelineItem' 3→import type { TimelineGroup, VirtualTimelineItem } from './types' 4→ 5→type Props = { 6→ timelineGroups: TimelineGroup[] 7→} 8→ 9→const useVirtualTimelineModuleController = ({ timelineGroups = [] }: Props) => { 10→ const { setActiveTimelineItem } = useActiveTimelineItem() 11→ 12→ // Memoize the flattening operation to avoid recomput …(truncated, 3141 more chars) Perfect! Now I have all the information I need. Let me create a comprehensive report: Summary: Document Viewing Component Analysis I've thoroughly searched the codebase to identify the components responsible for displaying documents when clicking "dokumente anzeigen" on the timeline. Here's my comprehensive findings: 1. Main Query Hook in Use: useDecryptedDocumentsShow Location: /Users/USER/workspace/doctolib/doctolib/engines/documents/app/assets/javascripts/queries/documents/doctor_app/decryptedDocuments.ts This is the primary hook being used for document viewing. It: - Handles both encrypted and non-encrypted documents - Manages decryption logic via Tanker - Returns either a decrypted file or a URL to the document - Includes caching with 5-minute stale time and cache time - Has two variants: useDecryptedDocumentsShow (for viewing) and usePrefetchDecryptedDocumentsShow (for prefetching) 2. Component Using the Hook: DocumentItemDetails Location: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/redesign/DocumentItemDetails/DocumentItemDetails.tsx This is the main component that displays document details when a user clicks on a document in the timeline. It uses the hook via the controller. 3. Controller: useTimelineDocumentItemController Location: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/hooks/useTimelineDocumentItemController.ts This controller: - Line 82: Uses useDecryptedDocumentsShow({ document }) to fetch/decrypt the document - Returns decryptedDocumentData and isLoading state - Handles document actions: view, print, download, delete - Also uses useDocumentsUpdate from the same documents query file 4. Document Preview Component: DocumentItemDetailsBody Location: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/TimelineItemDetails/shared/ItemDetailsBody/DocumentItemDetailsBody.tsx This component receives: - decryptedDocumentData from the controller - isLoading state - Renders document metadata and preview via SlidingPanelDocumentPreview 5. Document Preview Renderer: SlidingPanelDocumentPreview Location: /Users/USER/workspace/doctolib/doctolib/app/assets/javascripts/components/doctor/desktop/pages/patient/patient-file-tabs/history/panel-items/SlidingPanelDocumentPreview.jsx This component: - Receives the decrypted document URL from decryptedDocumentData.url - Uses DocumentPreviewContent to display the actual document - Handles fallback UI for unsupported formats 6. How It's Triggered: Timeline Flow The flow follows this path: 1. User clicks on a timeline item (document) in the timeline 2. @doctolib/ehr-timeline package's VirtualTimelineModule calls setActiveTimelineItem 3. This opens the timeline item details panel 4. For documents, DocumentItemDetails component is rendered 5. useTimelineDocumentItemController is invoked, which calls useDecryptedDocumentsShow 6. The decrypted document URL/file is displayed 7. Other Document Query Hooks (Not Used for Timeline) The documents.ts file contains other hooks but they are DEPRECATED (see line 1-7 of documents.ts): - useDocumentsCreate - useDocumentsShow - useDocumentsUpdate - useDocumentsDelete These are being replaced by the new implementation in packages/@doctolib/documents-ui/src/data/queries/documents.ts 8. Other Components Using useDecryptedDocumentsShow Found in 17 files total: - MusterItemDetails.tsx (digital forms) - DigaItemDetails.tsx (digital forms) - PaperFormBody.tsx (consultation documents) - Various other modules in packages Verification Result: ✅ YES The component IS using useDecryptedDocumentsShow from the modified file at /Users/USER/workspace/doctolib/doctolib/engines/documents/app/assets/javascripts/queries/documents/doctor_app/decryptedDocuments.ts. The complete call chain for timeline document display is: Timeline Item Click → DocumentItemDetails component → useTimelineDocumentItemController → useDecryptedDocumentsShow (from decryptedDocuments.ts) ← YOUR MODIFIED HOOK → DocumentItemDetailsBody component → SlidingPanelDocumentPreview component → DocumentPreviewContent (renders the actual document)