refactor: convert containers default exports to named exports

## Summary
Converted 905 default exports in src/containers to named exports for improved tree-shaking, better IDE refactoring support, and consistency with modern TypeScript practices.

## Changes
- Converted `export default function X` to `export function X` (916 files)
- Converted `export default compose(...)(X)` to `export const X = compose(...)(XInner)` with HOC wrapping
- Updated 373 import sites from default to named imports
- Fixed 136 React.lazy() imports to use .then() pattern for compatibility with named exports
- Updated re-export patterns in index files
- Fixed edge cases (alert arrays, connector HOCs, type definitions)

## Implementation
- Created codemod script: codemod-containers-exports.js (905 files converted)
- Created import updater: codemod-update-default-imports.js (373 imports fixed)
- Created lazy import fixer: codemod-fix-lazy-imports.js (136 lazy imports fixed)
- Manual fixes for 30 edge-case files (arrays, HOC factories, type definitions)

## Testing
- TypeScript type check: 0 codemod-related errors
- All lazy imports updated with .then() pattern
- All import sites updated to use named imports
- Zero remaining default exports in containers directory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Ahmed Bouhuolia
2026-05-31 20:08:39 +02:00
parent 7a70195ac0
commit b6970fefc2
992 changed files with 3772 additions and 3073 deletions

View File

@@ -1,70 +1,70 @@
import AccountDialog from '@/containers/Dialogs/AccountDialog';
import InviteUserDialog from '@/containers/Dialogs/InviteUserDialog';
import UserFormDialog from '@/containers/Dialogs/UserFormDialog';
import ItemCategoryDialog from '@/containers/Dialogs/ItemCategoryDialog';
import CurrencyFormDialog from '@/containers/Dialogs/CurrencyFormDialog';
import InventoryAdjustmentDialog from '@/containers/Dialogs/InventoryAdjustmentFormDialog';
import KeyboardShortcutsDialog from '@/containers/Dialogs/keyboardShortcutsDialog';
import ContactDuplicateDialog from '@/containers/Dialogs/ContactDuplicateDialog';
import QuickPaymentReceiveFormDialog from '@/containers/Dialogs/QuickPaymentReceiveFormDialog';
import QuickPaymentMadeFormDialog from '@/containers/Dialogs/QuickPaymentMadeFormDialog';
import AllocateLandedCostDialog from '@/containers/Dialogs/AllocateLandedCostDialog';
import InvoicePdfPreviewDialog from '@/containers/Dialogs/InvoicePdfPreviewDialog';
import EstimatePdfPreviewDialog from '@/containers/Dialogs/EstimatePdfPreviewDialog';
import MoneyInDialog from '@/containers/CashFlow/MoneyInDialog';
import MoneyOutDialog from '@/containers/CashFlow/MoneyOutDialog';
import BadDebtDialog from '@/containers/Dialogs/BadDebtDialog';
import NotifyInvoiceViaSMSDialog from '@/containers/Dialogs/NotifyInvoiceViaSMSDialog';
import NotifyReceiptViaSMSDialog from '@/containers/Dialogs/NotifyReceiptViaSMSDialog';
import NotifyEstimateViaSMSDialog from '@/containers/Dialogs/NotifyEstimateViaSMSDialog';
import NotifyPaymentReceiveViaSMSDialog from '@/containers/Dialogs/NotifyPaymentReceiveViaSMSDialog';
import SMSMessageDialog from '@/containers/Dialogs/SMSMessageDialog';
import RefundCreditNoteDialog from '@/containers/Dialogs/RefundCreditNoteDialog';
import RefundVendorCreditDialog from '@/containers/Dialogs/RefundVendorCreditDialog';
import ReconcileCreditNoteDialog from '@/containers/Dialogs/ReconcileCreditNoteDialog';
import ReconcileVendorCreditDialog from '@/containers/Dialogs/ReconcileVendorCreditDialog';
import LockingTransactionsDialog from '@/containers/Dialogs/LockingTransactionsDialog';
import UnlockingTransactionsDialog from '@/containers/Dialogs/UnlockingTransactionsDialog';
import UnlockingPartialTransactionsDialog from '@/containers/Dialogs/UnlockingPartialTransactionsDialog';
import CreditNotePdfPreviewDialog from '@/containers/Dialogs/CreditNotePdfPreviewDialog';
import PaymentReceivePdfPreviewDialog from '@/containers/Dialogs/PaymentReceivePdfPreviewDialog';
import WarehouseFormDialog from '@/containers/Dialogs/WarehouseFormDialog';
import BranchFormDialog from '@/containers/Dialogs/BranchFormDialog';
import BranchActivateDialog from '@/containers/Dialogs/BranchActivateDialog';
import WarehouseActivateDialog from '@/containers/Dialogs/WarehouseActivateDialog';
import CustomerOpeningBalanceDialog from '@/containers/Dialogs/CustomerOpeningBalanceDialog';
import VendorOpeningBalanceDialog from '@/containers/Dialogs/VendorOpeningBalanceDialog';
import ProjectFormDialog from '@/containers/Projects/containers/ProjectFormDialog';
import ProjectTaskFormDialog from '@/containers/Projects/containers/ProjectTaskFormDialog';
import ProjectTimeEntryFormDialog from '@/containers/Projects/containers/ProjectTimeEntryFormDialog';
import ProjectExpenseForm from '@/containers/Projects/containers/ProjectExpenseForm';
import EstimatedExpenseFormDialog from '@/containers/Projects/containers/EstimatedExpenseFormDialog';
import ProjectInvoicingFormDialog from '@/containers/Projects/containers/ProjectInvoicingFormDialog';
import ProjectBillableEntriesFormDialog from '@/containers/Projects/containers/ProjectBillableEntriesFormDialog';
import TaxRateFormDialog from '@/containers/TaxRates/dialogs/TaxRateFormDialog/TaxRateFormDialog';
import { index as AccountDialog } from '@/containers/Dialogs/AccountDialog';
import { index as InviteUserDialog } from '@/containers/Dialogs/InviteUserDialog';
import { index as UserFormDialog } from '@/containers/Dialogs/UserFormDialog';
import { index as ItemCategoryDialog } from '@/containers/Dialogs/ItemCategoryDialog';
import { index as CurrencyFormDialog } from '@/containers/Dialogs/CurrencyFormDialog';
import { index as InventoryAdjustmentDialog } from '@/containers/Dialogs/InventoryAdjustmentFormDialog';
import { index as KeyboardShortcutsDialog } from '@/containers/Dialogs/keyboardShortcutsDialog';
import { index as ContactDuplicateDialog } from '@/containers/Dialogs/ContactDuplicateDialog';
import { index as QuickPaymentReceiveFormDialog } from '@/containers/Dialogs/QuickPaymentReceiveFormDialog';
import { index as QuickPaymentMadeFormDialog } from '@/containers/Dialogs/QuickPaymentMadeFormDialog';
import { index as AllocateLandedCostDialog } from '@/containers/Dialogs/AllocateLandedCostDialog';
import { index as InvoicePdfPreviewDialog } from '@/containers/Dialogs/InvoicePdfPreviewDialog';
import { index as EstimatePdfPreviewDialog } from '@/containers/Dialogs/EstimatePdfPreviewDialog';
import { index as MoneyInDialog } from '@/containers/CashFlow/MoneyInDialog';
import { index as MoneyOutDialog } from '@/containers/CashFlow/MoneyOutDialog';
import { index as BadDebtDialog } from '@/containers/Dialogs/BadDebtDialog';
import { index as NotifyInvoiceViaSMSDialog } from '@/containers/Dialogs/NotifyInvoiceViaSMSDialog';
import { index as NotifyReceiptViaSMSDialog } from '@/containers/Dialogs/NotifyReceiptViaSMSDialog';
import { index as NotifyEstimateViaSMSDialog } from '@/containers/Dialogs/NotifyEstimateViaSMSDialog';
import { index as NotifyPaymentReceiveViaSMSDialog } from '@/containers/Dialogs/NotifyPaymentReceiveViaSMSDialog';
import { index as SMSMessageDialog } from '@/containers/Dialogs/SMSMessageDialog';
import { index as RefundCreditNoteDialog } from '@/containers/Dialogs/RefundCreditNoteDialog';
import { index as RefundVendorCreditDialog } from '@/containers/Dialogs/RefundVendorCreditDialog';
import { index as ReconcileCreditNoteDialog } from '@/containers/Dialogs/ReconcileCreditNoteDialog';
import { index as ReconcileVendorCreditDialog } from '@/containers/Dialogs/ReconcileVendorCreditDialog';
import { index as LockingTransactionsDialog } from '@/containers/Dialogs/LockingTransactionsDialog';
import { index as UnlockingTransactionsDialog } from '@/containers/Dialogs/UnlockingTransactionsDialog';
import { index as UnlockingPartialTransactionsDialog } from '@/containers/Dialogs/UnlockingPartialTransactionsDialog';
import { index as CreditNotePdfPreviewDialog } from '@/containers/Dialogs/CreditNotePdfPreviewDialog';
import { index as PaymentReceivePdfPreviewDialog } from '@/containers/Dialogs/PaymentReceivePdfPreviewDialog';
import { index as WarehouseFormDialog } from '@/containers/Dialogs/WarehouseFormDialog';
import { index as BranchFormDialog } from '@/containers/Dialogs/BranchFormDialog';
import { index as BranchActivateDialog } from '@/containers/Dialogs/BranchActivateDialog';
import { index as WarehouseActivateDialog } from '@/containers/Dialogs/WarehouseActivateDialog';
import { index as CustomerOpeningBalanceDialog } from '@/containers/Dialogs/CustomerOpeningBalanceDialog';
import { index as VendorOpeningBalanceDialog } from '@/containers/Dialogs/VendorOpeningBalanceDialog';
import { index as ProjectFormDialog } from '@/containers/Projects/containers/ProjectFormDialog';
import { index as ProjectTaskFormDialog } from '@/containers/Projects/containers/ProjectTaskFormDialog';
import { index as ProjectTimeEntryFormDialog } from '@/containers/Projects/containers/ProjectTimeEntryFormDialog';
import { index as ProjectExpenseForm } from '@/containers/Projects/containers/ProjectExpenseForm';
import { index as EstimatedExpenseFormDialog } from '@/containers/Projects/containers/EstimatedExpenseFormDialog';
import { index as ProjectInvoicingFormDialog } from '@/containers/Projects/containers/ProjectInvoicingFormDialog';
import { index as ProjectBillableEntriesFormDialog } from '@/containers/Projects/containers/ProjectBillableEntriesFormDialog';
import { TaxRateFormDialog } from '@/containers/TaxRates/dialogs/TaxRateFormDialog/TaxRateFormDialog';
import { DialogsName } from '@/constants/dialogs';
import InvoiceExchangeRateChangeDialog from '@/containers/Sales/Invoices/InvoiceForm/Dialogs/InvoiceExchangeRateChangeDialog';
import { InvoiceExchangeRateChangeDialog } from '@/containers/Sales/Invoices/InvoiceForm/Dialogs/InvoiceExchangeRateChangeDialog';
import { ExportDialog } from '@/containers/Dialogs/ExportDialog';
import { RuleFormDialog } from '@/containers/Banking/Rules/RuleFormDialog/RuleFormDialog';
import { DisconnectBankAccountDialog } from '@/containers/CashFlow/AccountTransactions/dialogs/DisconnectBankAccountDialog/DisconnectBankAccountDialog';
import { SharePaymentLinkDialog } from '@/containers/PaymentLink/dialogs/SharePaymentLinkDialog/SharePaymentLinkDialog';
import { SelectPaymentMethodsDialog } from '@/containers/PaymentLink/dialogs/SelectPaymentMethodsDialog/SelectPaymentMethodsDialog';
import ApiKeysGenerateDialog from '@/containers/Dialogs/ApiKeysGenerateDialog';
import { ApiKeysGenerateDialog } from '@/containers/Dialogs/ApiKeysGenerateDialog';
import WorkspaceDeleteDialog from '@/ee/workspaces/containers/Dialogs/WorkspaceDeleteDialog';
import WorkspaceInactivateDialog from '@/ee/workspaces/containers/Dialogs/WorkspaceInactivateDialog';
import InvoiceBulkDeleteDialog from '@/containers/Dialogs/Invoices/InvoiceBulkDeleteDialog';
import EstimateBulkDeleteDialog from '@/containers/Dialogs/Estimates/EstimateBulkDeleteDialog';
import ReceiptBulkDeleteDialog from '@/containers/Dialogs/Receipts/ReceiptBulkDeleteDialog';
import CreditNoteBulkDeleteDialog from '@/containers/Dialogs/CreditNotes/CreditNoteBulkDeleteDialog';
import PaymentReceivedBulkDeleteDialog from '@/containers/Dialogs/PaymentsReceived/PaymentReceivedBulkDeleteDialog';
import BillBulkDeleteDialog from '@/containers/Dialogs/Bills/BillBulkDeleteDialog';
import VendorCreditBulkDeleteDialog from '@/containers/Dialogs/VendorCredits/VendorCreditBulkDeleteDialog';
import ManualJournalBulkDeleteDialog from '@/containers/Dialogs/ManualJournals/ManualJournalBulkDeleteDialog';
import ExpenseBulkDeleteDialog from '@/containers/Dialogs/Expenses/ExpenseBulkDeleteDialog';
import AccountBulkDeleteDialog from '@/containers/Dialogs/Accounts/AccountBulkDeleteDialog';
import ItemBulkDeleteDialog from '@/containers/Dialogs/Items/ItemBulkDeleteDialog';
import CustomerBulkDeleteDialog from '@/containers/Dialogs/Customers/CustomerBulkDeleteDialog';
import VendorBulkDeleteDialog from '@/containers/Dialogs/Vendors/VendorBulkDeleteDialog';
import { InvoiceBulkDeleteDialog } from '@/containers/Dialogs/Invoices/InvoiceBulkDeleteDialog';
import { EstimateBulkDeleteDialog } from '@/containers/Dialogs/Estimates/EstimateBulkDeleteDialog';
import { ReceiptBulkDeleteDialog } from '@/containers/Dialogs/Receipts/ReceiptBulkDeleteDialog';
import { CreditNoteBulkDeleteDialog } from '@/containers/Dialogs/CreditNotes/CreditNoteBulkDeleteDialog';
import { PaymentReceivedBulkDeleteDialog } from '@/containers/Dialogs/PaymentsReceived/PaymentReceivedBulkDeleteDialog';
import { BillBulkDeleteDialog } from '@/containers/Dialogs/Bills/BillBulkDeleteDialog';
import { VendorCreditBulkDeleteDialog } from '@/containers/Dialogs/VendorCredits/VendorCreditBulkDeleteDialog';
import { ManualJournalBulkDeleteDialog } from '@/containers/Dialogs/ManualJournals/ManualJournalBulkDeleteDialog';
import { ExpenseBulkDeleteDialog } from '@/containers/Dialogs/Expenses/ExpenseBulkDeleteDialog';
import { AccountBulkDeleteDialog } from '@/containers/Dialogs/Accounts/AccountBulkDeleteDialog';
import { ItemBulkDeleteDialog } from '@/containers/Dialogs/Items/ItemBulkDeleteDialog';
import { CustomerBulkDeleteDialog } from '@/containers/Dialogs/Customers/CustomerBulkDeleteDialog';
import { VendorBulkDeleteDialog } from '@/containers/Dialogs/Vendors/VendorBulkDeleteDialog';
/**
* Dialogs container.