nitro-v36-with-renderer-v36
/
src /
components /
navigator /
views /
search /
NavigatorSearchResultItemInfoView.tsx
NavigatorSearchResultItemInfoView.tsx 1.6 Ko
Télécharger le fichier
import { RoomDataParser } from '@octane/renderer';
import { FC, MouseEvent, useRef } from 'react';
import { LocalizeText } from '../../../../api';
import { useNavigatorRoomInfoPopupStore } from '../../../../hooks';
import { BaseButton } from '../../../../common/BaseButton';
import { NativeTextTree } from '../../../../common/native-text/NativeTextTree';
interface NavigatorSearchResultItemInfoViewProps {
roomData: RoomDataParser;
thumbnail?: boolean;
}
export const NavigatorSearchResultItemInfoView: FC<NavigatorSearchResultItemInfoViewProps> = (props) => {
const { roomData = null, thumbnail = false } = props;
const elementRef = useRef<HTMLButtonElement>(null);
const handleClick = (event: MouseEvent<HTMLButtonElement>) => {
event.preventDefault();
event.stopPropagation();
if (!elementRef.current) return;
useNavigatorRoomInfoPopupStore.getState().toggleFromInfo(roomData, elementRef.current.getBoundingClientRect());
};
const handleMouseEnter = () => {
if (!elementRef.current) return;
useNavigatorRoomInfoPopupStore.getState().retargetIfVisible(roomData, thumbnail ? 'tile' : 'info', elementRef.current.getBoundingClientRect());
};
return (
<NativeTextTree>
<BaseButton
type="button"
ref={elementRef}
className="octane-navigator-air__room-info"
aria-label={LocalizeText('navigator.room.popup.room.info')}
onClick={handleClick}
onMouseEnter={handleMouseEnter}
/>
</NativeTextTree>
);
};
