import React, { useState, useCallback } from 'react';
import {
  MotionScreen, MotionScene, SharedElement, useMotion,
} from 'react-motion-layout';
import { FiArrowLeft, FiPlay } from 'react-icons/fi';

export default function HomeDemo() {
  const [animated, setAnimated] = useState(false);
  const [blocked, setBlocked] = useState(false);
  const withTransition = useMotion('story-0');

  const animate = useCallback(() => {
    if (blocked) {
      return;
    }

    setBlocked(true);
    withTransition(() => {
      setAnimated(!animated);
      setBlocked(false);
    })();
  },
  [withTransition, animated, blocked]);

  return (
    <>
      <div className="xl:mr-14 w-4/4 mr-0 rounded bg-white lg:rounded-lg p-10 pt-8 lg:shadow-xl demo-box">
        { !animated
          && (
          <MotionScreen name="Feed-Screen">
            <MotionScene name="story-0" easing="cubic-bezier(0.22, 1, 0.36, 1)">
              <div className="flex flex-col cursor-default">
                <div className="flex">
                  <SharedElement.Image
                    animationKey="avatar"
                    className="w-16 h-16 rounded-full object-cover"
                    src="https://images.unsplash.com/photo-1500917293891-ef795e70e1f6?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=200&q=80"
                  />
                  <div className="flex flex-col ml-4 mt-2">
                    <SharedElement.Text animationKey="name" className="font-bold text-lg leading-tight text-pink-400">
                      Patricia
                    </SharedElement.Text>
                    <div className="font-normal text-sm text-gray-500">
                      a minute ago
                    </div>
                  </div>
                </div>
                <div className="mt-4">
                  <SharedElement.Text animationKey="body" className="font-normal text-gray-500 max-w-xs">
                    Hey guys, as I promised here is my collection of vintage pictures. I hope you like it.
                  </SharedElement.Text>
                  <div className="flex my-8">

                    <img
                      className="h-40 rounded-lg object-cover"
                      src="https://images.unsplash.com/photo-1502120492606-fba13cc63721?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=300&q=50"
                    />
                    <div className="ml-2">
                      <SharedElement.Image
                        animationKey="big-image"
                        className="h-40 rounded-lg object-cover"
                        src="https://images.unsplash.com/photo-1527786356703-4b100091cd2c?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=80"
                      />
                    </div>
                    <img
                      className="h-40 rounded-lg object-cover ml-2"
                      src="https://images.unsplash.com/photo-1516962126636-27ad087061cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=300&q=50"
                    />

                  </div>

                  <div className="mt-4 flex items-center">
                    <img
                      className="w-10 h-10 rounded-full object-cover border-white border-2 border-solid z-20"
                      src="https://images.unsplash.com/photo-1523598455533-144bae6cf56e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=40"
                    />

                    <img
                      className="w-10 h-10 rounded-full object-cover border-white border-2 -ml-4 border-solid z-10"
                      src="https://images.unsplash.com/photo-1532910404247-7ee9488d7292?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=40"
                    />

                    <img
                      className="w-10 h-10 rounded-full object-cover border-white border-2 -ml-4 border-solid"
                      src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=40"
                    />

                    <div className="text-bold font-bold pl-2 text-pink-300">+1801</div>
                  </div>
                </div>
              </div>
            </MotionScene>
          </MotionScreen>
          )}
        { animated
        && (
          <MotionScreen name="Story-Screen">
            <MotionScene name="story-0" easing="cubic-bezier(0.22, 1, 0.36, 1)">
              <div className="flex">
                <div className="flex flex-col items-center flex-shrink-0">
                  <SharedElement.Image
                    animationKey="avatar"
                    className="w-10 h-10 rounded-full object-cover"
                    src="https://images.unsplash.com/photo-1500917293891-ef795e70e1f6?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=200&q=80"
                  />
                </div>
                <div className="ml-4">
                  <div className="mb-4">
                    <div className="flex flex-col">
                      <SharedElement.Text animationKey="name" className="font-bold text-base leading-tight text-pink-400">
                        Patricia
                      </SharedElement.Text>
                    </div>
                    <div className="mt-2">
                      <SharedElement.Text animationKey="body" className="font-normal text-gray-500 max-w-sm">
                        Hey guys, as I promised here is my collection of vintage pictures. I hope you like it.
                      </SharedElement.Text>
                    </div>
                  </div>
                  <SharedElement.Image
                    animationKey="big-image"
                    className="h-64 rounded-lg object-cover"
                    src="https://images.unsplash.com/photo-1527786356703-4b100091cd2c?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=80"
                  />

                  <div className="mt-4 flex items-center">
                    <img
                      className="opacity-75 w-8 h-8 rounded-full object-cover border-white border-2 border-solid z-20"
                      src="https://images.unsplash.com/photo-1535207010348-71e47296838a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=40"
                    />

                    <img
                      className="opacity-75  w-8 h-8 rounded-full object-cover border-white border-2 -ml-4 border-solid z-10"
                      src="https://images.unsplash.com/photo-1520409364224-63400afe26e5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=40"
                    />

                    <img
                      className="opacity-75  w-8 h-8 rounded-full object-cover border-white border-2 -ml-4 border-solid"
                      src="https://images.unsplash.com/photo-1510678960173-b52e15cbcfb4?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=40"
                    />

                  </div>
                </div>
              </div>
            </MotionScene>
          </MotionScreen>
        )}
      </div>
      <div className="mt-4 inline-block mb-8 ml-4 lg:ml-0">
        <div onClick={animate} className="p-4 bg-white rounded-md flex items-center shadow-md text-gray-600 cursor-pointer">
          {animated ? <FiArrowLeft /> : <FiPlay />}
          <div className="ml-4 font-medium ">
            {animated ? 'Go back' : 'Run animation'}
          </div>
        </div>
      </div>
    </>
  );
}