Skip to content

Commit f4d99fe

Browse files
committed
Lazy load components
1 parent 11258e7 commit f4d99fe

File tree

6 files changed

+23
-15
lines changed

6 files changed

+23
-15
lines changed

llmstack/client/src/components/apps/AppPreview.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { useEffect, useState } from "react";
1+
import { lazy, useEffect, useState } from "react";
22
import { useRecoilValue } from "recoil";
33
import { isMobileState } from "../../data/atoms";
44
import { Ws } from "../../data/ws";
5-
import { AppRenderer } from "./renderer/AppRenderer";
5+
6+
const AppRenderer = lazy(() => import("./renderer/AppRenderer"));
67

78
export function AppPreview(props) {
89
const { app } = props;

llmstack/client/src/components/apps/Published.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useEffect, useRef, useState } from "react";
1+
import { lazy, useEffect, useRef, useState } from "react";
22
import {
33
AppBar,
44
Avatar,
@@ -17,10 +17,11 @@ import {
1717
} from "@mui/icons-material";
1818
import { ReactComponent as GithubIcon } from "../../assets/images/icons/github.svg";
1919
import { TwitterIcon, TwitterShareButton } from "react-share";
20-
import { AppRenderer } from "./renderer/AppRenderer";
2120
import logo from "../../assets/logo.png";
2221
import "./Published.css";
2322

23+
const AppRenderer = lazy(() => import("./renderer/AppRenderer"));
24+
2425
const SITE_NAME = process.env.REACT_APP_SITE_NAME || "LLMStack";
2526

2627
export const PublishedAppHeader = ({ appName, appLogo, appIsShareable }) => {

llmstack/client/src/components/apps/renderer/AppRenderer.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import React, {
1010
import ReactGA from "react-ga4";
1111
import { useLocation } from "react-router-dom";
1212
import { stitchObjects } from "../../../data/utils";
13-
import LayoutRenderer from "./LayoutRenderer";
1413
import {
1514
AppMessage,
1615
AppErrorMessage,
@@ -23,9 +22,11 @@ import {
2322
import { axios } from "../../../data/axios";
2423
import { isLoggedInState, appRunDataState } from "../../../data/atoms";
2524
import { useSetRecoilState, useRecoilValue } from "recoil";
26-
import LoginDialog from "../../LoginDialog";
2725
import logo from "../../../assets/promptly-icon.png";
2826

27+
const LayoutRenderer = React.lazy(() => import("./LayoutRenderer"));
28+
const LoginDialog = React.lazy(() => import("../../LoginDialog"));
29+
2930
export const defaultWorkflowLayout = `<pa-layout sx='{"maxWidth": "1200px", "margin": "10px auto"}'>
3031
<pa-paper style="padding: 10px;">
3132
<pa-grid container="true" spacing="2" style="width: 100%">
@@ -53,7 +54,7 @@ export const defaultChatLayout = `<pa-layout sx='{"maxWidth": "1200px", "margin"
5354
</pa-grid>
5455
</pa-layout>`;
5556

56-
export function AppRenderer({ app, ws }) {
57+
export default function AppRenderer({ app, ws }) {
5758
const appSessionId = useRef(null);
5859
const location = useLocation();
5960
const [layout, setLayout] = useState("");

llmstack/client/src/components/store/StoreApp.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import React, { useState, useEffect } from "react";
22
import { Box } from "@mui/material";
33
import Grid from "@mui/material/Unstable_Grid2";
44
import { useRecoilValue } from "recoil";
5-
import { AppRenderer } from "../apps/renderer/AppRenderer";
65
import { Ws } from "../../data/ws";
76
import { storeAppState } from "../../data/atoms";
8-
import StoreAppHeader from "./StoreAppHeader";
7+
8+
const AppRenderer = React.lazy(() => import("../apps/renderer/AppRenderer"));
9+
const StoreAppHeader = React.lazy(() => import("./StoreAppHeader"));
910

1011
export default function StoreApp({ appSlug }) {
1112
const storeApp = useRecoilValue(storeAppState(appSlug));

llmstack/client/src/pages/AppSessionShare.jsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
import { useState } from "react";
1+
import { lazy, useState } from "react";
22
import { useParams } from "react-router-dom";
33
import { useRecoilValue } from "recoil";
44
import { Button, useMediaQuery, useTheme, Stack } from "@mui/material";
55
import Grid from "@mui/material/Unstable_Grid2";
66
import { appRunShareSelector, isMobileState } from "../data/atoms";
7-
import Search from "../components/store/Search";
8-
import SessionRenderer from "../components/store/SessionRenderer";
7+
8+
const Search = lazy(() => import("../components/store/Search"));
9+
const SessionRenderer = lazy(
10+
() => import("../components/store/SessionRenderer"),
11+
);
912

1013
const AppSessionSharePage = () => {
1114
const shareCode = useParams().shareCode;

llmstack/client/src/pages/Home.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { useParams } from "react-router-dom";
22
import { Button, useMediaQuery, useTheme, Stack } from "@mui/material";
33
import Grid from "@mui/material/Unstable_Grid2";
4-
import StoreApp from "../components/store/StoreApp";
5-
import Search from "../components/store/Search";
64
import { useRecoilValue } from "recoil";
75
import { isMobileState } from "../data/atoms";
8-
import { useState } from "react";
6+
import { lazy, useState } from "react";
7+
8+
const StoreApp = lazy(() => import("../components/store/StoreApp"));
9+
const Search = lazy(() => import("../components/store/Search"));
910

1011
export default function HomePage() {
1112
const { appSlug = "super-agent" } = useParams();

0 commit comments

Comments
 (0)