Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 733bfc9bae |
@@ -1,35 +0,0 @@
|
|||||||
name: Renovate
|
|
||||||
|
|
||||||
# RECOMMENDATIONS #2: automated dependency-update PRs (NuGet, npm, Dockerfiles, Actions)
|
|
||||||
# that ride the existing required CI gates. Runs weekly + on demand.
|
|
||||||
#
|
|
||||||
# ONE-TIME SETUP (manual): create a Gitea personal access token with scopes
|
|
||||||
# repo (rw) + user (r) + issue (rw) + organization (r), and add it as the Actions
|
|
||||||
# secret RENOVATE_TOKEN (repo Settings -> Actions -> Secrets). Without the secret this
|
|
||||||
# workflow fails fast with a clear message. See https://docs.renovatebot.com/modules/platform/gitea/
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '30 4 * * 1' # Mondays 04:30 UTC
|
|
||||||
workflow_dispatch: {}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
renovate:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Require RENOVATE_TOKEN
|
|
||||||
run: |
|
|
||||||
if [ -z "${{ secrets.RENOVATE_TOKEN }}" ]; then
|
|
||||||
echo "RENOVATE_TOKEN secret is not set — see the comment at the top of this workflow." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- name: Run Renovate
|
|
||||||
uses: https://github.com/renovatebot/github-action@v40.3.6
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.RENOVATE_TOKEN }}
|
|
||||||
env:
|
|
||||||
RENOVATE_PLATFORM: gitea
|
|
||||||
RENOVATE_ENDPOINT: https://git.cesnimda.uk/api/v1
|
|
||||||
RENOVATE_REPOSITORIES: cesnimda/Inboxintel
|
|
||||||
RENOVATE_ONBOARDING: "false"
|
|
||||||
RENOVATE_REQUIRE_CONFIG: optional
|
|
||||||
LOG_LEVEL: info
|
|
||||||
+19
-8
@@ -1,25 +1,35 @@
|
|||||||
import React from 'react';
|
import React, { Suspense, lazy } from 'react';
|
||||||
import ReactDOM from 'react-dom/client';
|
import ReactDOM from 'react-dom/client';
|
||||||
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
|
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
|
||||||
import Landing from './pages/Landing.jsx';
|
import Landing from './pages/Landing.jsx';
|
||||||
import Dashboard from './pages/Dashboard.jsx';
|
|
||||||
import Senders from './pages/Senders.jsx';
|
|
||||||
import Cleanup from './pages/Cleanup.jsx';
|
|
||||||
import Unsubscribe from './pages/Unsubscribe.jsx';
|
|
||||||
import FolderView from './pages/FolderView.jsx';
|
|
||||||
import SearchResults from './pages/SearchResults.jsx';
|
|
||||||
import Layout from './components/Layout.jsx';
|
import Layout from './components/Layout.jsx';
|
||||||
import DesignSystem from './pages/DesignSystem.jsx';
|
|
||||||
import { ToastProvider, TooltipProvider } from './components/ui';
|
import { ToastProvider, TooltipProvider } from './components/ui';
|
||||||
import '@fontsource-variable/inter';
|
import '@fontsource-variable/inter';
|
||||||
import './index.css';
|
import './index.css';
|
||||||
import './styles.css';
|
import './styles.css';
|
||||||
|
|
||||||
|
// Route-level code splitting: each page loads its own chunk on first visit, so the
|
||||||
|
// initial bundle no longer carries Chart.js / grid-layout / every page at once.
|
||||||
|
// Landing + Layout stay eager (they're the first paint).
|
||||||
|
const Dashboard = lazy(() => import('./pages/Dashboard.jsx'));
|
||||||
|
const Senders = lazy(() => import('./pages/Senders.jsx'));
|
||||||
|
const Cleanup = lazy(() => import('./pages/Cleanup.jsx'));
|
||||||
|
const Unsubscribe = lazy(() => import('./pages/Unsubscribe.jsx'));
|
||||||
|
const FolderView = lazy(() => import('./pages/FolderView.jsx'));
|
||||||
|
const SearchResults = lazy(() => import('./pages/SearchResults.jsx'));
|
||||||
|
const DesignSystem = lazy(() => import('./pages/DesignSystem.jsx'));
|
||||||
|
|
||||||
|
// Minimal, theme-correct route fallback (skeleton-style, per the design system).
|
||||||
|
const RouteFallback = () => (
|
||||||
|
<div className="p-6 text-sm text-muted-foreground" aria-busy="true">Loading…</div>
|
||||||
|
);
|
||||||
|
|
||||||
ReactDOM.createRoot(document.getElementById('root')).render(
|
ReactDOM.createRoot(document.getElementById('root')).render(
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
<ToastProvider>
|
<ToastProvider>
|
||||||
<TooltipProvider delayDuration={200}>
|
<TooltipProvider delayDuration={200}>
|
||||||
<BrowserRouter>
|
<BrowserRouter>
|
||||||
|
<Suspense fallback={<RouteFallback />}>
|
||||||
<Routes>
|
<Routes>
|
||||||
{/* Public landing page */}
|
{/* Public landing page */}
|
||||||
<Route path="/" element={<Landing />} />
|
<Route path="/" element={<Landing />} />
|
||||||
@@ -37,6 +47,7 @@ ReactDOM.createRoot(document.getElementById('root')).render(
|
|||||||
|
|
||||||
<Route path="*" element={<Navigate to="/" replace />} />
|
<Route path="*" element={<Navigate to="/" replace />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
|
</Suspense>
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
</TooltipProvider>
|
</TooltipProvider>
|
||||||
</ToastProvider>
|
</ToastProvider>
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": ["config:recommended"],
|
|
||||||
"timezone": "Europe/Berlin",
|
|
||||||
"schedule": ["before 6am on monday"],
|
|
||||||
"labels": ["dependencies"],
|
|
||||||
"prConcurrentLimit": 5,
|
|
||||||
"commitMessagePrefix": "chore(deps):",
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"description": "Group safe minor+patch updates into one weekly PR per ecosystem",
|
|
||||||
"matchUpdateTypes": ["minor", "patch"],
|
|
||||||
"groupName": "{{manager}} minor & patch"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Major updates stay individual PRs for careful review",
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"dependencyDashboardApproval": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vulnerabilityAlerts": {
|
|
||||||
"enabled": true,
|
|
||||||
"labels": ["security"],
|
|
||||||
"schedule": ["at any time"]
|
|
||||||
},
|
|
||||||
"ignorePaths": ["**/node_modules/**", "**/bin/**", "**/obj/**"]
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user