diff --git a/src/providers/SocketProvider.js b/src/providers/SocketProvider.js
index dabfeac..289edfc 100644
--- a/src/providers/SocketProvider.js
+++ b/src/providers/SocketProvider.js
@@ -23,7 +23,9 @@ class SocketProvider extends Component {
console.log(`SocketProvider: Connecting to socket server... ${url}`);
this.socket = io(url, {
- transports: ["websocket"],
+ transports: ["polling", "websocket"],
+ upgrade: true,
+ rememberUpgrade: true,
});
this.socket.on("connect", () => {
@@ -67,7 +69,10 @@ class SocketProvider extends Component {
});
this.socket.on("connect_error", (error) => {
- console.error("SocketProvider: Connection error:", error);
+ // Only log connection errors in development mode to reduce noise in production
+ if (process.env.NODE_ENV === "development") {
+ console.error("SocketProvider: Connection error:", error);
+ }
this.handleConnectionFailure();
});
@@ -81,7 +86,9 @@ class SocketProvider extends Component {
});
this.socketB = io(url, {
- transports: ["websocket"],
+ transports: ["polling", "websocket"],
+ upgrade: true,
+ rememberUpgrade: true,
});
this.socketB.on("connect", () => {
@@ -95,7 +102,10 @@ class SocketProvider extends Component {
});
this.socketB.on("connect_error", (error) => {
- console.error("SocketProvider: Connection errorB:", error);
+ // Only log connection errors in development mode to reduce noise in production
+ if (process.env.NODE_ENV === "development") {
+ console.error("SocketProvider: Connection errorB:", error);
+ }
});
this.socketB.on("reconnect_attempt", (attemptNumber) => {
diff --git a/webpack.config.js b/webpack.config.js
index 8e130d8..3e6099a 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -158,23 +158,37 @@ class InlineCssPlugin {
// Add font preload links
let fontPreloads = '';
fontUrls.forEach(fontUrl => {
- fontPreloads += `\n`;
+ fontPreloads += `\n`;
});
- // Add critical image preloads for LCP optimization
- const criticalImages = [
- '/assets/images/filiale1.jpg',
- '/assets/images/filiale2.jpg',
- '/assets/images/seeds.jpg',
- '/assets/images/cutlings.jpg',
- '/assets/images/presse.jpg',
- '/assets/images/purpl.jpg'
- ];
-
+ // Add critical image preloads for LCP optimization - only for pages that need them
+ // These images are used in MainPageLayout (home, aktionen, filiale) and Content (category pages)
+ // Skip preloading on product detail pages and other specific pages
let imagePreloads = '';
- criticalImages.forEach(imagePath => {
- imagePreloads += `\n`;
- });
+
+ // Extract current page path from the HTML to determine which images to preload
+ const htmlContent = data.html;
+ const isProductPage = htmlContent.includes('/Artikel/') || htmlContent.includes('product-detail');
+ const isSpecialPage = htmlContent.includes('/impressum') || htmlContent.includes('/datenschutz') ||
+ htmlContent.includes('/agb') || htmlContent.includes('/profile') ||
+ htmlContent.includes('/admin') || htmlContent.includes('/404') ||
+ htmlContent.includes('/widerrufsrecht') || htmlContent.includes('/batteriegesetzhinweise');
+
+ // Only preload navigation images for main pages (home, categories, aktionen, filiale)
+ if (!isProductPage && !isSpecialPage) {
+ const criticalImages = [
+ '/assets/images/filiale1.jpg',
+ '/assets/images/filiale2.jpg',
+ '/assets/images/seeds.jpg',
+ '/assets/images/cutlings.jpg',
+ '/assets/images/presse.jpg',
+ '/assets/images/purpl.jpg'
+ ];
+
+ criticalImages.forEach(imagePath => {
+ imagePreloads += `\n`;
+ });
+ }
// Add inlined CSS to head
const styleTag = ``;