export default function useInviteImport({
  fileImportForm,
  setFileImportForm,
  setFileImportResult,
  hasSelectedTask,
  selectedTaskId,
  showNotification,
  setInvites,
  setFallbackList,
  loadTaskStatuses
}) {
  const importInviteFile = async () => {
    if (!window.api) {
      showNotification("Electron API недоступен. Откройте приложение в Electron.", "error");
      return;
    }
    if (!hasSelectedTask) {
      showNotification("Сначала выберите задачу.", "error");
      return;
    }
    if (fileImportForm.onlyIds && !fileImportForm.sourceChat.trim()) {
      showNotification("Для файла только с ID нужен источник.", "error");
      return;
    }
    try {
      const result = await window.api.importInviteFile({
        taskId: selectedTaskId,
        onlyIds: fileImportForm.onlyIds,
        sourceChat: fileImportForm.sourceChat
      });
      if (result && result.canceled) return;
      if (!result.ok) {
        showNotification(result.error || "Ошибка импорта файла", "error");
        return;
      }
      setFileImportResult(result);
      setFileImportForm({ onlyIds: false, sourceChat: "" });
      showNotification("Файл импортирован.", "success");
      const invitesData = await window.api.listInvites(selectedTaskId);
      setInvites(invitesData);
      const fallbackData = await window.api.listFallbackInvites(selectedTaskId);
      setFallbackList(fallbackData);
      await loadTaskStatuses();
    } catch (error) {
      showNotification(error.message || String(error), "error");
    }
  };

  return { importInviteFile };
}
