File "cpt-select-box.js"
Full Path: /home/warrior1/public_html/languages/wp-content-20241001222009/plugins/elementor/app/modules/import-export/assets/js/shared/cpt-select-box/cpt-select-box.js
File size: 1.83 KB
MIME-type: text/x-java
Charset: utf-8
import React, { useContext, useState, useEffect } from 'react';
import { SharedContext } from '../../context/shared-context/shared-context-provider';
import Select2 from 'elementor-app/ui/molecules/select2';
import Text from 'elementor-app/ui/atoms/text';
import TextField from 'elementor-app/ui/atoms/text-field';
export default function CptSelectBox() {
const sharedContext = useContext( SharedContext ),
{ customPostTypes } = sharedContext.data || [],
[ selected, setSelected ] = useState( [] );
useEffect( () => {
setSelected( arrayValueIterator( customPostTypes ) );
}, [ customPostTypes ] );
useEffect( () => {
sharedContext.dispatch( { type: 'SET_SELECTED_CPT', payload: selected } );
}, [ selected ] );
const arrayValueIterator = ( array ) => {
return array.map( ( { value } ) => value );
};
const selectedCpt = ( selectedValue ) => {
setSelected( arrayValueIterator( Array.from( selectedValue ) ) );
};
return (
<>
<Text variant="sm" tag="p" className="e-app-export-kit-content__description">
{ __( 'Custom Post Type', 'elementor' ) }
</Text>
{ customPostTypes.length > 0
? <Select2
multiple
settings={ { width: '100%' } }
options={ customPostTypes }
onChange={ ( e ) => selectedCpt( e.target.selectedOptions ) }
value={ selected }
placeholder={ __( 'Click to select custom post types', 'elementor' ) }
/>
: <TextField
variant="outlined"
// eslint-disable-next-line @wordpress/i18n-ellipsis
placeholder={ __( 'No custom post types in your site...', 'elementor' ) }
className="e-app-export-kit-content__disabled"
/>
}
<Text variant="sm" tag="span" className="e-app-export-kit-content__small-notice">
{ __( 'Add the custom posts types to export. The latest 20 items from each type will be included.', 'elementor' ) }
</Text>
</>
);
}