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

376 lines
7.6 KiB
JavaScript

export default function useTabProps(
taskSettings,
accountsTab,
proxiesTab,
logsTab,
queueTab,
apiTraceTab,
eventsTab,
settingsTab
) {
const {
selectedTaskName,
taskForm,
setTaskForm,
activePreset,
setActivePreset,
applyTaskPreset,
formatAccountLabel,
accountById,
competitorText,
setCompetitorText,
roleMode,
applyRoleMode,
normalizeIntervals,
taskStatus,
perAccountInviteSum,
hasSelectedTask,
inviteAccessStatus,
inviteAccessCheckedAt,
confirmAccessStatus,
confirmAccessCheckedAt,
formatTimestamp,
checkInviteAccess,
checkConfirmAccess,
accounts,
showNotification,
copyToClipboard,
sanitizeTaskForm,
hasPerAccountInviteLimits,
fileImportResult,
importInviteFile,
fileImportForm,
setFileImportForm,
criticalErrorAccounts
} = taskSettings;
const {
accountStatsMap,
settings,
proxies,
membershipStatus,
assignedAccountMap,
accountBuckets,
filterFreeAccounts,
selectedAccountIds,
taskAccountRoles,
rolesMode,
setRolesMode,
separateConfirmRoles,
inviteAdminMasterId,
refreshMembership,
refreshIdentity,
formatAccountStatus,
resetCooldown,
deleteAccount,
updateAccountRole,
updateAccountInviteLimit,
setInviteLimitForAllInviters,
setAccountRolesAll,
applyRolePreset,
computeAdminConfirmConfigRisk,
fixAdminConfirmConfigRisk,
computeConfirmAccessRisk,
fixConfirmAccessRisk,
computeWatcherInviteRisk,
fixWatcherInviteRisk,
removeAccountFromTask,
moveAccountToTask,
setAccountProxy,
setAccountsProxyBulk,
setAccountsProxyMap,
saveProxy,
testProxy,
removeProxy,
reloadProxies
} = accountsTab;
const {
logsTab: logsTabName,
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,
confirmStats,
clearConfirmQueue,
auditSearch,
setAuditSearch,
auditPage,
setAuditPage,
auditPageCount,
pagedAudit,
explainInviteError,
expandedInviteId,
setExpandedInviteId,
inviteStats,
invites,
selectedTask,
accessStatus,
roleSummary,
mutualContactDiagnostics
} = logsTab;
const {
selectedTaskId,
refreshQueue,
queueStats,
queueSearch,
setQueueSearch,
queuePage,
setQueuePage,
queuePageCount,
pagedQueue
} = queueTab;
const {
hasSelectedTask: hasSelectedTaskForApiTrace,
selectedTaskName: selectedTaskNameForApiTrace,
apiTraceLogs,
clearApiTrace,
exportApiTraceJson,
exportApiTraceCsv
} = apiTraceTab;
const {
accountEvents,
onClearEvents
} = eventsTab;
const {
onSettingsChange,
saveSettings
} = settingsTab;
const taskSettingsProps = {
selectedTaskName,
taskForm,
setTaskForm,
activePreset,
setActivePreset,
applyTaskPreset,
formatAccountLabel,
accountById,
competitorText,
setCompetitorText,
roleMode,
applyRoleMode,
normalizeIntervals,
taskStatus,
perAccountInviteSum,
hasSelectedTask,
inviteAccessStatus,
inviteAccessCheckedAt,
confirmAccessStatus,
confirmAccessCheckedAt,
formatTimestamp,
checkInviteAccess,
checkConfirmAccess,
accounts,
showNotification,
copyToClipboard,
sanitizeTaskForm,
hasPerAccountInviteLimits,
fileImportResult,
importInviteFile,
fileImportForm,
setFileImportForm,
criticalErrorAccounts
};
const accountsTabProps = {
accounts,
accountStatsMap,
settings,
proxies,
membershipStatus,
assignedAccountMap,
accountBuckets,
filterFreeAccounts,
selectedAccountIds,
taskAccountRoles,
rolesMode,
setRolesMode,
separateConfirmRoles,
hasSelectedTask,
inviteAccessStatus,
inviteAccessCheckedAt,
inviteAdminMasterId,
refreshMembership,
refreshIdentity,
formatAccountStatus,
formatAccountLabel,
resetCooldown,
deleteAccount,
updateAccountRole,
updateAccountInviteLimit,
setInviteLimitForAllInviters,
setAccountRolesAll,
applyRolePreset,
computeAdminConfirmConfigRisk,
fixAdminConfirmConfigRisk,
computeConfirmAccessRisk,
fixConfirmAccessRisk,
computeWatcherInviteRisk,
fixWatcherInviteRisk,
removeAccountFromTask,
moveAccountToTask,
setAccountProxy,
setAccountsProxyBulk,
setAccountsProxyMap,
saveProxy,
testProxy,
removeProxy,
reloadProxies
};
const logsTabProps = {
logsTab: logsTabName,
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,
confirmStats,
clearConfirmQueue,
auditSearch,
setAuditSearch,
auditPage,
setAuditPage,
auditPageCount,
pagedAudit,
formatTimestamp,
explainInviteError,
expandedInviteId,
setExpandedInviteId,
inviteStats,
invites,
selectedTask,
taskAccountRoles,
accessStatus,
inviteAccessStatus,
selectedTaskName,
roleSummary,
mutualContactDiagnostics,
accountById,
formatAccountLabel
};
const proxiesTabProps = {
proxies: proxiesTab.proxies || [],
accounts: proxiesTab.accounts || [],
selectedAccountIds: proxiesTab.selectedAccountIds || [],
saveProxy: proxiesTab.saveProxy,
testProxy: proxiesTab.testProxy,
removeProxy: proxiesTab.removeProxy,
reloadProxies: proxiesTab.reloadProxies,
setAccountsProxyBulk: proxiesTab.setAccountsProxyBulk,
setAccountsProxyMap: proxiesTab.setAccountsProxyMap
};
const queueTabProps = {
hasSelectedTask,
selectedTaskId,
refreshQueue,
queueStats,
queueSearch,
setQueueSearch,
queuePage,
setQueuePage,
queuePageCount,
pagedQueue,
accountById,
formatAccountLabel,
formatTimestamp
};
const eventsTabProps = {
accountEvents,
formatTimestamp,
onClearEvents,
accountById,
formatAccountLabel
};
const apiTraceTabProps = {
hasSelectedTask: hasSelectedTaskForApiTrace,
selectedTaskName: selectedTaskNameForApiTrace,
apiTraceLogs,
formatTimestamp,
clearApiTrace,
exportApiTraceJson,
exportApiTraceCsv
};
const settingsTabProps = {
settings,
onSettingsChange,
saveSettings
};
return {
taskSettingsProps,
accountsTabProps,
proxiesTabProps,
logsTabProps,
queueTabProps,
apiTraceTabProps,
eventsTabProps,
settingsTabProps
};
}