import { useModal } from '@material-hu/hooks/useModal';

import Dialog from '@material-hu/components/design-system/Dialog';

import { useLokaliseTranslation } from 'src/utils/i18n';

import { type JobOfferPublishForm } from '../../../types';

type UsePublicDescriptionUpdateModalProps = {
  onPublish: ({ values }: { values: JobOfferPublishForm }) => void;
  values: JobOfferPublishForm;
  isLoadingPublish: boolean;
};

export const usePublicDescriptionUpdateModal = ({
  onPublish,
  values,
  isLoadingPublish: isLoading,
}: UsePublicDescriptionUpdateModalProps) => {
  const { t } = useLokaliseTranslation('ats');

  const { closeModal, ...modalProps } = useModal(
    Dialog,
    {
      fullWidth: true,
    },
    {
      title: t('job_offers.alerts.job_open.title_update'),
      textBody: t('job_offers.alerts.job_open.description_update'),
      primaryButtonProps: {
        children: t('job_offers.alerts.job_open.confirm_update'),
        loading: isLoading,
        disabled: isLoading,
        onClick: () => {
          onPublish({ values });
        },
      },
      secondaryButtonProps: {
        children: t('general:cancel'),
        onClick: () => {
          closeModal();
        },
      },
    },
  );

  return {
    ...modalProps,
    closeModal,
  };
};
