some
This commit is contained in:
parent
27bac2ef1b
commit
37410dff97
@ -28,6 +28,7 @@ function AccountsTab({
|
||||
moveAccountToTask
|
||||
}) {
|
||||
const [membershipModal, setMembershipModal] = useState(null);
|
||||
const [usageModal, setUsageModal] = useState(null);
|
||||
|
||||
const openMembershipModal = (title, lines) => {
|
||||
setMembershipModal({ title, lines });
|
||||
@ -36,6 +37,9 @@ function AccountsTab({
|
||||
const closeMembershipModal = () => {
|
||||
setMembershipModal(null);
|
||||
};
|
||||
const closeUsageModal = () => {
|
||||
setUsageModal(null);
|
||||
};
|
||||
|
||||
const buildAccountLabel = (account) => `${account.username ? `@${account.username}` : "—"} (${account.user_id || "—"})`;
|
||||
|
||||
@ -336,10 +340,32 @@ function AccountsTab({
|
||||
<div className="account-header">
|
||||
<div>
|
||||
<div className="account-phone">{formatAccountLabel(account)}</div>
|
||||
<div className={`status ${account.status}`}>{formatAccountStatus(account.status)}</div>
|
||||
<div className="account-status-pill busy">Занят</div>
|
||||
</div>
|
||||
<div className={`status ${account.status}`}>{formatAccountStatus(account.status)}</div>
|
||||
<div className="account-status-pill busy">
|
||||
Занят
|
||||
<button
|
||||
type="button"
|
||||
className="ghost tiny"
|
||||
onClick={() => setUsageModal({
|
||||
title: `Занятость аккаунта — ${formatAccountLabel(account)}`,
|
||||
lines: assignedTasks.length
|
||||
? assignedTasks.map((item) => {
|
||||
const name = accountBuckets.taskNameMap.get(item.taskId) || `Задача #${item.taskId}`;
|
||||
const roles = [
|
||||
item.roleMonitor ? "Мониторинг" : null,
|
||||
item.roleInvite ? "Инвайт" : null,
|
||||
item.roleConfirm ? "Подтверждение" : null
|
||||
].filter(Boolean).join(", ");
|
||||
return `${name}${roles ? ` — ${roles}` : ""}`;
|
||||
})
|
||||
: ["Не найдено активных назначений."]
|
||||
})}
|
||||
>
|
||||
Где занят
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="role-badges">
|
||||
{roles.monitor && <span className="role-pill">Мониторинг</span>}
|
||||
{roles.invite && <span className="role-pill">Инвайт</span>}
|
||||
@ -428,6 +454,25 @@ function AccountsTab({
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{usageModal && (
|
||||
<div className="modal-overlay" onClick={closeUsageModal}>
|
||||
<div className="modal" onClick={(event) => event.stopPropagation()}>
|
||||
<div className="row-header">
|
||||
<h3>{usageModal.title}</h3>
|
||||
<button className="ghost" type="button" onClick={closeUsageModal}>Закрыть</button>
|
||||
</div>
|
||||
{usageModal.lines && usageModal.lines.length > 0 ? (
|
||||
<div className="modal-list">
|
||||
{usageModal.lines.map((line) => (
|
||||
<div key={line} className="modal-list-item">{line}</div>
|
||||
))}
|
||||
</div>
|
||||
) : (
|
||||
<div className="status-text">Нет данных.</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user