286 lines
5.3 KiB
JavaScript
286 lines
5.3 KiB
JavaScript
export default function useAppTabGroups({
|
|
selectedTaskId,
|
|
refreshQueue,
|
|
selectedTaskName,
|
|
taskForm,
|
|
setTaskForm,
|
|
activePreset,
|
|
applyTaskPreset,
|
|
formatAccountLabel,
|
|
accountById,
|
|
competitorText,
|
|
setCompetitorText,
|
|
applyRoleMode,
|
|
normalizeIntervals,
|
|
taskStatus,
|
|
perAccountInviteSum,
|
|
hasSelectedTask,
|
|
inviteAccessStatus,
|
|
inviteAccessCheckedAt,
|
|
formatTimestamp,
|
|
checkInviteAccess,
|
|
accounts,
|
|
showNotification,
|
|
copyToClipboard,
|
|
sanitizeTaskForm,
|
|
hasPerAccountInviteLimits,
|
|
fileImportResult,
|
|
importInviteFile,
|
|
fileImportForm,
|
|
setFileImportForm,
|
|
criticalErrorAccounts,
|
|
accountStatsMap,
|
|
settings,
|
|
membershipStatus,
|
|
assignedAccountMap,
|
|
accountBuckets,
|
|
filterFreeAccounts,
|
|
selectedAccountIds,
|
|
taskAccountRoles,
|
|
inviteAdminMasterId,
|
|
refreshMembership,
|
|
refreshIdentity,
|
|
formatAccountStatus,
|
|
resetCooldown,
|
|
deleteAccount,
|
|
updateAccountRole,
|
|
updateAccountInviteLimit,
|
|
setAccountRolesAll,
|
|
applyRolePreset,
|
|
removeAccountFromTask,
|
|
moveAccountToTask,
|
|
logsTab,
|
|
setLogsTab,
|
|
exportLogs,
|
|
clearLogs,
|
|
exportInvites,
|
|
exportProblemInvites,
|
|
exportFallback,
|
|
updateFallbackStatus,
|
|
clearFallback,
|
|
clearInvites,
|
|
logSearch,
|
|
setLogSearch,
|
|
logPage,
|
|
setLogPage,
|
|
logPageCount,
|
|
pagedLogs,
|
|
inviteSearch,
|
|
setInviteSearch,
|
|
invitePage,
|
|
setInvitePage,
|
|
invitePageCount,
|
|
inviteFilter,
|
|
setInviteFilter,
|
|
pagedInvites,
|
|
fallbackSearch,
|
|
setFallbackSearch,
|
|
fallbackPage,
|
|
setFallbackPage,
|
|
fallbackPageCount,
|
|
pagedFallback,
|
|
confirmQueue,
|
|
confirmSearch,
|
|
setConfirmSearch,
|
|
confirmPage,
|
|
setConfirmPage,
|
|
confirmPageCount,
|
|
pagedConfirmQueue,
|
|
queueItems,
|
|
queueStats,
|
|
queueSearch,
|
|
setQueueSearch,
|
|
queuePage,
|
|
setQueuePage,
|
|
queuePageCount,
|
|
pagedQueue,
|
|
clearConfirmQueue,
|
|
auditSearch,
|
|
setAuditSearch,
|
|
auditPage,
|
|
setAuditPage,
|
|
auditPageCount,
|
|
pagedAudit,
|
|
explainInviteError,
|
|
expandedInviteId,
|
|
setExpandedInviteId,
|
|
inviteStats,
|
|
invites,
|
|
selectedTask,
|
|
accessStatus,
|
|
roleSummary,
|
|
mutualContactDiagnostics,
|
|
accountEvents,
|
|
clearAccountEvents,
|
|
onSettingsChange,
|
|
saveSettings
|
|
}) {
|
|
const taskSettings = {
|
|
selectedTaskName,
|
|
taskForm,
|
|
setTaskForm,
|
|
activePreset,
|
|
applyTaskPreset,
|
|
formatAccountLabel,
|
|
accountById,
|
|
competitorText,
|
|
setCompetitorText,
|
|
roleMode: taskForm.requireSameBotInBoth ? "same" : "split",
|
|
applyRoleMode,
|
|
normalizeIntervals,
|
|
taskStatus,
|
|
perAccountInviteSum,
|
|
hasSelectedTask,
|
|
inviteAccessStatus,
|
|
inviteAccessCheckedAt,
|
|
formatTimestamp,
|
|
checkInviteAccess,
|
|
accounts,
|
|
showNotification,
|
|
copyToClipboard,
|
|
sanitizeTaskForm,
|
|
hasPerAccountInviteLimits,
|
|
fileImportResult,
|
|
importInviteFile,
|
|
fileImportForm,
|
|
setFileImportForm,
|
|
criticalErrorAccounts
|
|
};
|
|
|
|
const accountsTab = {
|
|
accounts,
|
|
accountStatsMap,
|
|
settings,
|
|
membershipStatus,
|
|
assignedAccountMap,
|
|
accountBuckets,
|
|
filterFreeAccounts,
|
|
selectedAccountIds,
|
|
taskAccountRoles,
|
|
rolesMode: taskForm.rolesMode,
|
|
setRolesMode: (mode) => {
|
|
setTaskForm((prev) => ({ ...prev, rolesMode: mode }));
|
|
if (mode === "auto") {
|
|
applyRolePreset("split");
|
|
}
|
|
},
|
|
hasSelectedTask,
|
|
inviteAdminMasterId,
|
|
refreshMembership,
|
|
refreshIdentity,
|
|
formatAccountStatus,
|
|
formatAccountLabel,
|
|
resetCooldown,
|
|
deleteAccount,
|
|
updateAccountRole,
|
|
updateAccountInviteLimit,
|
|
setAccountRolesAll,
|
|
applyRolePreset,
|
|
removeAccountFromTask,
|
|
moveAccountToTask
|
|
};
|
|
|
|
const logsTabGroup = {
|
|
logsTab,
|
|
setLogsTab,
|
|
hasSelectedTask,
|
|
exportLogs,
|
|
clearLogs,
|
|
exportInvites,
|
|
exportProblemInvites,
|
|
exportFallback,
|
|
updateFallbackStatus,
|
|
clearFallback,
|
|
clearInvites,
|
|
logSearch,
|
|
setLogSearch,
|
|
logPage,
|
|
setLogPage,
|
|
logPageCount,
|
|
pagedLogs,
|
|
inviteSearch,
|
|
setInviteSearch,
|
|
invitePage,
|
|
setInvitePage,
|
|
invitePageCount,
|
|
inviteFilter,
|
|
setInviteFilter,
|
|
pagedInvites,
|
|
fallbackSearch,
|
|
setFallbackSearch,
|
|
fallbackPage,
|
|
setFallbackPage,
|
|
fallbackPageCount,
|
|
pagedFallback,
|
|
confirmQueue,
|
|
confirmSearch,
|
|
setConfirmSearch,
|
|
confirmPage,
|
|
setConfirmPage,
|
|
confirmPageCount,
|
|
pagedConfirmQueue,
|
|
queueItems,
|
|
queueStats,
|
|
queueSearch,
|
|
setQueueSearch,
|
|
queuePage,
|
|
setQueuePage,
|
|
queuePageCount,
|
|
pagedQueue,
|
|
clearConfirmQueue,
|
|
auditSearch,
|
|
setAuditSearch,
|
|
auditPage,
|
|
setAuditPage,
|
|
auditPageCount,
|
|
pagedAudit,
|
|
explainInviteError,
|
|
expandedInviteId,
|
|
setExpandedInviteId,
|
|
inviteStats,
|
|
invites,
|
|
selectedTask,
|
|
accessStatus,
|
|
inviteAccessStatus,
|
|
selectedTaskName,
|
|
roleSummary,
|
|
mutualContactDiagnostics,
|
|
accountById,
|
|
formatAccountLabel
|
|
};
|
|
const queueTabGroup = {
|
|
selectedTaskId,
|
|
refreshQueue,
|
|
queueStats,
|
|
queueSearch,
|
|
setQueueSearch,
|
|
queuePage,
|
|
setQueuePage,
|
|
queuePageCount,
|
|
pagedQueue
|
|
};
|
|
|
|
const eventsTab = {
|
|
accountEvents,
|
|
formatTimestamp,
|
|
onClearEvents: clearAccountEvents,
|
|
accountById,
|
|
formatAccountLabel
|
|
};
|
|
|
|
const settingsTab = {
|
|
settings,
|
|
onSettingsChange,
|
|
saveSettings
|
|
};
|
|
|
|
return {
|
|
taskSettings,
|
|
accountsTab,
|
|
logsTab: logsTabGroup,
|
|
queueTab: queueTabGroup,
|
|
eventsTab,
|
|
settingsTab
|
|
};
|
|
}
|