Merge GitHub dev into GitLab dev
This commit is contained in:
@@ -223,6 +223,8 @@
|
||||
}
|
||||
let sidebarOpen = false;
|
||||
let isCompact = false;
|
||||
let dismissedUserRouteKey = "";
|
||||
let lastUserRouteKey = "";
|
||||
let adminLanguageMenuOpen = false;
|
||||
let adminLanguageClickGuard = false;
|
||||
let adminLanguageClickGuardArmed = false;
|
||||
@@ -379,6 +381,7 @@
|
||||
const uid = Number(userId);
|
||||
// Synthetic email-only users use negative user_id; still a valid admin target.
|
||||
if (!Number.isFinite(uid) || uid === 0) return;
|
||||
dismissedUserRouteKey = "";
|
||||
const next = normalizeSection("payments");
|
||||
sidebarOpen = false;
|
||||
if (active !== next) {
|
||||
@@ -395,6 +398,7 @@
|
||||
function openLogsUserCard(userId) {
|
||||
const uid = Number(userId);
|
||||
if (!Number.isFinite(uid) || uid === 0) return;
|
||||
dismissedUserRouteKey = "";
|
||||
const next = normalizeSection("logs");
|
||||
sidebarOpen = false;
|
||||
if (active !== next) {
|
||||
@@ -410,16 +414,24 @@
|
||||
function openUserCard(userId) {
|
||||
const uid = Number(userId);
|
||||
if (!Number.isFinite(uid) || uid === 0) return;
|
||||
const next = normalizeSection("users");
|
||||
dismissedUserRouteKey = "";
|
||||
sidebarOpen = false;
|
||||
if (active !== next) {
|
||||
active = next;
|
||||
paymentsStore.closePayment({ skipPush: true });
|
||||
supportStore.closeTicketView({ skipPush: true });
|
||||
onSectionChange(next, uid);
|
||||
usersStore.setActive(active);
|
||||
usersStore.openUser(uid, { skipPush: true, pathContext: active });
|
||||
}
|
||||
|
||||
function userRouteKey(section = active) {
|
||||
if (section === "users" && initialUserId) return `users:${initialUserId}`;
|
||||
if (section === "payments" && initialPaymentUserId) return `payments:${initialPaymentUserId}`;
|
||||
return "";
|
||||
}
|
||||
|
||||
function closeUserCard() {
|
||||
dismissedUserRouteKey = userRouteKey();
|
||||
usersStore.closeUser({ skipPush: true });
|
||||
if (active === "users" || active === "payments") {
|
||||
onSectionChange(active, 0);
|
||||
}
|
||||
usersStore.setActive(next);
|
||||
usersStore.openUser(uid);
|
||||
}
|
||||
|
||||
function resolvedAvatarUrl(user) {
|
||||
@@ -534,9 +546,18 @@
|
||||
$: sectionFade = reduceMotion ? { duration: 0 } : { duration: 200 };
|
||||
$: sidebarBackdropFade = reduceMotion ? { duration: 0 } : { duration: 180 };
|
||||
|
||||
$: {
|
||||
const currentUserRouteKey = userRouteKey();
|
||||
if (currentUserRouteKey !== lastUserRouteKey) {
|
||||
if (currentUserRouteKey !== dismissedUserRouteKey) dismissedUserRouteKey = "";
|
||||
lastUserRouteKey = currentUserRouteKey;
|
||||
}
|
||||
}
|
||||
|
||||
$: if (
|
||||
active === "users" &&
|
||||
initialUserId &&
|
||||
dismissedUserRouteKey !== `users:${initialUserId}` &&
|
||||
(!$usersStore.openedUser || $usersStore.openedUser.user_id !== initialUserId)
|
||||
) {
|
||||
usersStore.openUser(initialUserId, { skipPush: true });
|
||||
@@ -553,6 +574,7 @@
|
||||
$: if (
|
||||
active === "payments" &&
|
||||
initialPaymentUserId &&
|
||||
dismissedUserRouteKey !== `payments:${initialPaymentUserId}` &&
|
||||
(!$usersStore.openedUser || $usersStore.openedUser.user_id !== initialPaymentUserId)
|
||||
) {
|
||||
usersStore.openUser(initialPaymentUserId, { skipPush: true, pathContext: "payments" });
|
||||
@@ -893,4 +915,5 @@
|
||||
{trafficPercentValue}
|
||||
{trafficLeftLabel}
|
||||
{trafficOfLabel}
|
||||
onClose={closeUserCard}
|
||||
/>
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
export let userTelegramProfileLink = () => "";
|
||||
export let userTelegramProfileLinkKind = () => "";
|
||||
export let openTelegramProfileLink = () => false;
|
||||
export let onClose = () => usersStore.closeUser();
|
||||
|
||||
let avatarPreviewOpen = false;
|
||||
let avatarPreviewUrl = "";
|
||||
@@ -198,7 +199,7 @@
|
||||
: ""}
|
||||
description={openedUser?.username ? "@" + openedUser.username : ""}
|
||||
closeLabel={at("close", {}, "Закрыть")}
|
||||
onclose={usersStore.closeUser}
|
||||
onclose={onClose}
|
||||
class="admin-dialog admin-user-dialog"
|
||||
>
|
||||
{#if openedUser}
|
||||
|
||||
Reference in New Issue
Block a user