// Copyright 2019-2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

import * as React from 'react';
import * as styles from './ConfirmDialog.scss';
import { useI18n } from '../util/i18n';

export type Props = {
  readonly title: string;
  readonly children: React.ReactNode;
  readonly confirm: string;
  readonly onConfirm: () => unknown;
  readonly cancel?: string;
  readonly onCancel: () => unknown;
};

export const ConfirmDialog: React.ComponentType<Props> = ({
  title,
  children,
  confirm,
  cancel,
  onConfirm,
  onCancel,
}) => {
  const i18n = useI18n();
  const cancelText = cancel || i18n('StickerCreator--ConfirmDialog--cancel');

  return (
    <div className={styles.base}>
      <h1 className={styles.title}>{title}</h1>
      <p className={styles.text}>{children}</p>
      <div className={styles.bottom}>
        <button type="button" className={styles.button} onClick={onCancel}>
          {cancelText}
        </button>
        <button
          type="button"
          className={styles.buttonPrimary}
          onClick={onConfirm}
        >
          {confirm}
        </button>
      </div>
    </div>
  );
};