// @flow
import * as MODALS from 'constants/modal_types';
import * as ICONS from 'constants/icons';
import React from 'react';
import Button from 'component/button';
import classnames from 'classnames';
import Tooltip from 'component/common/tooltip';

type Props = {
  uri: string,
  fileAction?: boolean,
  type?: boolean,
  // redux
  streamType: Claim,
  isSaved: boolean,
  doOpenModal: (id: string, {}) => void,
};

export default function CollectionAddButton(props: Props) {
  const { uri, fileAction, type = 'playlist', isSaved, streamType, doOpenModal } = props;

  const isPlayable = streamType === 'video' || streamType === 'audio';

  return !isPlayable ? null : (
    <Tooltip title={__('Add this claim to a list')} arrow={false}>
      <Button
        button={!fileAction ? 'alt' : undefined}
        className={classnames({ 'button--file-action': fileAction })}
        icon={fileAction ? (!isSaved ? ICONS.ADD : ICONS.STACK) : ICONS.LIBRARY}
        iconSize={fileAction ? 16 : undefined}
        label={uri ? (!isSaved ? __('Save') : __('Saved')) : __('New List')}
        requiresAuth
        onClick={(e) => {
          e.preventDefault();
          e.stopPropagation();
          doOpenModal(MODALS.COLLECTION_ADD, { uri, type });
        }}
      />
    </Tooltip>
  );
}