Vertical tab order on worksheet override inputs (pickup → dry → wet columns)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
822ce2f970
commit
29a119f51d
1 changed files with 9 additions and 1 deletions
|
|
@ -168,10 +168,15 @@ function WorksheetTab({ year, month }: { year: number; month: number }) {
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{data.days.map(day => {
|
{data.days.map((day, i) => {
|
||||||
|
const n = data.days.length
|
||||||
const c = computedDay(day)
|
const c = computedDay(day)
|
||||||
const ovr = overrides[day.date] || { pickup_rooms: '', pickup_avg_rate: '', dry_override: '', wet_override: '' }
|
const ovr = overrides[day.date] || { pickup_rooms: '', pickup_avg_rate: '', dry_override: '', wet_override: '' }
|
||||||
const rowCls = day.is_today ? 'df-row-today' : day.is_past ? 'df-row-past' : ''
|
const rowCls = day.is_today ? 'df-row-today' : day.is_past ? 'df-row-past' : ''
|
||||||
|
// tabIndex groups: pickup col → dry col → wet col (vertical tab order)
|
||||||
|
const tabPickup = i + 1
|
||||||
|
const tabDry = n + i + 1
|
||||||
|
const tabWet = n * 2 + i + 1
|
||||||
return (
|
return (
|
||||||
<tr key={day.date} className={rowCls}>
|
<tr key={day.date} className={rowCls}>
|
||||||
<td>{DOW_NAMES[day.dow]}</td>
|
<td>{DOW_NAMES[day.dow]}</td>
|
||||||
|
|
@ -186,6 +191,7 @@ function WorksheetTab({ year, month }: { year: number; month: number }) {
|
||||||
<td className="df-input-cell">
|
<td className="df-input-cell">
|
||||||
{canEdit && !day.is_past ? (
|
{canEdit && !day.is_past ? (
|
||||||
<input type="number" value={ovr.pickup_rooms} min="0" placeholder="0"
|
<input type="number" value={ovr.pickup_rooms} min="0" placeholder="0"
|
||||||
|
tabIndex={tabPickup}
|
||||||
onChange={e => setOvr(day.date, 'pickup_rooms', e.target.value)}
|
onChange={e => setOvr(day.date, 'pickup_rooms', e.target.value)}
|
||||||
className="df-cell-input" />
|
className="df-cell-input" />
|
||||||
) : (
|
) : (
|
||||||
|
|
@ -201,6 +207,7 @@ function WorksheetTab({ year, month }: { year: number; month: number }) {
|
||||||
<td className="df-input-cell">
|
<td className="df-input-cell">
|
||||||
{canEdit ? (
|
{canEdit ? (
|
||||||
<input type="number" value={ovr.dry_override} step="0.01"
|
<input type="number" value={ovr.dry_override} step="0.01"
|
||||||
|
tabIndex={tabDry}
|
||||||
placeholder={fmtNum(day.forecast_dry, 0)}
|
placeholder={fmtNum(day.forecast_dry, 0)}
|
||||||
onChange={e => setOvr(day.date, 'dry_override', e.target.value)}
|
onChange={e => setOvr(day.date, 'dry_override', e.target.value)}
|
||||||
className="df-cell-input" />
|
className="df-cell-input" />
|
||||||
|
|
@ -209,6 +216,7 @@ function WorksheetTab({ year, month }: { year: number; month: number }) {
|
||||||
<td className="df-input-cell">
|
<td className="df-input-cell">
|
||||||
{canEdit ? (
|
{canEdit ? (
|
||||||
<input type="number" value={ovr.wet_override} step="0.01"
|
<input type="number" value={ovr.wet_override} step="0.01"
|
||||||
|
tabIndex={tabWet}
|
||||||
placeholder={fmtNum(day.forecast_wet, 0)}
|
placeholder={fmtNum(day.forecast_wet, 0)}
|
||||||
onChange={e => setOvr(day.date, 'wet_override', e.target.value)}
|
onChange={e => setOvr(day.date, 'wet_override', e.target.value)}
|
||||||
className="df-cell-input" />
|
className="df-cell-input" />
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue