diff --git a/services/arbiter-3.0/src/index.js b/services/arbiter-3.0/src/index.js index b6993f2..adc6d5f 100644 --- a/services/arbiter-3.0/src/index.js +++ b/services/arbiter-3.0/src/index.js @@ -43,6 +43,15 @@ app.set('views', __dirname + '/views'); app.use(expressLayouts); app.set('layout', 'layout'); // Default layout is views/layout.ejs +// HTMX Middleware: Disable layout wrapper for HTMX AJAX requests +// HTMX sends HX-Request header - these requests need raw HTML fragments, not full layout +app.use((req, res, next) => { + if (req.headers['hx-request']) { + res.locals.layout = false; + } + next(); +}); + // CRITICAL: Stripe webhook needs raw body BEFORE express.json() middleware // Mounted at /webhooks/stripe to avoid conflict with /stripe checkout mount app.use('/webhooks/stripe', stripeRoutes);