Add Fill F&B from last 7 days button to worksheet toolbar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b40bf96263
commit
cae411eae7
1 changed files with 28 additions and 1 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { Save, RefreshCw, Camera, Trash2, Printer } from 'lucide-react'
|
||||
import { Save, RefreshCw, Camera, Trash2, Printer, Repeat2 } from 'lucide-react'
|
||||
import { useAuth } from '../components/AuthGate'
|
||||
import { dfGetWorksheet, dfSaveWorksheet, dfGetReport, dfSaveSnapshot, dfDeleteSnapshot } from '../api'
|
||||
import type { WorksheetDay, WorksheetData, ForecastReportData, ForecastSnapshot } from '../types'
|
||||
|
|
@ -81,6 +81,28 @@ function WorksheetTab({ year, month }: { year: number; month: number }) {
|
|||
setDirty(true)
|
||||
}
|
||||
|
||||
function fillFnBFromLast7() {
|
||||
if (!data) return
|
||||
const last7 = data.days
|
||||
.filter(d => d.is_past && (d.actual_dry != null || d.actual_wet != null))
|
||||
.slice(-7)
|
||||
if (!last7.length) return
|
||||
setOverrides(prev => {
|
||||
const next = { ...prev }
|
||||
const futureDays = data.days.filter(d => !d.is_past)
|
||||
futureDays.forEach((day, i) => {
|
||||
const src = last7[i % last7.length]
|
||||
next[day.date] = {
|
||||
...next[day.date],
|
||||
dry_override: String(src.actual_dry ?? src.forecast_dry ?? ''),
|
||||
wet_override: String(src.actual_wet ?? src.forecast_wet ?? ''),
|
||||
}
|
||||
})
|
||||
return next
|
||||
})
|
||||
setDirty(true)
|
||||
}
|
||||
|
||||
async function handleSave() {
|
||||
if (!canEdit) return
|
||||
setSaving(true)
|
||||
|
|
@ -147,6 +169,11 @@ function WorksheetTab({ year, month }: { year: number; month: number }) {
|
|||
<button className="btn-icon df-btn-icon" onClick={load} title="Refresh">
|
||||
<RefreshCw size={13} strokeWidth={1.75} />
|
||||
</button>
|
||||
{canEdit && (
|
||||
<button className="btn-icon df-btn-icon" onClick={fillFnBFromLast7} title="Fill F&B from last 7 days">
|
||||
<Repeat2 size={13} strokeWidth={1.75} />
|
||||
</button>
|
||||
)}
|
||||
{canEdit && (
|
||||
<button className="btn-run df-save-btn" onClick={handleSave} disabled={saving || !dirty}>
|
||||
<Save size={13} strokeWidth={1.75} />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue