Skip to content

Instantly share code, notes, and snippets.

@bobwei
Created July 14, 2017 03:10
Show Gist options
  • Save bobwei/ffc120269767f2a053183db03446b9d0 to your computer and use it in GitHub Desktop.
Save bobwei/ffc120269767f2a053183db03446b9d0 to your computer and use it in GitHub Desktop.
import React from 'react';
import compose from 'recompose/compose';
import withState from 'recompose/withState';
import withHandlers from 'recompose/withHandlers';
import flattenProp from 'recompose/flattenProp';
const Comp = ({ images, isOpen, currentImage, next, previous, toggleOpen }) =>
<Lightbox
images={images}
isOpen={isOpen}
onClickPrev={previous}
onClickNext={next}
onClose={toggleOpen}
/>;
export default compose(
withState('state', 'setState', {
isOpen: false,
currentImage: 0,
images: [
{ src: 'http://example.com/img1.jpg' },
{ src: 'http://example.com/img2.jpg' },
],
}),
withHandlers({
next: ({ setState }) => () =>
setState(state => ({
...state,
currentImage: state.currentImage + 1,
})),
previous: ({ setState }) => () =>
setState(state => ({
...state,
currentImage: state.currentImage - 1,
})),
toggleOpen: ({ setState }) => () =>
setState(state => ({
...state,
isOpen: !state.isOpen,
})),
}),
flattenProp('state'),
)(Comp);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment