export default function confirm()

in src/confirm-service/confirm-service.tsx [40:84]


export default function confirm({
  text,
  description,
  confirmLabel = 'OK',
  rejectLabel = 'Cancel',
  cancelIsDefault,
  onBeforeConfirm,
  buttonsHeight,
}: ConfirmServiceParams) {
  return new Promise<void>((resolve, reject) => {
    const props = {
      text,
      description,
      confirmLabel,
      rejectLabel,
      cancelIsDefault,
      buttonsHeight,
      show: true,

      onConfirm: () => {
        if (onBeforeConfirm) {
          renderConfirm({...props, inProgress: true});
          return Promise.resolve(onBeforeConfirm())
            .then(() => {
              renderConfirm({...props, show: false});
              resolve();
            })
            .catch(err => {
              renderConfirm({...props, show: false});
              reject(err);
            });
        }
        renderConfirm({...props, show: false});
        return resolve();
      },

      onReject: () => {
        renderConfirm({...props, show: false});
        reject(new Error('Confirm(@jetbrains/ring-ui): null exception'));
      },
    };

    renderConfirm(props);
  });
}