import {useTranslation} from 'react-i18next';
import {Navigation} from '@interfaces/navigation';
import {useGetJourneyTask} from '@modules/employeeLifecycle/hooks';
import {FormSuccessConfirmation} from '@shared/dynamicForms';
import {Screens} from '@shared/constants';

export function FormTaskSuccess({
  navigation,
  route: {params},
}: Navigation<
  Screens.TASKS_FORM_TASK_SUCCESS | Screens.ONBOARDINGS_FORM_TASK_SUCCESS
>) {
  const {t} = useTranslation();
  const {task} = useGetJourneyTask(params?.taskId ?? 0);

  const onPrimaryButtonPress = () => {
    if (params?.taskId !== undefined) {
      // Onboardings navigation logic
      navigation.popTo(Screens.ONBOARDINGS_STEP_TASKS, {
        journeyId: task?.userJourneyId || 0,
        stepId: task?.stepId || 0,
      });
    } else {
      // Tasks navigation logic
      navigation.popTo(Screens.TASKS);
    }
  };

  return (
    <FormSuccessConfirmation
      title={t('employee_lifecycle.questionnaire_form_task.success_form.title')}
      description={t(
        'employee_lifecycle.questionnaire_form_task.success_form.description',
      )}
      isLoading={false}
      primaryButton={{
        text: t(
          'employee_lifecycle.questionnaire_form_task.success_form.button',
        ),
        onPress: onPrimaryButtonPress,
      }}
      withStateCard
      headerTitle={task?.actionTitle}
    />
  );
}
