some
This commit is contained in:
parent
27bac2ef1b
commit
37410dff97
@ -28,6 +28,7 @@ function AccountsTab({
|
|||||||
moveAccountToTask
|
moveAccountToTask
|
||||||
}) {
|
}) {
|
||||||
const [membershipModal, setMembershipModal] = useState(null);
|
const [membershipModal, setMembershipModal] = useState(null);
|
||||||
|
const [usageModal, setUsageModal] = useState(null);
|
||||||
|
|
||||||
const openMembershipModal = (title, lines) => {
|
const openMembershipModal = (title, lines) => {
|
||||||
setMembershipModal({ title, lines });
|
setMembershipModal({ title, lines });
|
||||||
@ -36,6 +37,9 @@ function AccountsTab({
|
|||||||
const closeMembershipModal = () => {
|
const closeMembershipModal = () => {
|
||||||
setMembershipModal(null);
|
setMembershipModal(null);
|
||||||
};
|
};
|
||||||
|
const closeUsageModal = () => {
|
||||||
|
setUsageModal(null);
|
||||||
|
};
|
||||||
|
|
||||||
const buildAccountLabel = (account) => `${account.username ? `@${account.username}` : "—"} (${account.user_id || "—"})`;
|
const buildAccountLabel = (account) => `${account.username ? `@${account.username}` : "—"} (${account.user_id || "—"})`;
|
||||||
|
|
||||||
@ -337,7 +341,29 @@ function AccountsTab({
|
|||||||
<div>
|
<div>
|
||||||
<div className="account-phone">{formatAccountLabel(account)}</div>
|
<div className="account-phone">{formatAccountLabel(account)}</div>
|
||||||
<div className={`status ${account.status}`}>{formatAccountStatus(account.status)}</div>
|
<div className={`status ${account.status}`}>{formatAccountStatus(account.status)}</div>
|
||||||
<div className="account-status-pill busy">Занят</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>
|
</div>
|
||||||
<div className="role-badges">
|
<div className="role-badges">
|
||||||
@ -428,6 +454,25 @@ function AccountsTab({
|
|||||||
</div>
|
</div>
|
||||||
</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>
|
</section>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user