import { createElement, useContext } from '@wordpress/element' import { __ } from 'ct-i18n' import cls from 'classnames' import DraggableItems from './DraggableItems' import { PanelContext } from '../../../options/components/PanelLevel' const PrimaryPlacement = ({ placementName, bar, direction }) => { const placement = bar.placements.find(({ id }) => id === placementName) let placementsToRender = [placement] if (placementName !== 'middle') { const middle = bar.placements.find(({ id }) => id === 'middle') if (middle && middle.items.length > 0) { if (placementName === 'start') { const startMiddle = bar.placements.find( ({ id }) => id === 'start-middle' ) placementsToRender = [placement, startMiddle] } if (placementName === 'end') { const endMiddle = bar.placements.find( ({ id }) => id === 'end-middle' ) placementsToRender = [endMiddle, placement] } } } return (
  • {placementsToRender.map(placement => ( -1 ? 'secondary' : 'primary' }-column` } draggableId={`${bar.id}:${placement.id}`} items={placement.items} /> ))}
  • ) } const Bar = ({ bar, direction = 'horizontal' }) => { const { panelsHelpers } = useContext(PanelContext) return (
  • panelsHelpers.open(`builder_panel_${bar.id}`)}> { { 'top-row': __('Top Row', 'blocksy'), 'middle-row': __('Middle Row', 'blocksy'), 'bottom-row': __('Bottom Row', 'blocksy'), offcanvas: __('Offcanvas', 'blocksy') }[bar.id] }
  • ) } const shallowCompare = (prev, next) => { for (let key in next) { if (next[key] !== prev[key]) return false } return true } export function memo(Component, areEqual = shallowCompare) { let prevProps = {} let prevResult return nextProps => { if (prevResult !== undefined && areEqual(prevProps, nextProps)) { return prevResult } prevProps = nextProps prevResult = createElement(Component, Object.assign({}, nextProps)) return prevResult } } const PlacementsBuilder = memo(({ view, builderValueWithView }) => { return (
    {view === 'mobile' && ( )}
    ) }) export default PlacementsBuilder