Merge main into bundler-2/work

This commit is contained in:
doxa-maps-88655c70 2026-09-25 19:27:30 +00:00
commit b122009b96
9 changed files with 64 additions and 24 deletions

View file

@ -18,6 +18,16 @@
<div class="spinner"></div>
<p>Loading people groups...</p>
</div>
<!-- OFFLINE / BLOCKED: the live API could not be reached. Measured on a local dev server,
where pray.doxa.life refuses a 127.0.0.1 origin (CORS): the wall used to sit at
"0 Groups Loaded" with nothing saying why. Say what failed and offer a retry. -->
<div v-else-if="loadError && totalGroups === 0" class="wall-offline" role="status">
<p class="wall-offline-title">The live prayer data could not be reached.</p>
<p>The wall reads its people groups from pray.doxa.life. You may be offline, or, on a
local development server, the API may not allow this page's address.</p>
<button type="button" class="control-btn" @click="fetchData">Try again</button>
</div>
</div>
</template>
@ -50,6 +60,10 @@ export default {
peopleGroups() {
return this.$store?.peopleGroups || [];
},
loadError() {
return this.$store?.error || null;
}
},
mounted() {

View file

@ -1,5 +1,7 @@
<template>
<div v-if="sources.length > 1">
<!-- availableSources, the computed below: the template read an undefined `sources`, so this
threw "reading 'length'" on EVERY render, online or not (Vue logs it; nothing crashes) -->
<div v-if="availableSources.length > 1">
<div class="source-selector">
<div class="source-header">
<h3>📊 Data Source</h3>

View file

@ -58,7 +58,9 @@ export const usePeopleGroupsStore = (pinia) => {
console.log('First 3 groups:', this.peopleGroups.slice(0, 3));
} catch (error) {
console.error(`❌ Error fetching people groups from ${this.dataSource}:`, error);
// warn, not error: the wall now SAYS so on screen (PeopleGroupsWall's offline notice)
// and offers a retry; an unreachable API is an expected state, not a crash.
console.warn(`Could not fetch people groups from ${this.dataSource}:`, error && error.message);
this.error = error.message;
this.peopleGroups = [];
} finally {

View file

@ -116,6 +116,28 @@ body {
overflow: hidden;
}
/* Offline / blocked notice: the live API could not be reached. Sits over the empty canvas,
inside the wall (not position:fixed), so an embedded wall never covers its host page. */
.wall-container { position: relative; }
.wall-offline {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
max-width: min(440px, calc(100% - 32px));
padding: 20px 24px;
background: white;
border: 1px solid #dbdbdb;
border-radius: 12px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
color: var(--text-color);
font-size: 14px;
line-height: 1.5;
text-align: center;
}
.wall-offline-title { font-weight: 600; font-size: 16px; margin-bottom: 6px; }
.wall-offline p { margin: 0 0 12px; }
/* Loading Overlay */
.loading-overlay {
position: fixed;

View file

@ -1157,7 +1157,7 @@
"bundle": "wall-of-people-groups",
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"output": "doxa-maps/wall-of-people-groups/wall-of-people-groups.js",
"integrity": "sha384-ow6TEpar7r2E1FIHJDrkC1U8XoWxFklKLjpYC1vS/APil3pQ2wtNr0N0LDmIQBu6",
"integrity": "sha384-kz+tZW2mij4v9kmXna6fn1J3daDzoXa4Ut2xT3jkET+60AFDjIOLpeAUdONy3w6Q",
"elements": [
"wall-of-people-groups"
],
@ -1173,7 +1173,7 @@
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"embed": {
"iframe": "<iframe src=\"./wall-of-people-groups/wall-of-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-ow6TEpar7r2E1FIHJDrkC1U8XoWxFklKLjpYC1vS/APil3pQ2wtNr0N0LDmIQBu6\" crossorigin=\"anonymous\"></script>\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-kz+tZW2mij4v9kmXna6fn1J3daDzoXa4Ut2xT3jkET+60AFDjIOLpeAUdONy3w6Q\" crossorigin=\"anonymous\"></script>\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
},
"bundle": "wall-of-people-groups"
}

View file

@ -14,6 +14,6 @@
</head>
<body>
<plugin-studio tree-base="."></plugin-studio>
<script src="./plugin-studio/plugin-studio.js" integrity="sha384-iwq2RhhEc/Rx5dfEVoxYtxYjBd+1w47smMC8IDs0VglbZBt9RqwzrFu0SOuPGrBd" crossorigin="anonymous"></script>
<script src="./plugin-studio/plugin-studio.js"></script>
</body>
</html>

View file

@ -1157,7 +1157,7 @@
"bundle": "wall-of-people-groups",
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"output": "doxa-maps/wall-of-people-groups/wall-of-people-groups.js",
"integrity": "sha384-ow6TEpar7r2E1FIHJDrkC1U8XoWxFklKLjpYC1vS/APil3pQ2wtNr0N0LDmIQBu6",
"integrity": "sha384-kz+tZW2mij4v9kmXna6fn1J3daDzoXa4Ut2xT3jkET+60AFDjIOLpeAUdONy3w6Q",
"elements": [
"wall-of-people-groups"
],
@ -1173,7 +1173,7 @@
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"embed": {
"iframe": "<iframe src=\"./wall-of-people-groups/wall-of-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-ow6TEpar7r2E1FIHJDrkC1U8XoWxFklKLjpYC1vS/APil3pQ2wtNr0N0LDmIQBu6\" crossorigin=\"anonymous\"></script>\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./wall-of-people-groups/wall-of-people-groups.js\" integrity=\"sha384-kz+tZW2mij4v9kmXna6fn1J3daDzoXa4Ut2xT3jkET+60AFDjIOLpeAUdONy3w6Q\" crossorigin=\"anonymous\"></script>\n<wall-of-people-groups profile-config='{\"profile\":\"wall-of-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></wall-of-people-groups>"
},
"bundle": "wall-of-people-groups"
}

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <wall-of-people-groups> custom element. -->
<script src="../wall-of-people-groups.js" integrity="sha384-ow6TEpar7r2E1FIHJDrkC1U8XoWxFklKLjpYC1vS/APil3pQ2wtNr0N0LDmIQBu6" crossorigin="anonymous"></script>
<script src="../wall-of-people-groups.js" integrity="sha384-kz+tZW2mij4v9kmXna6fn1J3daDzoXa4Ut2xT3jkET+60AFDjIOLpeAUdONy3w6Q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: