diff --git a/apps/admin/app/layout.tsx b/apps/admin/app/layout.tsx index ba5a858..6ee8617 100644 --- a/apps/admin/app/layout.tsx +++ b/apps/admin/app/layout.tsx @@ -13,31 +13,45 @@ import NextTopLoader from 'nextjs-toploader'; import React from 'react'; export async function generateMetadata(): Promise { - try { - const config = await getGlobalConfig({ skipErrorHandler: true }).then((res) => res.data.data!); - const site = config.site || {}; - return { - title: { - default: `${site.site_name}`, - template: `%s | ${site.site_name}`, - }, - description: site.site_desc, - icons: { - icon: site.site_logo - ? [ - { - url: site.site_logo, - sizes: 'any', - }, - ] - : [], - }, - }; - } catch (error) { - return { - title: { default: 'PPanel', template: '%s | PPanel' }, - }; - } + let site: API.SiteConfig | undefined; + + await getGlobalConfig({ skipErrorHandler: true }) + .then((res) => { + const config = res.data.data; + site = config?.site || undefined; + }) + .catch((error) => { + console.error('Error fetching global config:', error); + }); + + const defaultMetadata = { + title: { + default: site?.site_name || `PPanel`, + template: `%s | ${site?.site_name || 'PPanel'}`, + }, + description: site?.site_desc || '', + icons: { + icon: site?.site_logo + ? [ + { + url: site.site_logo, + sizes: 'any', + }, + ] + : [ + { url: '/favicon.ico', sizes: '48x48' }, + { url: '/favicon.svg', type: 'image/svg+xml' }, + ], + apple: site?.site_logo || '/apple-touch-icon.png', + }, + manifest: '/site.webmanifest', + themeColor: [ + { media: '(prefers-color-scheme: light)', color: '#FFFFFF' }, + { media: '(prefers-color-scheme: dark)', color: '#000000' }, + ], + }; + + return defaultMetadata; } export default async function RootLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/admin/public/apple-touch-icon.png b/apps/admin/public/apple-touch-icon.png index 0eb5b6b..3001206 100644 Binary files a/apps/admin/public/apple-touch-icon.png and b/apps/admin/public/apple-touch-icon.png differ diff --git a/apps/admin/public/favicon-16x16.png b/apps/admin/public/favicon-16x16.png deleted file mode 100644 index b400ec9..0000000 Binary files a/apps/admin/public/favicon-16x16.png and /dev/null differ diff --git a/apps/admin/public/favicon-32x32.png b/apps/admin/public/favicon-32x32.png deleted file mode 100644 index 668a3ec..0000000 Binary files a/apps/admin/public/favicon-32x32.png and /dev/null differ diff --git a/apps/admin/public/favicon.ico b/apps/admin/public/favicon.ico index e72db13..68c1259 100644 Binary files a/apps/admin/public/favicon.ico and b/apps/admin/public/favicon.ico differ diff --git a/apps/admin/public/pwa-192x192.png b/apps/admin/public/pwa-192x192.png index 5101b0e..3a85007 100644 Binary files a/apps/admin/public/pwa-192x192.png and b/apps/admin/public/pwa-192x192.png differ diff --git a/apps/admin/public/pwa-512x512.png b/apps/admin/public/pwa-512x512.png index fbfed61..510f451 100644 Binary files a/apps/admin/public/pwa-512x512.png and b/apps/admin/public/pwa-512x512.png differ diff --git a/apps/admin/public/pwa-maskable-192x192.png b/apps/admin/public/pwa-maskable-192x192.png index eb09483..8b79e9e 100644 Binary files a/apps/admin/public/pwa-maskable-192x192.png and b/apps/admin/public/pwa-maskable-192x192.png differ diff --git a/apps/admin/public/pwa-maskable-512x512.png b/apps/admin/public/pwa-maskable-512x512.png index fe1ce60..dd7192b 100644 Binary files a/apps/admin/public/pwa-maskable-512x512.png and b/apps/admin/public/pwa-maskable-512x512.png differ diff --git a/apps/admin/public/site.webmanifest b/apps/admin/public/site.webmanifest index 77de62e..c58629b 100644 --- a/apps/admin/public/site.webmanifest +++ b/apps/admin/public/site.webmanifest @@ -1,7 +1,6 @@ { - "background_color": "#FFFFFF", - "description": "PPanel is a pure, professional, and perfect open-source proxy panel tool, designed to be your ideal choice for learning and practical use.", - "display": "standalone", + "name": "PPanel", + "short_name": "PPanel", "icons": [ { "src": "/pwa-192x192.png", @@ -28,8 +27,8 @@ "purpose": "maskable" } ], - "name": "PPanel", - "short_name": "PPanel", "start_url": "/", + "display": "standalone", + "background_color": "#FFFFFF", "theme_color": "#FFFFFF" -} +} \ No newline at end of file diff --git a/apps/user/app/layout.tsx b/apps/user/app/layout.tsx index bd2c2c1..caaa059 100644 --- a/apps/user/app/layout.tsx +++ b/apps/user/app/layout.tsx @@ -13,31 +13,44 @@ import NextTopLoader from 'nextjs-toploader'; import React from 'react'; export async function generateMetadata(): Promise { - try { - const config = await getGlobalConfig({ skipErrorHandler: true }).then((res) => res.data.data!); - const site = config.site || {}; - return { - title: { - default: `${site.site_name}`, - template: `%s | ${site.site_name}`, - }, - description: site.site_desc, - icons: { - icon: site.site_logo - ? [ - { - url: site.site_logo, - sizes: 'any', - }, - ] - : [], - }, - }; - } catch (error) { - return { - title: { default: 'PPanel', template: '%s | PPanel' }, - }; - } + let site: API.SiteConfig | undefined; + + await getGlobalConfig({ skipErrorHandler: true }) + .then((res) => { + const config = res.data.data; + site = config?.site || undefined; + }) + .catch((error) => { + console.error('Error fetching global config:', error); + }); + + const defaultMetadata = { + title: { + default: site?.site_name || `PPanel`, + template: `%s | ${site?.site_name || 'PPanel'}`, + }, + description: site?.site_desc || '', + icons: { + icon: site?.site_logo + ? [ + { + url: site.site_logo, + sizes: 'any', + }, + ] + : [ + { url: '/favicon.ico', sizes: '48x48' }, + { url: '/favicon.svg', type: 'image/svg+xml' }, + ], + apple: site?.site_logo || '/apple-touch-icon.png', + }, + manifest: '/site.webmanifest', + themeColor: [ + { media: '(prefers-color-scheme: light)', color: '#FFFFFF' }, + { media: '(prefers-color-scheme: dark)', color: '#000000' }, + ], + }; + return defaultMetadata; } export default async function RootLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/user/public/apple-touch-icon.png b/apps/user/public/apple-touch-icon.png index 0eb5b6b..3001206 100644 Binary files a/apps/user/public/apple-touch-icon.png and b/apps/user/public/apple-touch-icon.png differ diff --git a/apps/user/public/favicon-16x16.png b/apps/user/public/favicon-16x16.png deleted file mode 100644 index b400ec9..0000000 Binary files a/apps/user/public/favicon-16x16.png and /dev/null differ diff --git a/apps/user/public/favicon-32x32.png b/apps/user/public/favicon-32x32.png deleted file mode 100644 index 668a3ec..0000000 Binary files a/apps/user/public/favicon-32x32.png and /dev/null differ diff --git a/apps/user/public/favicon.ico b/apps/user/public/favicon.ico index e72db13..68c1259 100644 Binary files a/apps/user/public/favicon.ico and b/apps/user/public/favicon.ico differ diff --git a/apps/user/public/pwa-192x192.png b/apps/user/public/pwa-192x192.png index 5101b0e..3a85007 100644 Binary files a/apps/user/public/pwa-192x192.png and b/apps/user/public/pwa-192x192.png differ diff --git a/apps/user/public/pwa-512x512.png b/apps/user/public/pwa-512x512.png index fbfed61..510f451 100644 Binary files a/apps/user/public/pwa-512x512.png and b/apps/user/public/pwa-512x512.png differ diff --git a/apps/user/public/pwa-maskable-192x192.png b/apps/user/public/pwa-maskable-192x192.png index eb09483..8b79e9e 100644 Binary files a/apps/user/public/pwa-maskable-192x192.png and b/apps/user/public/pwa-maskable-192x192.png differ diff --git a/apps/user/public/pwa-maskable-512x512.png b/apps/user/public/pwa-maskable-512x512.png index fe1ce60..dd7192b 100644 Binary files a/apps/user/public/pwa-maskable-512x512.png and b/apps/user/public/pwa-maskable-512x512.png differ diff --git a/apps/user/public/site.webmanifest b/apps/user/public/site.webmanifest index 77de62e..c58629b 100644 --- a/apps/user/public/site.webmanifest +++ b/apps/user/public/site.webmanifest @@ -1,7 +1,6 @@ { - "background_color": "#FFFFFF", - "description": "PPanel is a pure, professional, and perfect open-source proxy panel tool, designed to be your ideal choice for learning and practical use.", - "display": "standalone", + "name": "PPanel", + "short_name": "PPanel", "icons": [ { "src": "/pwa-192x192.png", @@ -28,8 +27,8 @@ "purpose": "maskable" } ], - "name": "PPanel", - "short_name": "PPanel", "start_url": "/", + "display": "standalone", + "background_color": "#FFFFFF", "theme_color": "#FFFFFF" -} +} \ No newline at end of file