144 lines
4.2 KiB
JavaScript
144 lines
4.2 KiB
JavaScript
import React, { useState, useEffect } from "react";
|
||
import { useDispatch } from "react-redux";
|
||
import * as Config from "../../utils/Config";
|
||
import TButton, { TYPES, SIZES } from "../../components/TButton/TButton";
|
||
|
||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
||
import Spotlight from "@enact/spotlight";
|
||
|
||
import TPanel from "../../components/TPanel/TPanel";
|
||
import { getHomeTerms } from "../../api/homeApi";
|
||
import TPopUp from "../../components/TPopUp/TPopUp";
|
||
|
||
import css from "./IntroPanel.module.less";
|
||
import classNames from "classnames";
|
||
import { $L } from "../../utils/helperMethods";
|
||
import { addPanels, popPanel } from "../../features/panels/panelsSlice";
|
||
|
||
const Container = SpotlightContainerDecorator(
|
||
{ enterTo: "last-focused" },
|
||
"div"
|
||
);
|
||
|
||
export default function IntroPanel({ children, ...rest }) {
|
||
const dispatch = useDispatch();
|
||
|
||
const [showExitButton, setShowExitButton] = useState(false);
|
||
const [termsPopUpOpen, setTermsPopUpOpen] = useState(false);
|
||
const [currentTermsData, setCurrentTermsData] = useState(null);
|
||
const [currentTermsTitle, setCurrentTermsTitle] = useState(null);
|
||
|
||
const handleTermsClick = async (trmsTpCdList) => {
|
||
try {
|
||
const termsData = await getHomeTerms({ trmsTpCdList });
|
||
|
||
setCurrentTermsTitle(
|
||
trmsTpCdList === "MST00401" ? "Privacy Policy" : "Terms & Conditions"
|
||
);
|
||
setCurrentTermsData(termsData.data.terms[0]);
|
||
setTermsPopUpOpen(true);
|
||
} catch (error) {
|
||
console.error("Error Fetching terms: ", error);
|
||
}
|
||
};
|
||
|
||
const handleAgree = () => {
|
||
dispatch(popPanel(Config.panel_names.INTRO_PANEL));
|
||
};
|
||
|
||
const handleDisagree = () => {
|
||
setShowExitButton(true);
|
||
};
|
||
|
||
const confirmExit = () => {};
|
||
|
||
const cancelExit = () => {
|
||
setShowExitButton(false);
|
||
};
|
||
|
||
useEffect(() => {
|
||
Spotlight.focus("introTermsAgree");
|
||
}, []);
|
||
|
||
const description =
|
||
$L(`Check out more LIVE SHOWS and enjoy Shopping via your TV \n at Shop Time’s special prices by agreeing to the LG TV
|
||
Shopping Terms and Conditions`);
|
||
|
||
return (
|
||
<>
|
||
<TPanel className={css.panel}>
|
||
<Container {...rest} className={css.introLayout}>
|
||
<div className={css.title}>
|
||
{`Welcome to `}
|
||
<span className={css.txtPoint}>
|
||
Sh<span className={css.pointColor}>o</span>p Time !
|
||
</span>
|
||
</div>
|
||
<div className={css.description}>{description}</div>
|
||
<div className={css.termsItemsLayer}>
|
||
<TButton
|
||
onClick={() => handleTermsClick("MST00402")}
|
||
type={TYPES.terms}
|
||
>
|
||
{$L("Terms & Conditions")}
|
||
</TButton>
|
||
<TButton
|
||
onClick={() => handleTermsClick("MST00401")}
|
||
type={TYPES.terms}
|
||
>
|
||
{$L("Privacy Policy")}
|
||
</TButton>
|
||
</div>
|
||
<div className={css.bottomBtnLayer}>
|
||
<TButton
|
||
onClick={handleAgree}
|
||
spotlightId="introTermsAgree"
|
||
type={TYPES.agree}
|
||
>
|
||
{$L("Agree")}
|
||
</TButton>
|
||
<TButton onClick={handleDisagree} type={TYPES.agree}>
|
||
{$L("Do Not Agree")}
|
||
</TButton>
|
||
</div>
|
||
</Container>
|
||
</TPanel>
|
||
|
||
{/* TERMS */}
|
||
<TPopUp
|
||
kind="introTermsPopup"
|
||
open={termsPopUpOpen}
|
||
onClose={() => setTermsPopUpOpen(false)}
|
||
hasButton
|
||
button1Text="OK"
|
||
>
|
||
{currentTermsData && (
|
||
<div className={css.introTermsConts}>
|
||
<div className={css.termsTitle}>{currentTermsTitle}</div>
|
||
<div
|
||
className={css.termsDesc}
|
||
dangerouslySetInnerHTML={{
|
||
__html: currentTermsData && currentTermsData.trmsCntt,
|
||
}}
|
||
/>
|
||
</div>
|
||
)}
|
||
</TPopUp>
|
||
|
||
{/* DO NOT AGREE */}
|
||
<TPopUp
|
||
kind="textPopup"
|
||
open={showExitButton}
|
||
onExit={confirmExit}
|
||
onClose={cancelExit}
|
||
hasButton
|
||
button1Text="Exit"
|
||
button2Text="Cancel"
|
||
hasText
|
||
title="Exit Shop Time"
|
||
text="Are you sure you want to exit Shop Time?"
|
||
></TPopUp>
|
||
</>
|
||
);
|
||
}
|