154 lines
4.7 KiB
JavaScript
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
|
|
};
|
|
}
|