diff --git a/components/ContentType/HotelPage/Rooms/index.tsx b/components/ContentType/HotelPage/Rooms/index.tsx index a314adf22..405b5328a 100644 --- a/components/ContentType/HotelPage/Rooms/index.tsx +++ b/components/ContentType/HotelPage/Rooms/index.tsx @@ -6,8 +6,8 @@ import { useIntl } from "react-intl" import SectionContainer from "@/components/Section/Container" import SectionHeader from "@/components/Section/Header" import Grids from "@/components/TempDesignSystem/Grids" +import ShowMoreButton from "@/components/TempDesignSystem/ShowMoreButton" -import { ShowMoreButton } from "../ShowMoreButton" import { RoomCard } from "./RoomCard" import styles from "./rooms.module.css" @@ -17,7 +17,10 @@ import type { RoomsProps } from "@/types/components/hotelPage/room" export function Rooms({ rooms }: RoomsProps) { const intl = useIntl() - const [allRoomsVisible, setAllRoomsVisible] = useState(false) + const initialPageSize = 5 + const [pageSize, setPageSize] = useState(initialPageSize) + const showMoreVisible = rooms.length > initialPageSize + const showLessVisible = pageSize >= rooms.length const scrollRef = useRef(null) const mappedRooms = rooms @@ -41,12 +44,11 @@ export function Rooms({ rooms }: RoomsProps) { }) .sort((a, b) => a.sortOrder - b.sortOrder) - function handleToggleShowMore() { - if (scrollRef.current && allRoomsVisible) { + function handleShowMore() { + if (scrollRef.current && showMoreVisible) { scrollRef.current.scrollIntoView({ behavior: "smooth" }) } - - setAllRoomsVisible((previousState) => !previousState) + setPageSize(showLessVisible ? initialPageSize : rooms.length) } return ( @@ -66,7 +68,7 @@ export function Rooms({ rooms }: RoomsProps) {
2 ? styles.hiddenRoomCard : "" + !showLessVisible && index > 2 ? styles.hiddenRoomCard : "" } > - {mappedRooms.length > 5 ? ( + {showMoreVisible ? ( ) : null} diff --git a/components/ContentType/HotelPage/ShowMoreButton/button.module.css b/components/ContentType/HotelPage/ShowMoreButton/button.module.css deleted file mode 100644 index 00e923e52..000000000 --- a/components/ContentType/HotelPage/ShowMoreButton/button.module.css +++ /dev/null @@ -1,10 +0,0 @@ -.ctaContainer { - display: flex; - justify-content: center; -} -.showMoreButton { - border: none; -} -.showMoreButton.showLess .chevron { - transform: rotate(180deg); -} diff --git a/components/ContentType/HotelPage/ShowMoreButton/index.tsx b/components/ContentType/HotelPage/ShowMoreButton/index.tsx deleted file mode 100644 index 94e3528d1..000000000 --- a/components/ContentType/HotelPage/ShowMoreButton/index.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { useIntl } from "react-intl" - -import { ChevronDownIcon } from "@/components/Icons" -import Button from "@/components/TempDesignSystem/Button" - -import styles from "./button.module.css" - -import type { ShowMoreButtonProps } from "@/types/components/hotelPage/button" - -export function ShowMoreButton({ - textShowMore, - textShowLess, - allItemsVisible, - handleToggleShowMore, -}: ShowMoreButtonProps) { - const intl = useIntl() - return ( -
- -
- ) -}