fix(pwa): handle orientation.lock() promise rejection silently
screen.orientation.lock() returns a Promise; the old try/catch only caught synchronous errors, leaving the rejection unhandled and triggering the auto-reporter (issue #8). Added .catch(()=>{}) to suppress it. Also fixed CI: add sleep+retry around gh release create to avoid 502 race condition after delete. Closes #8
This commit is contained in:
@@ -50,14 +50,20 @@ jobs:
|
|||||||
- name: Delete existing kiosk release
|
- name: Delete existing kiosk release
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: gh release delete kiosk-latest --yes || true
|
run: |
|
||||||
|
gh release delete kiosk-latest --yes || true
|
||||||
|
sleep 5
|
||||||
|
|
||||||
- name: Create GitHub Release and upload APK
|
- name: Create GitHub Release and upload APK
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
|
for i in 1 2 3; do
|
||||||
gh release create kiosk-latest \
|
gh release create kiosk-latest \
|
||||||
--title "EverShelf Kiosk v${{ steps.version.outputs.name }}" \
|
--title "EverShelf Kiosk v${{ steps.version.outputs.name }}" \
|
||||||
--notes "Kiosk mode app with embedded BLE scale gateway. Install on your Android device (7.0+)." \
|
--notes "Kiosk mode app with embedded BLE scale gateway. Install on your Android device (7.0+)." \
|
||||||
--prerelease \
|
--prerelease \
|
||||||
artifacts/evershelf-kiosk.apk
|
artifacts/evershelf-kiosk.apk && break
|
||||||
|
echo "Attempt $i failed, retrying in 10s..."
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
|||||||
+2
-2
@@ -10147,7 +10147,7 @@ function startCookingMode() {
|
|||||||
document.getElementById('cooking-tts-btn').textContent = '🔊';
|
document.getElementById('cooking-tts-btn').textContent = '🔊';
|
||||||
document.getElementById('cooking-overlay').style.display = 'flex';
|
document.getElementById('cooking-overlay').style.display = 'flex';
|
||||||
document.body.classList.add('cooking-mode-active');
|
document.body.classList.add('cooking-mode-active');
|
||||||
try { screen.orientation?.lock('portrait'); } catch (_) { /* ignore */ }
|
try { screen.orientation?.lock('portrait').catch(() => {}); } catch (_) { /* ignore */ }
|
||||||
renderCookingStep();
|
renderCookingStep();
|
||||||
if (_cookingTTS) {
|
if (_cookingTTS) {
|
||||||
const text = ((_cookingRecipe.steps || [])[_cookingStep] || '').replace(/^Passo\s*\d+\s*[:.]\s*/i, '');
|
const text = ((_cookingRecipe.steps || [])[_cookingStep] || '').replace(/^Passo\s*\d+\s*[:.]\s*/i, '');
|
||||||
@@ -10159,7 +10159,7 @@ function closeCookingMode() {
|
|||||||
document.body.classList.remove('cooking-mode-active');
|
document.body.classList.remove('cooking-mode-active');
|
||||||
// NOTE: intentionally keep _cookingRecipe, _cookingStep, _cookingVisited
|
// NOTE: intentionally keep _cookingRecipe, _cookingStep, _cookingVisited
|
||||||
// so the user can resume from the same step when they reopen
|
// so the user can resume from the same step when they reopen
|
||||||
try { screen.orientation?.unlock(); } catch (_) { /* ignore */ }
|
try { screen.orientation?.unlock().catch(() => {}); } catch (_) { /* ignore */ }
|
||||||
}
|
}
|
||||||
|
|
||||||
function restartCookingMode() {
|
function restartCookingMode() {
|
||||||
|
|||||||
Reference in New Issue
Block a user