feat(SW-340): Hover actions
This commit is contained in:
@@ -24,6 +24,7 @@ export default function HotelCard({
|
||||
hotel,
|
||||
type = HotelCardListingTypeEnum.PageListing,
|
||||
state = "default",
|
||||
onHotelCardHover,
|
||||
}: HotelCardProps) {
|
||||
const intl = useIntl()
|
||||
|
||||
@@ -37,8 +38,25 @@ export default function HotelCard({
|
||||
state,
|
||||
})
|
||||
|
||||
const handleMouseEnter = () => {
|
||||
console.log("handleMouseEnter", hotelData.name)
|
||||
if (onHotelCardHover) {
|
||||
console.log("onHotelCardHover", hotelData.name)
|
||||
onHotelCardHover(hotelData.name)
|
||||
}
|
||||
}
|
||||
const handleMouseLeave = () => {
|
||||
if (onHotelCardHover) {
|
||||
onHotelCardHover(null)
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<article className={classNames}>
|
||||
<article
|
||||
className={classNames}
|
||||
onMouseEnter={handleMouseEnter}
|
||||
onMouseLeave={handleMouseLeave}
|
||||
>
|
||||
<section className={styles.imageContainer}>
|
||||
{hotelData.gallery && (
|
||||
<ImageGallery
|
||||
|
||||
@@ -16,7 +16,8 @@ import {
|
||||
export default function HotelCardListing({
|
||||
hotelData,
|
||||
type = HotelCardListingTypeEnum.PageListing,
|
||||
state = "default",
|
||||
activeCard,
|
||||
onHotelCardHover,
|
||||
}: HotelCardListingProps) {
|
||||
const searchParams = useSearchParams()
|
||||
|
||||
@@ -41,7 +42,8 @@ export default function HotelCardListing({
|
||||
key={hotel.hotelData.name}
|
||||
hotel={hotel}
|
||||
type={type}
|
||||
state={state}
|
||||
state={hotel.hotelData.name === activeCard ? "active" : "default"}
|
||||
onHotelCardHover={onHotelCardHover}
|
||||
/>
|
||||
))
|
||||
) : (
|
||||
|
||||
@@ -9,14 +9,16 @@ import type { HotelListingProps } from "@/types/components/hotelReservation/sele
|
||||
|
||||
export default function HotelListing({
|
||||
hotels,
|
||||
cardState = "default",
|
||||
activeHotelPin,
|
||||
onHotelCardHover,
|
||||
}: HotelListingProps) {
|
||||
return (
|
||||
<div className={styles.hotelListing}>
|
||||
<HotelCardListing
|
||||
hotelData={hotels}
|
||||
type={HotelCardListingTypeEnum.MapListing}
|
||||
state={cardState}
|
||||
activeCard={activeHotelPin}
|
||||
onHotelCardHover={onHotelCardHover}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -94,7 +94,8 @@ export default function SelectHotelMap({
|
||||
</div>
|
||||
<HotelListing
|
||||
hotels={hotels}
|
||||
cardState={activeHotelPin ? "active" : "default"}
|
||||
activeHotelPin={activeHotelPin}
|
||||
onHotelCardHover={setActiveHotelPin}
|
||||
/>
|
||||
{showBackToTop && (
|
||||
<Button
|
||||
|
||||
Reference in New Issue
Block a user