import {useState} from 'react';
import {MapPin, MessageCircle, Phone} from 'lucide-react';
import {PlaceCategory} from '@o2o/shared';
import {useSite} from '@site/lib/site-context';
import {bookingActionLabel, bookingLinks, channelLabel, stayBookingView} from '@site/lib/derive';
import {Modal} from '@site/lib/ui';
import {StayBookingDemo} from './StayBookingDemo';
/**
* 좁은 화면 하단 고정 바.
*
* ★ 예전에는 '홈 · 객실 · 주변 · 위치' 탭이었다. 그런데 이 사이트는 한 장짜리라
* 탭이 하는 일은 앵커 이동뿐이고, 그건 상단 메뉴가 이미 한다 — 같은 일을 두 번 하면서
* **가장 많이 눌리는 것(전화·예약)이 갈 자리를 먹고 있었다.**
* 국내 숙박·공간 사이트가 하단에 고정으로 두는 건 예외 없이 연락·예약이다.
* ★ 근거 없는 버튼은 안 만든다. 전화번호가 없으면 전화 칸이 없고, 확정 채널이 없으면
* 예약 칸이 없다. 하나도 없으면 바 자체를 그리지 않는다 — 빈 띠가 화면만 먹는다.
* ★ 아이폰 홈 인디케이터를 피한다(.safe-b).
*/
export function MobileTabBar() {
const payload = useSite();
const phone = payload.place.phone;
const links = bookingLinks(payload);
const booking = links[0];
const kakao = payload.links.find((link) => link.confirmed && /kakao/i.test(link.url));
const stayBooking = payload.place.category === PlaceCategory.LODGING ? stayBookingView(payload) : null;
const [bookingOpen, setBookingOpen] = useState(false);
if (!phone && !booking && !kakao) return null;
return (
<>
{stayBooking && (
setBookingOpen(false)} label="예약 요청" title="예약 요청" wide>
)}
>
);
}