/* 下部セクション: シーン別 / FAQ / 最終CTA / フッター / 年齢確認モーダル */
function byRank(r) { return window.SAKE_DATA.find((d) => d.rank === r); }
/* ---------- シーン別おすすめ(タブ) ---------- */
function SceneTabs() {
const scenes = window.SAKE_SCENES;
const [active, setActive] = React.useState(0);
const sc = scenes[active];
return (
シーン別おすすめ
贈る場面から、選ぶ。
「敬老の日に贈る」「帰省の手土産に」。
シーンを選ぶと、そのとき外さない2本がすぐ分かります。
{scenes.map((s, i) => (
))}
);
}
/* ---------- FAQ ---------- */
function FAQ() {
const [open, setOpen] = React.useState(-1);
return (
よくある質問
贈る前の、不安を解消。
{window.SAKE_FAQ.map((f, i) => {
const isOpen = open === i;
return (
);
})}
);
}
/* ---------- 最終CTA ---------- */
function FinalCTA() {
const d = byRank(6);
return (
迷ったら、この1本。
ギフト選びで迷ったら、
まずはこの1本
No.{d.rank} {d.name}
きれいさにまろやかさが加わった、均衡型の上品な一本。特別感がありながら飲み心地もやさしく、敬老の日や帰省の手土産にも選びやすいお酒です。
);
}
/* ---------- フッター ---------- */
function Footer() {
return (
);
}
/* ---------- 年齢確認モーダル ---------- */
function AgeGate() {
const [state, setState] = React.useState(() => {
try { return sessionStorage.getItem("sake_age_ok") === "1" ? "passed" : "ask"; }
catch (e) { return "ask"; }
});
if (state === "passed") return null;
function allow() {
try { sessionStorage.setItem("sake_age_ok", "1"); } catch (e) {}
setState("passed");
}
return (
酒
{state === "ask" ? (
<>
年齢確認
本サイトはお酒に関する情報を含みます。
20歳未満の飲酒・購入は法律で禁止されています。
あなたは20歳以上ですか?
>
) : (
<>
ご利用いただけません
20歳未満の方の飲酒・購入は法律で禁止されています。
20歳になられたら、またお越しください。
>
)}
);
}
Object.assign(window, { SceneTabs, FAQ, FinalCTA, Footer, AgeGate });