'use client'
import HeadInfo from "~/components/HeadInfo";
import Header from "~/components/Header";
import Footer from "~/components/Footer";
import Link from "next/link";
import {useEffect, useRef, useState} from "react";
import {getCompressionImageLink, getLinkHref, getShareToPinterest, getTotalLinkHref} from "~/configs/buildLink";
import {useCommonContext} from "~/context/common-context";
import {useInterval} from "ahooks";
import PricingModal from "~/components/PricingModal";
import TopBlurred from "~/components/TopBlurred";
import {getResultStrAddSticker} from "~/configs/buildStr";
import {pinterestSvg} from "~/components/svg";
const PageComponent = ({
locale,
detailText,
workDetail,
similarList,
}) => {
const [pagePath] = useState(`sticker/${workDetail.uid}`);
const {
setShowLoadingModal,
userData,
setShowPricingModal,
setShowLoginModal,
commonText
} = useCommonContext();
const [availableTimes, setAvailableTimes] = useState({
available_times: 0,
subscribeStatus: '0'
});
const [intervalAvailableTimes, setIntervalAvailableTimes] = useState(undefined);
const getAvailableTimes = async () => {
if (!userData) {
return;
}
const userId = userData.user_id;
if (userId) {
const response = await fetch(`/api/user/getAvailableTimes?userId=${userId}`);
const availableTimes = await response.json();
setAvailableTimes(availableTimes);
if (availableTimes.available_times >= 0) {
setIntervalAvailableTimes(undefined);
}
}
}
useInterval(() => {
getAvailableTimes();
}, intervalAvailableTimes);
const downloadResult = (url, index) => {
if (process.env.NEXT_PUBLIC_CHECK_GOOGLE_LOGIN != '0') {
if (!userData) {
setShowLoginModal(true);
return;
}
if (index == 0) {
window.location.href = url;
} else {
if (process.env.NEXT_PUBLIC_CHECK_AVAILABLE_TIME != '0') {
if (availableTimes.subscribeStatus != 'active') {
setShowPricingModal(true);
} else {
window.location.href = url;
}
}
}
} else {
window.location.href = url;
}
}
const useCustomEffect = (effect, deps) => {
const isInitialMount = useRef(true);
useEffect(() => {
if (process.env.NODE_ENV === 'production' || isInitialMount.current) {
isInitialMount.current = false;
return effect();
}
}, deps);
};
useCustomEffect(() => {
setShowLoadingModal(false);
if (process.env.NEXT_PUBLIC_CHECK_GOOGLE_LOGIN != '0' && process.env.NEXT_PUBLIC_CHECK_AVAILABLE_TIME != '0') {
setIntervalAvailableTimes(1000);
}
return () => {
}
}, []);
return (
<>
{workDetail.input_text}
{workDetail.revised_text}
{getResultStrAddSticker(file.input_text, commonText.keyword)}