eightshift-docs icon indicating copy to clipboard operation
eightshift-docs copied to clipboard

Add With Select details

Open iruzevic opened this issue 5 years ago • 1 comments
trafficstars

Explain how to use withSelect

import { withSelect } from '@wordpress/data';

const ImageInfiniteEditorWithSelect = (props) => {
  const {
    attributes: {
      blockClass,
      media,
    },
  } = props;

  return (
    <div className={blockClass}>
      {
        media.map((item) => {
          return (<ImageEditor
            blockClass={blockClass}
            url={item}
          />)
        })
      }
    </div>
  );
};


export const ImageInfiniteEditor = withSelect( (select, props) => {
  const {
    attributes: {
      media,
    },
  } = props;

  const images = media.map((item) => {
    const image = wp.data.select('core').getMedia(item);

    if (typeof image !== 'undefined') {
      return image.source_url;
    }
  });

  return {
    attributes: {
      media: images,
    },
  }

})(ImageInfiniteEditorWithSelect);

iruzevic avatar Dec 12 '19 08:12 iruzevic

I'd add this to es docs plus a separate how-to article.

dingo-d avatar Apr 16 '21 15:04 dingo-d