import React, { useEffect, useState } from "react"; import "./Activities.scss"; import back from "./back.svg"; import clock from "./clock.svg"; import detail from "./detail.png"; import { post } from "../../js/helpers/data-helper"; const Activities = ({ initActivity, setInitActivity, onGo, mall: { activities, pois }, facilities, memberID, }) => { const [activity, setActivity] = useState(null); const [receiving, setReceiving] = useState(false); const poiMap = pois.reduce((acc, nxt) => ({ ...acc, [nxt.code]: nxt }), {}); const getFacByAct = (activity) => { if (!activity) return null; const poiCode = activity.poiList.find((code) => poiMap[code]); const poi = poiCode ? poiMap[poiCode] : null; if (!poi) return null; const actFacs = facilities ? facilities["活动"] : []; if (!actFacs) return null; const actFac = actFacs.find(({ title }) => title === poi.name); return actFac; }; const reject = () => { window.weui.toast("该活动即将上线,敬请期待!", { className: "toast", }); }; const receive = async (activity) => { setReceiving(true); try { const { code, msg } = await post("/api/ar/v1/applet/CouponReceive", { activityCode: activity.code, memberID, }); window.weui.toast(msg, { className: "toast", }); if (code !== 200) { activity.isAllReceived = true; } } catch (error) { console.warn(error); } finally { setReceiving(false); } }; useEffect(() => { if (initActivity) { setActivity(initActivity); setInitActivity(null); } }, [initActivity]); return (
活动
{activities && activities.map((act) => (
setActivity(act)}> 查看详情
{ const fac = getFacByAct(act); if (!fac) return reject(); return onGo && onGo(fac); }} > GO
))}
{activity && (
setActivity(null)} src={back} >
{activity.name}
{activity.beginTime.split(" ")[0]}至 {activity.endTime.split(" ")[0]}
活动介绍
{activity.intro}
{ const fac = getFacByAct(activity); if (!fac) return reject(); return onGo && onGo(fac); }} > 开始导航
{activity.defaultAwardTitle && (
{activity.defaultAwardTitle}
活动奖励
!activity.isAllReceived && !receiving && receive(activity) } className={`btn ${ activity.isAllReceived || receiving ? "disabled" : "" }`} > 领取奖励
)}
)}
); }; export default Activities;