Fix/book 115 hidden focus indicators * added focus ring to "how it works" text and close button in modal * fix(BOOK-115): added focus ring to Hotel Sidepeek close button * fix(BOOK-115): enabled selecting ancillaries with keyboard nav * fix(BOOK-115): added focus indicator to "View and print receipt" in Manage Stay * fix(BOOK-105 & BOOK-115): combined the two radio groups in payment selection to one, fixes focus indicator issue * fix(BOOK-115): added focus indicator to shortcut links * fix(BOOK-115): updated ancillaries keyboard selection * fix(BOOK-115): removed tabIndex from Link component * fix(BOOK-115): fixed single payment radio button not focusable * fix(BOOK-115): updated to onKeyDown * added id to "credit card" * removed toUpperCase() on lables * removed brackets * moved the focus indicator to the DS Button component * removed !important from ButtonLink css * changed <label> to <fieldset> and <legend> and added aria-label to PaymentOptionGroup * removed css class from sidepeek that was previously removed * reverted changes and synced Guarantee radiogroup with Payment radiogroup to use same semantics * removed duplicate label * removed old sub heading Approved-by: Erik Tiekstra
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { useAddAncillaryStore } from "@/stores/my-stay/add-ancillary-flow"
|
|
|
|
import { AncillaryCard } from "@/components/TempDesignSystem/AncillaryCard"
|
|
import { trackViewAncillary } from "@/utils/tracking/myStay"
|
|
|
|
import type { SelectedAncillary } from "@/types/components/myPages/myStay/ancillaries"
|
|
|
|
interface WrappedAncillaryProps {
|
|
ancillary: SelectedAncillary
|
|
}
|
|
|
|
export default function WrappedAncillaryCard({
|
|
ancillary,
|
|
}: WrappedAncillaryProps) {
|
|
const { description, ...ancillaryWithoutDescription } = ancillary
|
|
const { selectAncillary, booking } = useAddAncillaryStore((state) => ({
|
|
selectAncillary: state.selectAncillary,
|
|
booking: state.booking,
|
|
}))
|
|
|
|
return (
|
|
<div
|
|
tabIndex={0}
|
|
role="button"
|
|
onClick={() => {
|
|
selectAncillary(ancillary)
|
|
trackViewAncillary(ancillary, booking)
|
|
}}
|
|
onKeyDown={(e) => {
|
|
if (e.key === "Enter") {
|
|
selectAncillary(ancillary)
|
|
trackViewAncillary(ancillary, booking)
|
|
}
|
|
}}
|
|
>
|
|
<AncillaryCard ancillary={ancillaryWithoutDescription} />
|
|
</div>
|
|
)
|
|
}
|