// @flow
import { SETTINGS } from 'lbry-redux';
import React from 'react';
import { Modal } from 'modal/modal';
import Card from 'component/common/card';
import Button from 'component/button';
import { FormField } from 'component/common/form';

type Props = {
  doHideModal: () => void,
  doSetClientSetting: (string, any) => void,
};

function ModalAffirmPurchase(props: Props) {
  const { doHideModal, doSetClientSetting } = props;
  const [confirmed, setConfirmed] = React.useState(false);

  function handleConfirmAge() {
    doSetClientSetting(SETTINGS.SHOW_MATURE, true);
    doHideModal();
  }

  const title = __('Confirm Your Age');

  return (
    <Modal type="card" isOpen contentLabel={title} onAborted={doHideModal}>
      <Card
        title={title}
        actions={
          <>
            <div className="section">
              <FormField
                name="age-confirmation"
                type="checkbox"
                label={__('I confirm I am over 18 years old.')}
                helper={__('This is only for regulatory compliance and the data will not be stored.')}
                checked={confirmed}
                onChange={() => setConfirmed(!confirmed)}
              />
            </div>
            <div className="section__actions">
              <Button button="primary" label={'Confirm'} onClick={handleConfirmAge} disabled={!confirmed} />
              <Button button="link" label={__('Cancel')} onClick={doHideModal} />
            </div>
          </>
        }
      />
    </Modal>
  );
}

export default ModalAffirmPurchase;
