2025-08-19 16:34:58 +01:00
|
|
|
import React, { Suspense } from "react";
|
|
|
|
import { RainbowThemeProvider } from "./components/shared/RainbowThemeProvider";
|
|
|
|
import { FileContextProvider } from "./contexts/FileContext";
|
|
|
|
import { FilesModalProvider } from "./contexts/FilesModalContext";
|
|
|
|
import { FileSelectionProvider } from "./contexts/FileSelectionContext";
|
|
|
|
import { ToolWorkflowProvider } from "./contexts/ToolWorkflowContext";
|
2025-08-19 16:50:55 +01:00
|
|
|
import { ToolNavigationProvider } from "./contexts/ToolNavigationContext";
|
2025-08-19 16:34:58 +01:00
|
|
|
import { SidebarProvider } from "./contexts/SidebarContext";
|
|
|
|
import ErrorBoundary from "./components/shared/ErrorBoundary";
|
|
|
|
import HomePage from "./pages/HomePage";
|
2025-06-06 17:20:06 +01:00
|
|
|
|
|
|
|
// Import global styles
|
2025-08-19 16:34:58 +01:00
|
|
|
import "./styles/tailwind.css";
|
|
|
|
import "./index.css";
|
2025-06-06 17:20:06 +01:00
|
|
|
|
2025-08-15 13:15:21 +01:00
|
|
|
// Loading component for i18next suspense
|
|
|
|
const LoadingFallback = () => (
|
2025-08-19 16:34:58 +01:00
|
|
|
<div
|
|
|
|
style={{
|
|
|
|
display: "flex",
|
|
|
|
justifyContent: "center",
|
|
|
|
alignItems: "center",
|
|
|
|
height: "100vh",
|
|
|
|
fontSize: "18px",
|
|
|
|
color: "#666",
|
|
|
|
}}
|
|
|
|
>
|
2025-08-15 13:15:21 +01:00
|
|
|
Loading...
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
|
2025-05-28 21:43:02 +01:00
|
|
|
export default function App() {
|
2025-06-06 17:20:06 +01:00
|
|
|
return (
|
2025-08-15 13:15:21 +01:00
|
|
|
<Suspense fallback={<LoadingFallback />}>
|
|
|
|
<RainbowThemeProvider>
|
2025-08-19 16:34:58 +01:00
|
|
|
<ErrorBoundary>
|
|
|
|
<FileContextProvider enableUrlSync={true} enablePersistence={true}>
|
|
|
|
<FilesModalProvider>
|
|
|
|
<FileSelectionProvider>
|
2025-08-19 16:50:55 +01:00
|
|
|
<ToolNavigationProvider>
|
|
|
|
<ToolWorkflowProvider>
|
|
|
|
<SidebarProvider>
|
|
|
|
<HomePage />
|
|
|
|
</SidebarProvider>
|
|
|
|
</ToolWorkflowProvider>
|
|
|
|
</ToolNavigationProvider>
|
2025-08-19 16:34:58 +01:00
|
|
|
</FileSelectionProvider>
|
|
|
|
</FilesModalProvider>
|
|
|
|
</FileContextProvider>
|
|
|
|
</ErrorBoundary>
|
2025-08-15 13:15:21 +01:00
|
|
|
</RainbowThemeProvider>
|
|
|
|
</Suspense>
|
2025-06-06 17:20:06 +01:00
|
|
|
);
|
2025-05-28 21:43:02 +01:00
|
|
|
}
|