// @flow
import React from 'react';
import Button from 'component/button';
import * as ICONS from 'constants/icons';
import { formatLbryUrlForWeb } from 'util/url';
import { withRouter } from 'react-router';
import { URL, SITE_NAME } from 'config';
import Logo from 'component/logo';

type Props = {
  uri: string,
  isAuthenticated: boolean,
  preferEmbed: boolean,
};

function FileViewerEmbeddedEnded(props: Props) {
  const { uri, isAuthenticated, preferEmbed } = props;

  const prompts = isAuthenticated
    ? {
        discuss_auth: `Continue the discussion on ${SITE_NAME}`,
        tip_auth: 'Always tip your creators',
      }
    : {
        bigtech_unauth: 'Together, we can take back control from big tech',
        discuss_unauth: `Continue the discussion on ${SITE_NAME}`,
        find_unauth: `Find more great content on ${SITE_NAME}`,
        a_b_unauth: "We test a lot of messages here. Wouldn't it be funny if the one telling you that did the best?",
        earn_unauth: `Join ${SITE_NAME} and earn to watch.`,
        blockchain_unauth: "Now if anyone asks, you can say you've used a blockchain.",
      };

  const promptKeys = Object.keys(prompts);
  const promptKey = promptKeys[Math.floor(Math.random() * promptKeys.length)];
  // $FlowFixMe
  const prompt = prompts[promptKey];
  const lbrytvLink = `${URL}${formatLbryUrlForWeb(uri)}?src=${promptKey}`;
  const showReplay = Boolean(window.player);

  return (
    <div className="file-viewer__overlay">
      <div className="file-viewer__overlay-secondary">
        <Button className="file-viewer__overlay-logo" href={URL} disabled={preferEmbed}>
          <Logo type={'embed'} />
        </Button>
      </div>

      <div className="file-viewer__overlay-title file-viewer_embed-ended-title">
        <p>{prompt}</p>
      </div>
      <div className="file-viewer__overlay-actions">
        <>
          {showReplay && (
            <Button
              title={__('Replay')}
              button="link"
              label={preferEmbed ? __('Replay') : undefined}
              iconRight={ICONS.REPLAY}
              onClick={() => {
                if (window.player) window.player.play();
              }}
            />
          )}
          {!preferEmbed && (
            <>
              <Button label={__('Discuss')} iconRight={ICONS.EXTERNAL} button="primary" href={lbrytvLink} />
              {!isAuthenticated && (
                <Button
                  label={__('Join %SITE_NAME%', { SITE_NAME })}
                  button="secondary"
                  href={`${URL}/$/signup?src=embed_signup`}
                />
              )}
            </>
          )}
        </>
      </div>
    </div>
  );
}

export default withRouter(FileViewerEmbeddedEnded);