diff --git a/frontend/src/features/flows/files/flow-files.tsx b/frontend/src/features/flows/files/flow-files.tsx index cb7f6185..c5b27913 100644 --- a/frontend/src/features/flows/files/flow-files.tsx +++ b/frontend/src/features/flows/files/flow-files.tsx @@ -21,9 +21,9 @@ import { Empty, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from '@/ import { Form, FormControl, FormField, FormItem } from '@/components/ui/form'; import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/components/ui/input-group'; import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; +import { copyToClipboard } from '@/features/report'; import { StatusType } from '@/graphql/types'; import { useFilesDragAndDrop } from '@/hooks/use-files-drag-and-drop'; -import { copyToClipboard } from '@/lib/report'; import { useFlow } from '@/providers/flow-provider'; import { FlowFilesAttachResourcesDialog } from './flow-files-attach-resources-dialog'; diff --git a/frontend/src/features/report/index.ts b/frontend/src/features/report/index.ts new file mode 100644 index 00000000..cc75780c --- /dev/null +++ b/frontend/src/features/report/index.ts @@ -0,0 +1,8 @@ +export { + copyToClipboard, + downloadTextFile, + generateFileName, + generatePDFBlob, + generatePDFFromMarkdown, + generateReport, +} from './report'; diff --git a/frontend/src/lib/report-pdf.tsx b/frontend/src/features/report/report-pdf.tsx similarity index 99% rename from frontend/src/lib/report-pdf.tsx rename to frontend/src/features/report/report-pdf.tsx index d66de790..b0f3dba3 100644 --- a/frontend/src/lib/report-pdf.tsx +++ b/frontend/src/features/report/report-pdf.tsx @@ -1,7 +1,7 @@ import { Document, Font, Page, pdf, StyleSheet, Text, View } from '@react-pdf/renderer'; import { marked } from 'marked'; -import { Log } from './log'; +import { Log } from '@/lib/log'; // Register Noto Sans (covers Latin + Cyrillic + Greek + many other scripts) Font.register({ diff --git a/frontend/src/lib/report.ts b/frontend/src/features/report/report.ts similarity index 99% rename from frontend/src/lib/report.ts rename to frontend/src/features/report/report.ts index 0a16e58f..2b56ba3f 100644 --- a/frontend/src/lib/report.ts +++ b/frontend/src/features/report/report.ts @@ -3,8 +3,7 @@ import GithubSlugger from 'github-slugger'; import type { FlowFragmentFragment, TaskFragmentFragment } from '@/graphql/types'; import { StatusType } from '@/graphql/types'; - -import { Log } from './log'; +import { Log } from '@/lib/log'; // Helper function to get emoji for status const getStatusEmoji = (status: StatusType): string => { diff --git a/frontend/src/pages/flows/flow-report.tsx b/frontend/src/pages/flows/flow-report.tsx index a86e5922..a72cebf2 100644 --- a/frontend/src/pages/flows/flow-report.tsx +++ b/frontend/src/pages/flows/flow-report.tsx @@ -3,9 +3,9 @@ import { useParams, useSearchParams } from 'react-router-dom'; import Logo from '@/components/icons/logo'; import Markdown from '@/components/shared/markdown'; +import { generateFileName, generatePDFFromMarkdown, generateReport } from '@/features/report'; import { useFlowReportQuery } from '@/graphql/types'; import { Log } from '@/lib/log'; -import { generateFileName, generatePDFFromMarkdown, generateReport } from '@/lib/report'; type PdfPhase = 'done' | 'error' | 'idle'; type ReportState = 'content' | 'error' | 'generating' | 'loading'; diff --git a/frontend/src/pages/flows/flow.tsx b/frontend/src/pages/flows/flow.tsx index 3037a9a0..01ed969b 100644 --- a/frontend/src/pages/flows/flow.tsx +++ b/frontend/src/pages/flows/flow.tsx @@ -40,11 +40,11 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip import FlowCentralTabs from '@/features/flows/flow-central-tabs'; import FlowTabs from '@/features/flows/flow-tabs'; import { useFlowDetailNavigation } from '@/features/flows/use-flow-detail-navigation'; +import { copyToClipboard, downloadTextFile, generateFileName, generateReport } from '@/features/report'; import { ResultType, StatusType, useRenameFlowMutation } from '@/graphql/types'; import { useBreakpoint } from '@/hooks/use-breakpoint'; import { useFlowTabDetection } from '@/hooks/use-flow-tab-detection'; import { Log } from '@/lib/log'; -import { copyToClipboard, downloadTextFile, generateFileName, generateReport } from '@/lib/report'; import { formatName } from '@/lib/utils/format'; import { useFavorites } from '@/providers/favorites-provider'; import { useFlow } from '@/providers/flow-provider'; diff --git a/frontend/src/pages/resources/resources.tsx b/frontend/src/pages/resources/resources.tsx index aa14b002..ef9dbaa7 100644 --- a/frontend/src/pages/resources/resources.tsx +++ b/frontend/src/pages/resources/resources.tsx @@ -39,6 +39,7 @@ import { FileDropZone } from '@/components/ui/file-drop-zone'; import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/components/ui/input-group'; import { Separator } from '@/components/ui/separator'; import { SidebarTrigger } from '@/components/ui/sidebar'; +import { copyToClipboard } from '@/features/report'; import { ResourcesCopyDialog } from '@/features/resources/resources-copy-dialog'; import { ResourcesMkdirDialog } from '@/features/resources/resources-mkdir-dialog'; import { ResourcesMoveDialog } from '@/features/resources/resources-move-dialog'; @@ -50,7 +51,6 @@ import { useResourcesUpload } from '@/features/resources/use-resources-upload'; import { useEffectAfterMount } from '@/hooks/use-effect-after-mount'; import { useFilesDragAndDrop } from '@/hooks/use-files-drag-and-drop'; import { usePageStorageKeys } from '@/hooks/use-page-storage-keys'; -import { copyToClipboard } from '@/lib/report'; import { migrateLegacyViewOptions, saveViewOptions } from '@/lib/view-options-storage'; import { useResources } from '@/providers/resources-provider';