mirror of
https://github.com/vxcontrol/pentagi.git
synced 2026-08-23 03:26:37 +00:00
refactor(frontend): consolidate overwrite and unsaved-changes into module folders
Group the overwrite trio (OverwriteConfirmDialog, OverwriteCtaButtons, useOverwriteAction) into components/shared/overwrite/ — they cross-import the OverwriteConflict type and 12 consumers always pull from the same logical module. Same pattern for the unsaved-changes pair: move the dialog from components/shared/ and the UI-agnostic guard hook from hooks/ into components/shared/unsaved-changes/. Each folder ships an index.ts so consumers reach the module through one import path.
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
export { OverwriteConfirmDialog } from './overwrite-confirm-dialog';
|
||||
export type { OverwriteConflict } from './overwrite-confirm-dialog';
|
||||
export { OverwriteCtaButtons } from './overwrite-cta-buttons';
|
||||
export { useOverwriteAction } from './use-overwrite-action';
|
||||
export type { OverwriteOutcome } from './use-overwrite-action';
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import type { OverwriteConflict } from './overwrite-confirm-dialog';
|
||||
|
||||
/**
|
||||
* Discriminated outcome of a server action that supports an overwrite flag.
|
||||
@@ -0,0 +1,4 @@
|
||||
export { UnsavedChangesDialog } from './unsaved-changes-dialog';
|
||||
export type { UnsavedChangesDialogProps } from './unsaved-changes-dialog';
|
||||
export { useUnsavedChangesGuard } from './use-unsaved-changes-guard';
|
||||
export type { UnsavedChangesGuard, UseUnsavedChangesGuardArgs } from './use-unsaved-changes-guard';
|
||||
@@ -2,9 +2,7 @@ import { FolderInput, Search, X } from 'lucide-react';
|
||||
import { useCallback, useMemo, useState } from 'react';
|
||||
|
||||
import { FileManager, type FileNode } from '@/components/shared/file-manager';
|
||||
import { OverwriteConfirmDialog } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import { OverwriteCtaButtons } from '@/components/shared/overwrite-cta-buttons';
|
||||
import { useOverwriteAction } from '@/components/shared/use-overwrite-action';
|
||||
import { OverwriteConfirmDialog, OverwriteCtaButtons, useOverwriteAction } from '@/components/shared/overwrite';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import {
|
||||
Dialog,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { FileNode } from '@/components/shared/file-manager';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite';
|
||||
|
||||
import { CONTAINER_PATH_PREFIX, RESOURCES_PATH_PREFIX } from './flow-files-constants';
|
||||
|
||||
|
||||
@@ -4,11 +4,9 @@ import { useEffect, useMemo } from 'react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
|
||||
import type { FileNode } from '@/components/shared/file-manager';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite';
|
||||
|
||||
import { OverwriteConfirmDialog } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import { OverwriteCtaButtons } from '@/components/shared/overwrite-cta-buttons';
|
||||
import { useOverwriteAction } from '@/components/shared/use-overwrite-action';
|
||||
import { OverwriteConfirmDialog, OverwriteCtaButtons, useOverwriteAction } from '@/components/shared/overwrite';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form';
|
||||
|
||||
@@ -7,9 +7,7 @@ import {
|
||||
type FileManagerBulkAction,
|
||||
type FileNode,
|
||||
} from '@/components/shared/file-manager';
|
||||
import { OverwriteConfirmDialog } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import { OverwriteCtaButtons } from '@/components/shared/overwrite-cta-buttons';
|
||||
import { useOverwriteAction } from '@/components/shared/use-overwrite-action';
|
||||
import { OverwriteConfirmDialog, OverwriteCtaButtons, useOverwriteAction } from '@/components/shared/overwrite';
|
||||
import {
|
||||
Autocomplete,
|
||||
AutocompleteContent,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
|
||||
import type { OverwriteOutcome } from '@/components/shared/use-overwrite-action';
|
||||
import type { OverwriteOutcome } from '@/components/shared/overwrite';
|
||||
|
||||
import { resourceIdsToWire } from '@/features/resources/resources-rest';
|
||||
import { api, getApiErrorMessage, getApiErrorStatusCode } from '@/lib/axios';
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useCallback, useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
import { z } from 'zod';
|
||||
|
||||
import type { OverwriteOutcome } from '@/components/shared/use-overwrite-action';
|
||||
import type { OverwriteOutcome } from '@/components/shared/overwrite';
|
||||
import type { RestResourceList } from '@/features/resources/resources-rest';
|
||||
|
||||
import { pluralizeItems } from '@/features/resources/resources-utils';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
|
||||
import type { OverwriteOutcome } from '@/components/shared/use-overwrite-action';
|
||||
import type { OverwriteOutcome } from '@/components/shared/overwrite';
|
||||
|
||||
import { api, getApiErrorMessage, getApiErrorStatusCode } from '@/lib/axios';
|
||||
|
||||
|
||||
@@ -12,12 +12,11 @@ import type {
|
||||
} from '@/graphql/types';
|
||||
|
||||
import { HeaderButton } from '@/components/shared/header-button';
|
||||
import { UnsavedChangesDialog } from '@/components/shared/unsaved-changes-dialog';
|
||||
import { UnsavedChangesDialog, useUnsavedChangesGuard } from '@/components/shared/unsaved-changes';
|
||||
import { Form } from '@/components/ui/form';
|
||||
import { Spinner } from '@/components/ui/spinner';
|
||||
import { KnowledgeAnswerType, KnowledgeDocType, KnowledgeGuideType } from '@/graphql/types';
|
||||
import { useBreakpoint } from '@/hooks/use-breakpoint';
|
||||
import { useUnsavedChangesGuard } from '@/hooks/use-unsaved-changes-guard';
|
||||
import { Log } from '@/lib/log';
|
||||
|
||||
import { KnowledgeFormLayoutDesktop, KnowledgeFormLayoutMobile } from './knowledge-form-layout';
|
||||
|
||||
@@ -4,11 +4,9 @@ import { useEffect, useMemo } from 'react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
|
||||
import type { FileNode } from '@/components/shared/file-manager';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite';
|
||||
|
||||
import { OverwriteConfirmDialog } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import { OverwriteCtaButtons } from '@/components/shared/overwrite-cta-buttons';
|
||||
import { useOverwriteAction } from '@/components/shared/use-overwrite-action';
|
||||
import { OverwriteConfirmDialog, OverwriteCtaButtons, useOverwriteAction } from '@/components/shared/overwrite';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form';
|
||||
|
||||
@@ -4,11 +4,9 @@ import { useEffect, useMemo } from 'react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
|
||||
import type { FileNode } from '@/components/shared/file-manager';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite';
|
||||
|
||||
import { OverwriteConfirmDialog } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import { OverwriteCtaButtons } from '@/components/shared/overwrite-cta-buttons';
|
||||
import { useOverwriteAction } from '@/components/shared/use-overwrite-action';
|
||||
import { OverwriteConfirmDialog, OverwriteCtaButtons, useOverwriteAction } from '@/components/shared/overwrite';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form';
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useCallback, useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
import { z } from 'zod';
|
||||
|
||||
import type { OverwriteOutcome } from '@/components/shared/use-overwrite-action';
|
||||
import type { OverwriteOutcome } from '@/components/shared/overwrite';
|
||||
|
||||
import { api, getApiErrorMessage, getApiErrorStatusCode } from '@/lib/axios';
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useCallback, useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
import { z } from 'zod';
|
||||
|
||||
import type { OverwriteOutcome } from '@/components/shared/use-overwrite-action';
|
||||
import type { OverwriteOutcome } from '@/components/shared/overwrite';
|
||||
|
||||
import { api, getApiErrorMessage, getApiErrorStatusCode } from '@/lib/axios';
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { ChevronDown, Copy, FileSymlink, Folder, FolderPlus, FolderUp, Loader2,
|
||||
import { useCallback, useMemo, useState } from 'react';
|
||||
import { toast } from 'sonner';
|
||||
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import type { OverwriteConflict } from '@/components/shared/overwrite';
|
||||
|
||||
import ConfirmationDialog from '@/components/shared/confirmation-dialog';
|
||||
import {
|
||||
@@ -24,8 +24,7 @@ import {
|
||||
formatModifiedRelative,
|
||||
} from '@/components/shared/file-manager';
|
||||
import { HeaderButton } from '@/components/shared/header-button';
|
||||
import { OverwriteConfirmDialog } from '@/components/shared/overwrite-confirm-dialog';
|
||||
import { useOverwriteAction } from '@/components/shared/use-overwrite-action';
|
||||
import { OverwriteConfirmDialog, useOverwriteAction } from '@/components/shared/overwrite';
|
||||
import { Breadcrumb, BreadcrumbItem, BreadcrumbList, BreadcrumbPage } from '@/components/ui/breadcrumb';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import {
|
||||
|
||||
Reference in New Issue
Block a user