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 }; }