mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2026-02-17 13:52:14 +01:00
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
import { Suspense } from "react";
|
|
import { Routes, Route } from "react-router-dom";
|
|
import { AppProviders } from "@app/components/AppProviders";
|
|
import { AppLayout } from "@app/components/AppLayout";
|
|
import { LoadingFallback } from "@app/components/shared/LoadingFallback";
|
|
import { RainbowThemeProvider } from "@app/components/shared/RainbowThemeProvider";
|
|
import { PreferencesProvider } from "@app/contexts/PreferencesContext";
|
|
import HomePage from "@app/pages/HomePage";
|
|
import MobileScannerPage from "@app/pages/MobileScannerPage";
|
|
import Onboarding from "@app/components/onboarding/Onboarding";
|
|
|
|
// Import global styles
|
|
import "@app/styles/tailwind.css";
|
|
import "@app/styles/cookieconsent.css";
|
|
import "@app/styles/index.css";
|
|
|
|
// Import file ID debugging helpers (development only)
|
|
import "@app/utils/fileIdSafety";
|
|
|
|
// Minimal providers for mobile scanner - no API calls, no authentication
|
|
function MobileScannerProviders({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<PreferencesProvider>
|
|
<RainbowThemeProvider>
|
|
{children}
|
|
</RainbowThemeProvider>
|
|
</PreferencesProvider>
|
|
);
|
|
}
|
|
|
|
export default function App() {
|
|
return (
|
|
<Suspense fallback={<LoadingFallback />}>
|
|
<Routes>
|
|
{/* Mobile scanner route - no backend needed, pure P2P WebRTC */}
|
|
<Route
|
|
path="/mobile-scanner"
|
|
element={
|
|
<MobileScannerProviders>
|
|
<MobileScannerPage />
|
|
</MobileScannerProviders>
|
|
}
|
|
/>
|
|
|
|
{/* All other routes need AppProviders for backend integration */}
|
|
<Route
|
|
path="*"
|
|
element={
|
|
<AppProviders>
|
|
<AppLayout>
|
|
<HomePage />
|
|
<Onboarding />
|
|
</AppLayout>
|
|
</AppProviders>
|
|
}
|
|
/>
|
|
</Routes>
|
|
</Suspense>
|
|
);
|
|
}
|