diff --git a/backend/package.json b/backend/package.json index ce2fa3b..11b8104 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "rosterchirp-backend", - "version": "0.12.40", + "version": "0.12.41", "description": "RosterChirp backend server", "main": "src/index.js", "scripts": { diff --git a/build.sh b/build.sh index ad50a51..d814c17 100644 --- a/build.sh +++ b/build.sh @@ -13,7 +13,7 @@ # ───────────────────────────────────────────────────────────── set -euo pipefail -VERSION="${1:-0.12.40}" +VERSION="${1:-0.12.41}" ACTION="${2:-}" REGISTRY="${REGISTRY:-}" IMAGE_NAME="rosterchirp-dev" diff --git a/frontend/package.json b/frontend/package.json index 4dd5c17..e00ebb4 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "rosterchirp-frontend", - "version": "0.12.40", + "version": "0.12.41", "private": true, "scripts": { "dev": "vite", diff --git a/frontend/src/components/MobileEventForm.jsx b/frontend/src/components/MobileEventForm.jsx index e2eb0cb..709ad2e 100644 --- a/frontend/src/components/MobileEventForm.jsx +++ b/frontend/src/components/MobileEventForm.jsx @@ -107,6 +107,7 @@ function TimeInputMobile({ value, onChange }) { onBlur={e => setTimeout(() => commit(e.target.value), 150)} onKeyDown={e => { if (e.key === 'Enter') { e.preventDefault(); commit(inputVal); } if (e.key === 'Escape') { setInputVal(fmt12(value)); setOpen(false); } }} autoComplete="off" + inputMode="text" style={{ fontSize: 15, color: 'var(--primary)', fontWeight: 600, background: 'transparent', border: 'none', outline: 'none', cursor: 'text', width: 90 }} /> {open && ( @@ -485,7 +486,7 @@ export default function MobileEventForm({ event, eventTypes, userGroups, selecte {/* form wrapper suppresses Chrome Android's autofill chip bar; autoComplete="new-password" on individual inputs is ignored by Chrome but respected on the form element */} -
e.preventDefault()} style={{ flex:1,overflowY:'auto' }}> + e.preventDefault()} style={{ flex:1,overflowY:'auto', marginBottom:'50vh' }}> {/* Title */}
setTitle(e.target.value)} autoComplete="new-password" placeholder="Add title" autoCorrect="off" autoCapitalize="sentences" spellCheck={false} style={{ width:'100%',border:'none',background:'transparent',fontSize:22,fontWeight:700,color:'var(--text-primary)',outline:'none' }}/> diff --git a/frontend/src/components/SchedulePage.jsx b/frontend/src/components/SchedulePage.jsx index 3e8a715..95876ca 100644 --- a/frontend/src/components/SchedulePage.jsx +++ b/frontend/src/components/SchedulePage.jsx @@ -197,6 +197,7 @@ function TimeInput({ value, onChange, style }) { onKeyDown={e => { if (e.key === 'Enter') { e.preventDefault(); commit(inputVal); } if (e.key === 'Escape') { setInputVal(fmt12(value)); setOpen(false); } }} style={{ width: '100%', cursor: 'text' }} autoComplete="off" + inputMode="text" placeholder="9:00 AM" /> {open && (