diff --git a/frontend/src/components/MobileEventForm.jsx b/frontend/src/components/MobileEventForm.jsx index 8b2a089..16b626c 100644 --- a/frontend/src/components/MobileEventForm.jsx +++ b/frontend/src/components/MobileEventForm.jsx @@ -94,18 +94,18 @@ function TimeInputMobile({ value, onChange }) { const parsed = parseTypedTime(raw); if (parsed) { onChange(parsed); setInputVal(fmt12(parsed)); } else setInputVal(fmt12(value)); - setOpen(false); }; return (
setInputVal(e.target.value)} onFocus={() => setOpen(true)} 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" + autoComplete="new-password" style={{ fontSize: 15, color: 'var(--primary)', fontWeight: 600, background: 'transparent', border: 'none', outline: 'none', cursor: 'text', width: 90 }} /> {open && ( @@ -255,7 +255,7 @@ function RecurrenceSheet({ value, onChange, onClose }) {
Repeats every
- upd('interval',Math.max(1,parseInt(e.target.value)||1))} autoComplete="off" style={{ width:70,textAlign:'center',fontSize:16 }}/> + upd('interval',Math.max(1,parseInt(e.target.value)||1))} autoComplete="new-password" style={{ width:70,textAlign:'center',fontSize:16 }}/> @@ -282,8 +282,8 @@ function RecurrenceSheet({ value, onChange, onClose }) { {(customRule.ends||'never')===val&&
}
{lbl} - {val==='on'&&(customRule.ends||'never')==='on'&& upd('endDate',e.target.value)} autoComplete="off" style={{ width:150 }}/>} - {val==='after'&&(customRule.ends||'never')==='after'&&<> upd('endCount',parseInt(e.target.value)||1)} autoComplete="off" style={{ width:64,textAlign:'center' }}/>occurrences} + {val==='on'&&(customRule.ends||'never')==='on'&& upd('endDate',e.target.value)} autoComplete="new-password" style={{ width:150 }}/>} + {val==='after'&&(customRule.ends||'never')==='after'&&<> upd('endCount',parseInt(e.target.value)||1)} autoComplete="new-password" style={{ width:64,textAlign:'center' }}/>occurrences}
))}
@@ -482,12 +482,12 @@ export default function MobileEventForm({ event, eventTypes, userGroups, selecte
- {/* form wrapper suppresses Chrome Android's autofill chip bar; autoComplete="off" + {/* 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' }}> {/* Title */}
- setTitle(e.target.value)} autoComplete="off" 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' }}/> + 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' }}/>
{/* Event Type */} @@ -576,12 +576,12 @@ export default function MobileEventForm({ event, eventTypes, userGroups, selecte {/* Location */} }> - setLocation(e.target.value)} autoComplete="off" placeholder="Add location" autoCorrect="off" autoCapitalize="off" spellCheck={false} style={{ width:'100%',border:'none',background:'transparent',fontSize:15,color:'var(--text-primary)',outline:'none' }}/> + setLocation(e.target.value)} autoComplete="new-password" placeholder="Add location" autoCorrect="off" autoCapitalize="off" spellCheck={false} style={{ width:'100%',border:'none',background:'transparent',fontSize:15,color:'var(--text-primary)',outline:'none' }}/> {/* Description */} } border={false}> -