// #region [Imports] ===================================================================================================
import { useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { Card, Button, Empty, List, Typography, Space, Popconfirm, Tag, Row, Col } from 'antd';
import { DeleteOutlined, EyeOutlined, CrownOutlined, ThunderboltOutlined } from '@ant-design/icons';
// Components
import AIIcon from '../../components/AIIcon';
// Types
import { IStore } from '../../types/store';
import { ISavedAITemplate } from '../../types/couponTemplates';
// Actions
import { CouponTemplatesActions } from '../../store/actions/couponTemplates';
// Helpers
import { getPathPrefix } from '../../helpers/utils';
// #endregion [Imports]
// #region [Variables] =================================================================================================
declare var acfwAdminApp: any;
const { Text, Title, Paragraph } = Typography;
const { readSavedAITemplates, deleteSavedAITemplate, loadSavedAITemplate } = CouponTemplatesActions;
// #endregion [Variables]
// #region [Interfaces]=================================================================================================
interface IActions {
readSavedAITemplates: typeof readSavedAITemplates;
deleteSavedAITemplate: typeof deleteSavedAITemplate;
loadSavedAITemplate: typeof loadSavedAITemplate;
}
interface IProps {
savedTemplates: ISavedAITemplate[];
actions: IActions;
}
// #endregion [Interfaces]
// #region [Component] =================================================================================================
const AITemplates = (props: IProps) => {
const { savedTemplates, actions } = props;
const [loading, setLoading] = useState(false);
const history = useHistory();
const pathPrefix = getPathPrefix();
const isPremiumActive = acfwAdminApp.is_acfwp_active;
const premiumLink = acfwAdminApp.coupon_templates_page.link;
const { labels } = acfwAdminApp.coupon_templates_page;
useEffect(() => {
if (isPremiumActive) {
setLoading(true);
actions.readSavedAITemplates({ successCB: () => setLoading(false), failCB: () => setLoading(false) });
}
}, [isPremiumActive, actions]);
const handleUseTemplate = (id: string) => {
actions.loadSavedAITemplate({
id,
successCB: (response) => {
// Navigate to template form
history.push(`${pathPrefix}admin.php?page=acfw-coupon-templates&id=${id}`);
},
failCB: undefined,
});
};
const handleDeleteTemplate = (id: string) => {
actions.deleteSavedAITemplate({
id,
processingCB: undefined,
successCB: undefined,
failCB: undefined,
});
};
// Premium Upsell
if (!isPremiumActive) {
return (
}>
{labels.upgrade_to_premium}