Skip to content

Commit f205daf

Browse files
committed
AppChat: lazy-load modals
1 parent fec18d7 commit f205daf

1 file changed

Lines changed: 29 additions & 17 deletions

File tree

src/apps/chat/AppChat.tsx

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import type { SxProps } from '@mui/joy/styles/types';
55
import { Box, useTheme } from '@mui/joy';
66

77
import { DEV_MODE_SETTINGS } from '../settings-modal/UxLabsSettings';
8-
import { DiagramConfig, DiagramsModal } from '~/modules/aifn/digrams/DiagramsModal';
9-
import { FlattenerModal } from '~/modules/aifn/flatten/FlattenerModal';
10-
import { TradeConfig, TradeModal } from '~/modules/trade/TradeModal';
8+
9+
import type { DiagramConfig } from '~/modules/aifn/digrams/DiagramsModal';
10+
import type { TradeConfig } from '~/modules/trade/TradeModal';
1111
import { downloadSingleChat, importConversationsFromFilesAtRest, openConversationsAtRestPicker } from '~/modules/trade/trade.client';
1212
import { imaginePromptFromTextOrThrow } from '~/modules/aifn/imagine/imaginePromptFromText';
1313
import { elevenLabsSpeakText } from '~/modules/elevenlabs/elevenlabs.client';
@@ -120,6 +120,12 @@ const composerOpenMobileSx: SxProps = {
120120
// };
121121

122122

123+
// Lazy-loaded Modals
124+
const DiagramsModalLazy = React.lazy(() => import('~/modules/aifn/digrams/DiagramsModal').then(module => ({ default: module.DiagramsModal })));
125+
const FlattenerModalLazy = React.lazy(() => import('~/modules/aifn/flatten/FlattenerModal').then(module => ({ default: module.FlattenerModal })));
126+
const TradeModalLazy = React.lazy(() => import('~/modules/trade/TradeModal').then(module => ({ default: module.TradeModal })));
127+
128+
123129
export function AppChat() {
124130

125131
// state
@@ -777,28 +783,34 @@ export function AppChat() {
777783

778784
{/* Diagrams */}
779785
{!!diagramConfig && (
780-
<DiagramsModal
781-
config={diagramConfig}
782-
onClose={() => setDiagramConfig(null)}
783-
/>
786+
<React.Suspense fallback={null}>
787+
<DiagramsModalLazy
788+
config={diagramConfig}
789+
onClose={() => setDiagramConfig(null)}
790+
/>
791+
</React.Suspense>
784792
)}
785793

786794
{/* Flatten */}
787795
{!!flattenConversationId && (
788-
<FlattenerModal
789-
conversationId={flattenConversationId}
790-
onConversationBranch={handleConversationBranch}
791-
onClose={() => setFlattenConversationId(null)}
792-
/>
796+
<React.Suspense fallback={null}>
797+
<FlattenerModalLazy
798+
conversationId={flattenConversationId}
799+
onConversationBranch={handleConversationBranch}
800+
onClose={() => setFlattenConversationId(null)}
801+
/>
802+
</React.Suspense>
793803
)}
794804

795805
{/* Import / Export */}
796806
{!!tradeConfig && (
797-
<TradeModal
798-
config={tradeConfig}
799-
onConversationActivate={handleOpenConversationInFocusedPane}
800-
onClose={() => setTradeConfig(null)}
801-
/>
807+
<React.Suspense fallback={null}>
808+
<TradeModalLazy
809+
config={tradeConfig}
810+
onConversationActivate={handleOpenConversationInFocusedPane}
811+
onClose={() => setTradeConfig(null)}
812+
/>
813+
</React.Suspense>
802814
)}
803815

804816
</>;

0 commit comments

Comments
 (0)