Merged in fix/350-ui-fixes-booking-widget (pull request #907)

Fix/350 ui fixes booking widget

Approved-by: Niclas Edenvin
This commit is contained in:
Pontus Dreij
2024-11-15 11:03:19 +00:00
6 changed files with 41 additions and 12 deletions

View File

@@ -173,7 +173,7 @@ export default function BookingWidgetClient({
>
<CloseLargeIcon />
</button>
<Form locations={locations} type={type} />
<Form locations={locations} type={type} setIsOpen={setIsOpen} />
</div>
</section>
<div className={styles.backdrop} onClick={closeMobileSearch} />

View File

@@ -123,7 +123,12 @@ export default function DatePickerForm({ name = "date" }: DatePickerFormProps) {
data-isopen={isOpen}
ref={ref}
>
<button className={styles.btn} onFocus={showOnFocus} type="button">
<button
className={styles.btn}
onFocus={showOnFocus}
onClick={() => setIsOpen(true)}
type="button"
>
<Body className={styles.body} asChild>
<span>
{selectedFromDate} - {selectedToDate}

View File

@@ -17,7 +17,11 @@ import { Location } from "@/types/trpc/routers/hotel/locations"
const formId = "booking-widget"
export default function Form({ locations, type }: BookingWidgetFormProps) {
export default function Form({
locations,
type,
setIsOpen,
}: BookingWidgetFormProps) {
const router = useRouter()
const lang = useLang()
@@ -52,7 +56,7 @@ export default function Form({ locations, type }: BookingWidgetFormProps) {
)
})
})
setIsOpen(false)
router.push(`${bookingFlowPage}?${bookingWidgetParams.toString()}`)
}

View File

@@ -1,4 +1,4 @@
import { PropsWithChildren } from "react"
import { PropsWithChildren, useState } from "react"
import Caption from "@/components/TempDesignSystem/Text/Caption"
@@ -16,8 +16,20 @@ export function Tooltip<P extends TooltipPosition>({
children,
}: PropsWithChildren<TooltipProps<P>>) {
const className = tooltipVariants({ position, arrow })
const [isActive, setIsActive] = useState(false)
function handleToggle() {
setIsActive(!isActive)
}
return (
<div className={styles.tooltipContainer} role="tooltip" aria-label={text}>
<div
className={styles.tooltipContainer}
role="tooltip"
aria-label={text}
onClick={handleToggle}
data-active={isActive}
>
<div className={className}>
{heading && (
<Caption type="bold" color="white">

View File

@@ -140,3 +140,15 @@
border-width: 7px 8px 7px 0;
border-color: transparent var(--UI-Text-Active) transparent transparent;
}
@media screen and (max-width: 768px) {
.tooltipContainer[data-active="true"] .tooltip {
visibility: visible;
opacity: 1;
}
.tooltipContainer[data-active="false"] .tooltip {
visibility: hidden;
opacity: 0;
}
}

View File

@@ -1,14 +1,10 @@
import { FormState, UseFormReturn } from "react-hook-form"
import type {
BookingWidgetSchema,
BookingWidgetType,
} from "@/types/components/bookingWidget"
import type { BookingWidgetType } from "@/types/components/bookingWidget"
import type { Location, Locations } from "@/types/trpc/routers/hotel/locations"
export interface BookingWidgetFormProps {
locations: Locations
type?: BookingWidgetType
setIsOpen: (isOpen: boolean) => void
}
export interface BookingWidgetFormContentProps {