PluginProbe
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce / 3.1.0
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce v3.1.0
3.3.0 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.1 trunk 1.0.4 1.1.0 1.1.0.1 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 All 162 releases
cartflows / modules / gutenberg / src / components / responsive-image / index.js

index.js in CartFlows – Funnel Builder & Checkout Plugin for WooCommerce 3.1.0, at modules/gutenberg/src/components/responsive-image/index.js

88 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * External dependencies
3 */
4 import React from 'react';
5 import { useDeviceType } from '@Controls/getPreviewType';
6 import ResponsiveToggle from '../responsive-toggle';
7 import UAGImage from '@Components/image';
8 import { __ } from '@wordpress/i18n';
9
10 const ResponsiveUAGImage = ( props ) => {
11 const { backgroundImage, setAttributes } = props;
12
13 const responsive = true;
14
15 const deviceType = useDeviceType();
16 const device = deviceType.toLowerCase();
17
18 /*
19 * Event to set Image as while adding.
20 */
21 const onSelectImage = ( media ) => {
22
23 if ( ! media || ! media.url ) {
24 setAttributes( { [backgroundImage[device].label]: null } );
25 return;
26 }
27
28 if ( ! media.type || 'image' !== media.type ) {
29 setAttributes( { [backgroundImage[device].label]: null } );
30 return;
31 }
32
33 setAttributes( { [backgroundImage[device].label]: media } );
34 };
35
36 /*
37 * Event to set Image as null while removing.
38 */
39 const onRemoveImage = () => {
40 setAttributes( { [backgroundImage[device].label]: '' } );
41 };
42
43 const output = {};
44 output.Desktop = (
45 <UAGImage
46 onSelectImage={ onSelectImage }
47 backgroundImage={ backgroundImage.desktop.value }
48 onRemoveImage={ onRemoveImage }
49 label={false}
50 />
51 );
52 output.Tablet = (
53 <UAGImage
54 onSelectImage={ onSelectImage }
55 backgroundImage={ backgroundImage.tablet.value }
56 onRemoveImage={ onRemoveImage }
57 label={false}
58 />
59 );
60 output.Mobile = (
61 <UAGImage
62 onSelectImage={ onSelectImage }
63 backgroundImage={ backgroundImage.mobile.value }
64 onRemoveImage={ onRemoveImage }
65 label={false}
66 />
67 );
68
69 return (
70 <div className="uag-responsive-image-select components-base-control uagb-responsive-select-control">
71 <div className="uagb-size-type-field-tabs">
72 <div className="uagb-control__header">
73 <ResponsiveToggle
74 label= { __( 'Image', 'ultimate-addons-for-gutenberg' ) }
75 responsive= { responsive }
76 />
77 </div>
78 { output[ deviceType ] ? output[ deviceType ] : output.Desktop }
79 </div>
80 { props.help && (
81 <p className="uag-control-help-notice">{ props.help }</p>
82 ) }
83 </div>
84 );
85 };
86
87 export default ResponsiveUAGImage;
88