import { useMutation, useQueryClient } from 'react-query';

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

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

import { knowledgeBaseKeys } from '../queries';
import { createKnowledgeBaseFolder } from '../services';

type Args = {
  path: string;
  isInRoot: boolean;
  name: string;
};

export const useCreateKnowledgeBaseFolder = () => {
  const { t } = useLokaliseTranslation('agents');
  const { enqueueSnackbar } = useHuSnackbar();
  const queryClient = useQueryClient();

  return useMutation({
    mutationFn: ({ path }: Args) => createKnowledgeBaseFolder(path),
    onSuccess: (_, { isInRoot, name }) => {
      queryClient.invalidateQueries(knowledgeBaseKeys.all);
      enqueueSnackbar({
        title: t(
          isInRoot
            ? 'knowledge_base.new_folder_dialog.success'
            : 'knowledge_base.new_subfolder_dialog.success',
          { name },
        ),
        variant: 'success',
      });
    },
    onError: () => {
      enqueueSnackbar({
        title: t('knowledge_base.new_folder_dialog.error'),
        variant: 'error',
      });
    },
  });
};
