feat(SW-892) Show toolTip on button hover

This commit is contained in:
Pontus Dreij
2024-11-14 14:52:30 +01:00
parent 87713d1332
commit 9ec366a500
3 changed files with 38 additions and 27 deletions

View File

@@ -98,26 +98,38 @@ export default function RoomFilter({
<FormProvider {...methods}> <FormProvider {...methods}>
<form onSubmit={handleSubmit(submitFilter)}> <form onSubmit={handleSubmit(submitFilter)}>
<div className={styles.roomsFilter}> <div className={styles.roomsFilter}>
{filterOptions.map((option) => ( {filterOptions.map((option) => {
const { code, description } = option
const isPetRoom = code === RoomPackageCodeEnum.PET_ROOM
const isAllergyRoom = code === RoomPackageCodeEnum.ALLERGY_ROOM
const isDisabled =
(isAllergyRoom && petFriendly) || (isPetRoom && allergyFriendly)
const checkboxChip = (
<CheckboxChip <CheckboxChip
name={option.code} name={code}
key={option.code} key={code}
label={intl.formatMessage({ id: option.description })} label={intl.formatMessage({ id: description })}
disabled={ disabled={isDisabled}
(option.code === RoomPackageCodeEnum.ALLERGY_ROOM && selected={getValues(code)}
petFriendly) || Icon={getIconForFeatureCode(code)}
(option.code === RoomPackageCodeEnum.PET_ROOM && hasTooltip={isPetRoom}
allergyFriendly)
}
selected={getValues(option.code)}
Icon={getIconForFeatureCode(option.code)}
tooltipText={
option.code === RoomPackageCodeEnum.PET_ROOM
? tooltipText
: undefined
}
/> />
))} )
return isPetRoom ? (
<Tooltip
key={option.code}
text={tooltipText}
position="bottom"
arrow="right"
>
{checkboxChip}
</Tooltip>
) : (
checkboxChip
)
})}
</div> </div>
</form> </form>
</FormProvider> </FormProvider>

View File

@@ -3,7 +3,6 @@ import { useFormContext } from "react-hook-form"
import { HeartIcon, InfoCircleIcon } from "@/components/Icons" import { HeartIcon, InfoCircleIcon } from "@/components/Icons"
import Caption from "@/components/TempDesignSystem/Text/Caption" import Caption from "@/components/TempDesignSystem/Text/Caption"
import { Tooltip } from "@/components/TempDesignSystem/Tooltip"
import styles from "./chip.module.css" import styles from "./chip.module.css"
@@ -20,7 +19,7 @@ export default function FilterChip({
value, value,
selected, selected,
disabled, disabled,
tooltipText, hasTooltip,
}: FilterChipProps) { }: FilterChipProps) {
const { register } = useFormContext() const { register } = useFormContext()
@@ -45,11 +44,11 @@ export default function FilterChip({
<Caption type="bold" color={color} className={styles.caption}> <Caption type="bold" color={color} className={styles.caption}>
{label} {label}
</Caption> </Caption>
{tooltipText && (
<Tooltip text={tooltipText} position="bottom" arrow="right"> {hasTooltip && (
<InfoCircleIcon color={color} height={iconHeight} width={iconWidth} /> <InfoCircleIcon color={color} height={iconHeight} width={iconWidth} />
</Tooltip>
)} )}
<input <input
aria-hidden aria-hidden
id={id || name} id={id || name}

View File

@@ -11,7 +11,7 @@ export interface FilterChipProps {
value?: string value?: string
selected?: boolean selected?: boolean
disabled?: boolean disabled?: boolean
tooltipText: string | undefined hasTooltip?: boolean
} }
export type FilterChipCheckboxProps = Omit<FilterChipProps, "type"> export type FilterChipCheckboxProps = Omit<FilterChipProps, "type">