updates on the build
This commit is contained in:
@@ -35,7 +35,7 @@ export default function Login() {
|
||||
|
||||
const [form, setForm] = useState({ email: '', password: '', remember: true });
|
||||
const [showPassword, setShowPassword] = useState(false);
|
||||
const [errors, setErrors] = useState(/** @type {{ email?: string, password?: string }} */ ({}));
|
||||
const [errors, setErrors] = useState(/** @type {{ email?: string, password?: string }} */({}));
|
||||
const [authError, setAuthError] = useState('');
|
||||
const [status, setStatus] = useState('idle');
|
||||
|
||||
|
||||
@@ -246,8 +246,8 @@ export default function Deliveries() {
|
||||
(info?.name && !info.name.startsWith('Rider #'))
|
||||
? info.name
|
||||
: (row.ridername && !row.ridername.startsWith('Rider #'))
|
||||
? row.ridername
|
||||
: (info?.name || row.ridername || (row.userid ? `Rider #${row.userid}` : '—'));
|
||||
? row.ridername
|
||||
: (info?.name || row.ridername || (row.userid ? `Rider #${row.userid}` : '—'));
|
||||
const contact = info?.phone || row.ridercontact;
|
||||
|
||||
return (
|
||||
@@ -383,17 +383,16 @@ export default function Deliveries() {
|
||||
<PageHeader
|
||||
icon={Truck}
|
||||
title="Deliveries"
|
||||
subtitle={`${batchRows.length} dispatched · ${
|
||||
!dateParams.from && !dateParams.to
|
||||
? 'All dates'
|
||||
: selectedDate === todayStr
|
||||
? 'Today'
|
||||
: selectedDate === dayjs().subtract(1, 'day').format('YYYY-MM-DD')
|
||||
? 'Yesterday'
|
||||
: dateParams.from === dateParams.to
|
||||
? dayjs(dateParams.from).format('DD MMM YYYY')
|
||||
: `${dayjs(dateParams.from).format('DD MMM')} → ${dayjs(dateParams.to).format('DD MMM YYYY')}`
|
||||
}`}
|
||||
subtitle={`${batchRows.length} dispatched · ${!dateParams.from && !dateParams.to
|
||||
? 'All dates'
|
||||
: selectedDate === todayStr
|
||||
? 'Today'
|
||||
: selectedDate === dayjs().subtract(1, 'day').format('YYYY-MM-DD')
|
||||
? 'Yesterday'
|
||||
: dateParams.from === dateParams.to
|
||||
? dayjs(dateParams.from).format('DD MMM YYYY')
|
||||
: `${dayjs(dateParams.from).format('DD MMM')} → ${dayjs(dateParams.to).format('DD MMM YYYY')}`
|
||||
}`}
|
||||
actions={
|
||||
<DatePicker
|
||||
value={selectedDate}
|
||||
|
||||
@@ -224,8 +224,34 @@ const ActiveSection = ({
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Rider & Telemetry Row */}
|
||||
<div className="flex items-center justify-between mt-1 text-[11px] text-slate-600 bg-slate-50 px-2 py-1 rounded">
|
||||
<div className="flex items-center gap-1.5 truncate">
|
||||
<span className="font-semibold text-slate-900 truncate">
|
||||
🛵 {o.rider_name || o.ridername || rider?.name || `Rider #${rid}`}
|
||||
</span>
|
||||
{(rider?.battery != null || rider?.batterystatus != null) && (
|
||||
<span className="text-[10px] text-emerald-700 bg-emerald-100/80 px-1 py-0.2 rounded font-medium">
|
||||
🔋 {rider?.battery || rider?.batterystatus}%
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{(rider?.phone || o.riderphone || o.deliverycontactno) && (
|
||||
<a
|
||||
href={`https://api.whatsapp.com/send?phone=${String(rider?.phone || o.riderphone || o.deliverycontactno).replace(/[^0-9]/g, '')}&text=${encodeURIComponent(`Hi ${o.rider_name || 'Rider'}, regarding Order #${o.orderid} to ${o.deliverycustomer || 'Customer'}`)}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
className="text-[10px] font-semibold text-emerald-700 hover:text-emerald-800 bg-emerald-50 hover:bg-emerald-100 px-1.5 py-0.5 rounded transition-colors flex items-center gap-1 shrink-0 ml-1"
|
||||
title="Chat with rider on WhatsApp"
|
||||
>
|
||||
💬 WhatsApp
|
||||
</a>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Stats Chips */}
|
||||
<div className="zone-order-stats">
|
||||
<div className="zone-order-stats mt-1.5">
|
||||
<span className="zone-order-chip" title="Distance">
|
||||
<Ico>
|
||||
<MdStraighten />
|
||||
|
||||
Reference in New Issue
Block a user