diff --git a/.env.example b/.env.example index 4c1c9cce..ba410fab 100644 --- a/.env.example +++ b/.env.example @@ -5,10 +5,12 @@ NUXT_PUBLIC_SITE_URL=http://localhost:3000 JWT_SECRET=your-super-secret-jwt-key-change-this -MAILGUN_API_KEY=your-mailgun-api-key -MAILGUN_DOMAIN=mg.yourdomain.com -# Optional: Use 'api.eu.mailgun.net' for EU region -MAILGUN_HOST= +# SendGrid (transactional email: invites, password resets, verification). +# Sends through the v3 JSON API. The From address in SMTP_FROM must be on a +# domain authenticated in the SendGrid account. +SENDGRID_API_KEY=your-sendgrid-api-key +# Optional API host override; defaults to api.sendgrid.com (use api.eu.sendgrid.com for EU) +SENDGRID_HOST= SMTP_FROM=noreply@yourdomain.com SMTP_FROM_NAME=My App diff --git a/app/app.vue b/app/app.vue index f93fb729..849bd49f 100644 --- a/app/app.vue +++ b/app/app.vue @@ -7,6 +7,11 @@ // Destination comes from NUXT_PUBLIC_FEEDBACK_API_BASE / _PROJECT_ID. With no // project id there is nowhere to post, so the widget and its bundle are skipped. const { public: pub } = useRuntimeConfig() +// Bare pages (layout:false — e.g. /doxa-maps, the full-page maps SPA) get NO +// site chrome at all: the fixed feedback bubble lives outside NuxtLayout, so it +// must opt out here or it floats over the map. +const route = useRoute() +const isBarePage = computed(() => route.meta.layout === false) const feedbackEnabled = Boolean(pub.feedbackProjectId) if (feedbackEnabled) useFeedbackScript() @@ -27,7 +32,7 @@ const siteFeedbackConfig = JSON.stringify({
diff --git a/app/components/public/UupgsList.vue b/app/components/public/UupgsList.vue index a8d31ced..1d5f4699 100644 --- a/app/components/public/UupgsList.vue +++ b/app/components/public/UupgsList.vue @@ -600,7 +600,7 @@ const showMore = computed(() => hasMore())
-

+

@@ -633,9 +633,10 @@ const showMore = computed(() => hasMore())

() + > ()