From 92a29ca6d36cf98e999eac2a91772a520644ad2a Mon Sep 17 00:00:00 2001 From: Lei OT Date: Fri, 19 Apr 2024 14:07:44 +0800 Subject: [PATCH] chore: feat: multi page: maintenance --- maintenance.html | 18 ++++++++++++++++++ src/maintenance.jsx | 9 +++++++++ src/maintenance/index.jsx | 25 +++++++++++++++++++++++++ vite.config.js | 12 ++++++++---- 4 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 maintenance.html create mode 100644 src/maintenance.jsx create mode 100644 src/maintenance/index.jsx diff --git a/maintenance.html b/maintenance.html new file mode 100644 index 0000000..a9d827c --- /dev/null +++ b/maintenance.html @@ -0,0 +1,18 @@ + + + + + + + + + + Sales CRM Maintenance + + + +
+ + + + diff --git a/src/maintenance.jsx b/src/maintenance.jsx new file mode 100644 index 0000000..bf2355f --- /dev/null +++ b/src/maintenance.jsx @@ -0,0 +1,9 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import MaintenancePage from './maintenance/index' + +ReactDOM.createRoot(document.getElementById('maintenance-root')).render( + + + +); diff --git a/src/maintenance/index.jsx b/src/maintenance/index.jsx new file mode 100644 index 0000000..d4ed2a9 --- /dev/null +++ b/src/maintenance/index.jsx @@ -0,0 +1,25 @@ +const MaintenancePage = (props) => { + function handleClearCache() { + // Implement your cache clearing logic here + } + + function handleReloadUpdate() { + // Implement your update reloading logic here + } + + function handleVersionCheck() { + // Implement your version checking logic here + } + + return ( + <> +
+

Maintenance Page

+ + + +
+ + ); +}; +export default MaintenancePage; diff --git a/vite.config.js b/vite.config.js index 69c5d7c..4f9bb8f 100644 --- a/vite.config.js +++ b/vite.config.js @@ -125,8 +125,12 @@ export default defineConfig({ sourcemap: true, manifest: true, chunkSizeWarningLimit: 555, - // rollupOptions: { - // output: { + rollupOptions: { + input: { + main: 'index.html', + maintenance: './maintenance.html' + }, + output: { // manualChunks(id) { // if (id.includes('node_modules')) { // return id.toString().split('node_modules/')[1].split('/')[0].toString(); @@ -136,8 +140,8 @@ export default defineConfig({ // const facadeModuleId = chunkInfo.facadeModuleId ? chunkInfo.facadeModuleId.split('/') : []; // return `assets/[name].[hash].js`; // } - // } - // } + } + } }, terserOptions: { maxWorkers: 4,