fix: react-doctor modal/dialog/dropzone a11y — 18 files to role+tabIndex+onKeyDown or dialog

This commit is contained in:
Nora
2026-06-26 03:20:10 -06:00
parent e3c1295e62
commit d0bfec9d36
90 changed files with 747 additions and 408 deletions
+18 -6
View File
@@ -61,12 +61,16 @@ export default function CartClient() {
setIncompatibleItems([]);
if (hasPickupItems) {
const pickupProductIds = cart.filter((i) => i.fulfillment === "pickup").map((i) => i.id);
const pickupProductIds: string[] = [];
for (const i of cart) {
if (i.fulfillment === "pickup") pickupProductIds.push(i.id);
}
checkStopProductAvailability(stop.id, pickupProductIds)
.then((data) => {
const unavailable = (data ?? [])
.filter((row) => row.is_available === false)
.map((row) => row.product_id);
const unavailable: string[] = [];
for (const row of data ?? []) {
if (row.is_available === false) unavailable.push(row.product_id);
}
setIncompatibleItems(unavailable);
})
.catch(() => {
@@ -135,7 +139,11 @@ export default function CartClient() {
<div>
<p className="font-semibold text-white">Shed Pickup</p>
<p className="mt-1 text-sm text-zinc-400">
{cart.filter((i) => i.fulfillment === "pickup" && i.pickup_type === "shed").map((i) => i.description || i.name).join(", ")}
{cart.flatMap((i) =>
i.fulfillment === "pickup" && i.pickup_type === "shed"
? [i.description || i.name]
: []
).join(", ")}
</p>
</div>
</div>
@@ -313,7 +321,11 @@ export default function CartClient() {
Shed Pickup
</p>
<p className="mt-1.5 text-xs text-zinc-400">
{cart.filter((i) => i.fulfillment === "pickup" && i.pickup_type === "shed").map((i) => i.description || i.name).join(", ")}
{cart.flatMap((i) =>
i.fulfillment === "pickup" && i.pickup_type === "shed"
? [i.description || i.name]
: []
).join(", ")}
</p>
</div>
)}