PageSourceSearch

https://smell-smile.com/wp-content/plugins/tabby-checkout/assets/blocks/tabby-installments/index.js?ver=5.13.3

js smell-smile.com collected 2026-09-24 14:01:50 UTC 2,459 bytes, 88 lines download raw bytes

1/**
2 * External dependencies
3 */
4const registerPaymentMethod = window.wc.wcBlocksRegistry.registerPaymentMethod;
5const getPaymentMethodData = window.wc.wcSettings.getPaymentMethodData;
6
7const settings = getPaymentMethodData( 'tabby_installments', {} );
8const defaultLabel = 'Pay in 4. No interest, no fees.';
9const title = settings?.title || '';
10
11
12/**
13 * Icon component
14 */
15
16const TabbyIcon = () => {
17    return React.createElement('img', {
18        src: settings?.icon_src,
19        style: {marginRight:'10px'},
20        alt: title
21    }, null);
22}
23
24const Label = () => {
25    return [window.wp.element.createElement(TabbyIcon), React.createElement('span', null, title)];
26}
27
28const InitTabbyCard = (className, classParams) => {
29    if (eval('typeof ' + className) == 'function') {
30        eval('new ' + className + '(' + classParams + ');');
31        return true;
32    }
33    return false;
34};
35
36const TabbyPromotionCard = () => {
37    React.useEffect(() => {
38        // init Tabby Promo Card
39        if (!InitTabbyCard(settings?.config?.jsClass, settings?.config?.jsConf)) {
40            let timerId = setInterval(function () {
41                if (InitTabbyCard(settings?.config?.jsClass, settings?.config?.jsConf)) {
42                    clearInterval(timerId);
43                }
44            }, 300);
45        }
46    });
47    return React.createElement('div', {id: settings?.config?.id}, '');    
48}
49
50const TabbyInstallmentsMethodName = 'tabby_installments';
51/**
52 * Content component
53 */
54const Content = () => {
55    switch (settings?.config?.class) {
56        case 'empty':
57            return null;
58        case 'tabbyDesc':
59            return React.createElement('span', null, settings?.config?.html || '');
60        default: 
61            return window.wp.element.createElement(TabbyPromotionCard);
62    }
63};
64
65/**
66 * Tabby installments payment method config object.
67 */
68
69const tabbyInstallmentsPaymentMethod = {
70    name: TabbyInstallmentsMethodName,
71    label: Object( window.wp.element.createElement ) (Label, null),
72    content: Object( window.wp.element.createElement ) (Content, null),
73    edit: Object( window.wp.element.createElement ) (Content, null),
74    canMakePayment: (props) => {
75        return true;
76    },
77    ariaLabel: title,
78    placeOrderButtonLabel: window.wp.i18n.__(
79        'Proceed to Tabby',
80        'tabby-checkout'
81    ),
82    supports: {
83        features: settings?.supports ?? []
84    }
85};
86
87registerPaymentMethod( tabbyInstallmentsPaymentMethod );
88

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.