// #region [Imports] =================================================================================================== // Libraries import { useState } from 'react'; import { Card, Button, Row, Col, Divider, Tag, message } from 'antd'; import { PlusOutlined } from '@ant-design/icons'; // Components import IconText from './IconText'; import PluginInstallerButton from '../PluginInstallerButton'; // SCSS import './index.scss'; // Helpers import { sanitizeHtml } from '../../../shared/helpers/sanitize'; // #endregion [Imports] // #region [Variables] ================================================================================================= declare var ajaxurl: string; declare var jQuery: any; declare var acfwAdminApp: any; // #endregion [Variables] // #region [Interfaces]================================================================================================= interface ITriggerAction { type: string; desc: string; is_pro: boolean; } interface ISampleAutomation { title: string; requires: string[]; } // #endregion [Interfaces] // #region [Component] ================================================================================================= const StoreCreditAutomations = () => { const { logo, main_content, action_text, action_url, is_plugin_active, nonce, labels, triggers_actions, sample_automations, } = acfwAdminApp.uncanny_automator; const [isPluginActive, setIsPluginActive] = useState(!!is_plugin_active); return (

{isPluginActive ? ( ) : ( setIsPluginActive(true)} /> )}

{triggers_actions.map((ta: ITriggerAction, key: number) => ( {ta.type} {ta.is_pro && {labels.pro}} {ta.desc} ))}

{labels.sample_automations}

{sample_automations.map((sa: ISampleAutomation, key: number) => (

{sa.title}

{labels.requires}

    {sa.requires.map((r: string, key: number) => (
  • ))}
))}
); }; export default StoreCreditAutomations; // #endregion [Component]