v0.5.1 fixed mobile PWA refesh
This commit is contained in:
@@ -7,7 +7,7 @@ TZ=UTC
|
|||||||
# Copy this file to .env and customize
|
# Copy this file to .env and customize
|
||||||
|
|
||||||
# Image version to run (set by build.sh, or use 'latest')
|
# Image version to run (set by build.sh, or use 'latest')
|
||||||
JAMA_VERSION=0.5.0
|
JAMA_VERSION=0.5.1
|
||||||
|
|
||||||
# Default admin credentials (used on FIRST RUN only)
|
# Default admin credentials (used on FIRST RUN only)
|
||||||
ADMIN_NAME=Admin User
|
ADMIN_NAME=Admin User
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "jama-backend",
|
"name": "jama-backend",
|
||||||
"version": "0.5.0",
|
"version": "0.5.1",
|
||||||
"description": "TeamChat backend server",
|
"description": "TeamChat backend server",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
2
build.sh
2
build.sh
@@ -13,7 +13,7 @@
|
|||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
VERSION="${1:-0.5.0}"
|
VERSION="${1:-0.5.1}"
|
||||||
ACTION="${2:-}"
|
ACTION="${2:-}"
|
||||||
REGISTRY="${REGISTRY:-}"
|
REGISTRY="${REGISTRY:-}"
|
||||||
IMAGE_NAME="jama"
|
IMAGE_NAME="jama"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "jama-frontend",
|
"name": "jama-frontend",
|
||||||
"version": "0.5.0",
|
"version": "0.5.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -30,6 +30,11 @@
|
|||||||
|
|
||||||
html, body, #root { height: 100%; min-width: 320px; font-family: var(--font); color: var(--text-primary); background: var(--background); }
|
html, body, #root { height: 100%; min-width: 320px; font-family: var(--font); color: var(--text-primary); background: var(--background); }
|
||||||
|
|
||||||
|
/* Disable pull-to-refresh in PWA standalone mode — prevents viewport shift bug */
|
||||||
|
html {
|
||||||
|
overscroll-behavior-y: none;
|
||||||
|
}
|
||||||
|
|
||||||
button { font-family: var(--font); cursor: pointer; border: none; background: none; }
|
button { font-family: var(--font); cursor: pointer; border: none; background: none; }
|
||||||
input, textarea { font-family: var(--font); }
|
input, textarea { font-family: var(--font); }
|
||||||
a { color: inherit; text-decoration: none; }
|
a { color: inherit; text-decoration: none; }
|
||||||
|
|||||||
@@ -17,6 +17,28 @@ if ('serviceWorker' in navigator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Disable pull-to-refresh in PWA standalone mode to prevent viewport shift bug.
|
||||||
|
// The CSS overscroll-behavior-y:none handles most browsers; this catches the rest.
|
||||||
|
(function () {
|
||||||
|
const isStandalone = window.matchMedia('(display-mode: standalone)').matches
|
||||||
|
|| window.navigator.standalone === true;
|
||||||
|
if (!isStandalone) return;
|
||||||
|
|
||||||
|
let startY = 0;
|
||||||
|
document.addEventListener('touchstart', e => {
|
||||||
|
startY = e.touches[0].clientY;
|
||||||
|
}, { passive: true });
|
||||||
|
|
||||||
|
document.addEventListener('touchmove', e => {
|
||||||
|
// Only block downward pull at the very top of the document
|
||||||
|
const dy = e.touches[0].clientY - startY;
|
||||||
|
if (dy > 0 && (document.documentElement.scrollTop === 0 || document.body.scrollTop === 0)) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
}, { passive: false });
|
||||||
|
})();
|
||||||
|
|
||||||
// Clear badge count when user focuses the app
|
// Clear badge count when user focuses the app
|
||||||
window.addEventListener('focus', () => {
|
window.addEventListener('focus', () => {
|
||||||
if (navigator.clearAppBadge) navigator.clearAppBadge().catch(() => {});
|
if (navigator.clearAppBadge) navigator.clearAppBadge().catch(() => {});
|
||||||
|
|||||||
Reference in New Issue
Block a user