Merge main into bundler-2/work
This commit is contained in:
commit
b122009b96
9 changed files with 64 additions and 24 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
4
public/doxa-maps/doxa-maps-spa/manifest.json
generated
4
public/doxa-maps/doxa-maps-spa/manifest.json
generated
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
2
public/doxa-maps/index.html
generated
2
public/doxa-maps/index.html
generated
|
|
@ -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>
|
||||
|
|
|
|||
4
public/doxa-maps/manifest.json
generated
4
public/doxa-maps/manifest.json
generated
|
|
@ -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
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue