Auto-format token and join-code inputs with dashes while typing

Shared wireCodeMask helper: uppercase, dash every 4 chars, raw-length
cap, caret preserved, backspace over a dash deletes the char before it.
This commit is contained in:
2026-07-20 10:46:13 +07:00
parent 36c4e4f306
commit 65480fd892
3 changed files with 28 additions and 2 deletions
+3 -1
View File
@@ -1,6 +1,6 @@
// Trip list dashboard: cards, a "new trip" form, and a "join a trip" form.
import { api } from '../api.js';
import { el, mount, clear, loading, errorBox, emptyState, toast } from '../dom.js';
import { el, mount, clear, loading, errorBox, emptyState, toast, wireCodeMask } from '../dom.js';
import { formatRange, ymd, parseYMD, pluralize, normalizeCode } from '../format.js';
import { enableTripReorder } from './dragdrop.js';
@@ -201,8 +201,10 @@ export function renderTrips(container, ctx) {
autocapitalize: 'characters',
spellcheck: 'false',
placeholder: 'XXXX-XXXX',
maxlength: '9',
'aria-label': 'Join code',
});
wireCodeMask(codeInput, 8);
const errorEl = el('p', { class: 'form-error' });
const submitBtn = el('button', { class: 'btn btn-primary', type: 'submit' }, 'Join trip');