telegram-invite-automation/src/renderer/hooks/useAppDataState.js
2026-03-03 15:06:31 +04:00

154 lines
4.7 KiB
JavaScript

import { useRef, useState } from "react";
import { emptySettings, emptyTaskForm } from "../appDefaults.js";
export default function useAppDataState() {
const [settings, setSettings] = useState(emptySettings);
const [accounts, setAccounts] = useState([]);
const [proxies, setProxies] = useState([]);
const [accountStats, setAccountStats] = useState([]);
const [accountAssignments, setAccountAssignments] = useState([]);
const [globalStatus, setGlobalStatus] = useState({ connectedSessions: 0, totalAccounts: 0 });
const [logs, setLogs] = useState([]);
const [invites, setInvites] = useState([]);
const [fallbackList, setFallbackList] = useState([]);
const [confirmQueue, setConfirmQueue] = useState([]);
const [tasks, setTasks] = useState([]);
const [selectedTaskId, setSelectedTaskId] = useState(null);
const [taskForm, setTaskForm] = useState(emptyTaskForm);
const [competitorText, setCompetitorText] = useState("");
const [selectedAccountIds, setSelectedAccountIds] = useState([]);
const [taskAccountRoles, setTaskAccountRoles] = useState({});
const [activePreset, setActivePreset] = useState("");
const presetSignatureRef = useRef("");
const [taskStatus, setTaskStatus] = useState({
running: false,
queueCount: 0,
dailyRemaining: 0,
dailyUsed: 0,
dailyLimit: 0,
cycleCompetitors: false,
competitorCursor: 0,
monitorInfo: { monitoring: false, accountId: 0, accountIds: [], groups: [], lastMessageAt: "", lastSource: "" },
nextRunAt: "",
nextInviteAccountId: 0,
lastInviteAccountId: 0,
pendingStats: { total: 0, withUsername: 0, withAccessHash: 0, withoutData: 0 },
warnings: [],
lastStopReason: "",
lastStopAt: ""
});
const [taskStatusMap, setTaskStatusMap] = useState({});
const [membershipStatus, setMembershipStatus] = useState({});
const [groupVisibility, setGroupVisibility] = useState([]);
const [accessStatus, setAccessStatus] = useState([]);
const [inviteAccessStatus, setInviteAccessStatus] = useState([]);
const [inviteAccessCheckedAt, setInviteAccessCheckedAt] = useState("");
const [confirmAccessStatus, setConfirmAccessStatus] = useState([]);
const [confirmAccessCheckedAt, setConfirmAccessCheckedAt] = useState("");
const [accountEvents, setAccountEvents] = useState([]);
const [apiTraceLogs, setApiTraceLogs] = useState([]);
const [taskAudit, setTaskAudit] = useState([]);
const [testRun, setTestRun] = useState({
status: "idle",
mode: "safe",
steps: [],
startedAt: "",
finishedAt: "",
summary: ""
});
const [queueItems, setQueueItems] = useState([]);
const [queueStats, setQueueStats] = useState({ total: 0, withUsername: 0, withAccessHash: 0, withoutData: 0 });
const [fileImportForm, setFileImportForm] = useState({
onlyIds: false,
sourceChat: ""
});
const [fileImportResult, setFileImportResult] = useState(null);
const [taskActionLoading, setTaskActionLoading] = useState(false);
const [taskNotice, setTaskNotice] = useState(null);
const [autosaveNote, setAutosaveNote] = useState("");
const [settingsNotice, setSettingsNotice] = useState(null);
const [tdataNotice, setTdataNotice] = useState(null);
return {
settings,
setSettings,
accounts,
setAccounts,
proxies,
setProxies,
accountStats,
setAccountStats,
accountAssignments,
setAccountAssignments,
globalStatus,
setGlobalStatus,
logs,
setLogs,
invites,
setInvites,
fallbackList,
setFallbackList,
confirmQueue,
setConfirmQueue,
tasks,
setTasks,
selectedTaskId,
setSelectedTaskId,
taskForm,
setTaskForm,
competitorText,
setCompetitorText,
selectedAccountIds,
setSelectedAccountIds,
taskAccountRoles,
setTaskAccountRoles,
activePreset,
setActivePreset,
presetSignatureRef,
taskStatus,
setTaskStatus,
taskStatusMap,
setTaskStatusMap,
membershipStatus,
setMembershipStatus,
groupVisibility,
setGroupVisibility,
accessStatus,
setAccessStatus,
inviteAccessStatus,
setInviteAccessStatus,
inviteAccessCheckedAt,
setInviteAccessCheckedAt,
confirmAccessStatus,
setConfirmAccessStatus,
confirmAccessCheckedAt,
setConfirmAccessCheckedAt,
accountEvents,
setAccountEvents,
apiTraceLogs,
setApiTraceLogs,
taskAudit,
setTaskAudit,
testRun,
setTestRun,
queueItems,
setQueueItems,
queueStats,
setQueueStats,
fileImportForm,
setFileImportForm,
fileImportResult,
setFileImportResult,
taskActionLoading,
setTaskActionLoading,
taskNotice,
setTaskNotice,
autosaveNote,
setAutosaveNote,
settingsNotice,
setSettingsNotice,
tdataNotice,
setTdataNotice
};
}