mirror of
https://github.com/Sonny93/my-links.git
synced 2025-12-08 14:43:24 +00:00
feat: remove SSR for dasboard page
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
|
import { isSSREnableForPage } from '#config/ssr';
|
||||||
import {
|
import {
|
||||||
PREFER_DARK_THEME,
|
|
||||||
DARK_THEME_DEFAULT_VALUE,
|
DARK_THEME_DEFAULT_VALUE,
|
||||||
|
PREFER_DARK_THEME,
|
||||||
} from '#user/constants/theme';
|
} from '#user/constants/theme';
|
||||||
|
import logger from '@adonisjs/core/services/logger';
|
||||||
import { defineConfig } from '@adonisjs/inertia';
|
import { defineConfig } from '@adonisjs/inertia';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
@@ -32,5 +34,10 @@ export default defineConfig({
|
|||||||
ssr: {
|
ssr: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
entrypoint: 'inertia/app/ssr.tsx',
|
entrypoint: 'inertia/app/ssr.tsx',
|
||||||
|
pages: (_, page) => {
|
||||||
|
const ssrEnabled = isSSREnableForPage(page);
|
||||||
|
logger.debug(`Page "${page}" SSR enabled: ${ssrEnabled}`);
|
||||||
|
return ssrEnabled;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
2
config/ssr.ts
Normal file
2
config/ssr.ts
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export const CSR_ROUTES = ['dashboard'];
|
||||||
|
export const isSSREnableForPage = (page: string) => !CSR_ROUTES.includes(page);
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
import { resolvePageComponent } from '@adonisjs/inertia/helpers';
|
import { resolvePageComponent } from '@adonisjs/inertia/helpers';
|
||||||
import { createInertiaApp } from '@inertiajs/react';
|
import { createInertiaApp } from '@inertiajs/react';
|
||||||
|
import { isSSREnableForPage } from 'config-ssr';
|
||||||
import 'dayjs/locale/en';
|
import 'dayjs/locale/en';
|
||||||
import 'dayjs/locale/fr';
|
import 'dayjs/locale/fr';
|
||||||
import { hydrateRoot } from 'react-dom/client';
|
import { createRoot, hydrateRoot } from 'react-dom/client';
|
||||||
import '../i18n/index';
|
import '../i18n/index';
|
||||||
|
|
||||||
const appName = import.meta.env.VITE_APP_NAME || 'MyLinks';
|
const appName = import.meta.env.VITE_APP_NAME || 'MyLinks';
|
||||||
@@ -20,6 +21,13 @@ createInertiaApp({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setup({ el, App, props }) {
|
setup({ el, App, props }) {
|
||||||
hydrateRoot(el, <App {...props} />);
|
const componentName = props.initialPage.component;
|
||||||
|
const isSSREnabled = isSSREnableForPage(componentName);
|
||||||
|
console.debug(`Page "${componentName}" SSR enabled: ${isSSREnabled}`);
|
||||||
|
if (isSSREnabled) {
|
||||||
|
hydrateRoot(el, <App {...props} />);
|
||||||
|
} else {
|
||||||
|
createRoot(el).render(<App {...props} />);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,8 +6,9 @@
|
|||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"~/*": ["./*"]
|
"~/*": ["./*"],
|
||||||
|
"config-ssr": ["../config/ssr"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": ["./**/*.ts", "./**/*.tsx"]
|
"include": ["./**/*.ts", "./**/*.tsx", "../config/ssr.ts"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { defineConfig } from 'vite';
|
|
||||||
import { getDirname } from '@adonisjs/core/helpers';
|
import { getDirname } from '@adonisjs/core/helpers';
|
||||||
import inertia from '@adonisjs/inertia/client';
|
import inertia from '@adonisjs/inertia/client';
|
||||||
import react from '@vitejs/plugin-react';
|
|
||||||
import adonisjs from '@adonisjs/vite/client';
|
import adonisjs from '@adonisjs/vite/client';
|
||||||
|
import react from '@vitejs/plugin-react';
|
||||||
|
import { defineConfig } from 'vite';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
@@ -21,6 +21,7 @@ export default defineConfig({
|
|||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'~/': `${getDirname(import.meta.url)}/inertia/`,
|
'~/': `${getDirname(import.meta.url)}/inertia/`,
|
||||||
|
'config-ssr': `${getDirname(import.meta.url)}/config/ssr.ts`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user