@mundogamernetwork/shared-ui 1.16.6 → 1.16.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -14,6 +14,7 @@ const { performLogout } = useLogout();
|
|
|
14
14
|
|
|
15
15
|
const runtimeConfig = useRuntimeConfig();
|
|
16
16
|
const accountsBaseUrl = runtimeConfig.public.mgSharedUi?.accountsBaseUrl || runtimeConfig.public.accountsBaseUrl;
|
|
17
|
+
const supportUrl = `${accountsBaseUrl}/account/support/new`;
|
|
17
18
|
const features = runtimeConfig.public.mgSharedUi?.features ?? {};
|
|
18
19
|
const pricingUrl = runtimeConfig.public.mgSharedUi?.pricingUrl || "";
|
|
19
20
|
const { locale } = useI18n();
|
|
@@ -58,6 +59,20 @@ const handleToggleOnline = () => {
|
|
|
58
59
|
</script>
|
|
59
60
|
|
|
60
61
|
<template>
|
|
62
|
+
<!--
|
|
63
|
+
The 'signed-in' class below is a reactive :class binding on THIS SAME
|
|
64
|
+
element — it hit the identical never-repatched-after-hydration-mismatch
|
|
65
|
+
symptom the inner v-if/v-else branches did (see the comment above
|
|
66
|
+
MgLoginRegisterMenu/section further down), and unlike that inner swap,
|
|
67
|
+
there's no sibling-vnode :key trick available to fix an ancestor's own
|
|
68
|
+
class binding on itself (verified: a :key on this element does NOT
|
|
69
|
+
force it to re-evaluate — key only affects sibling-vnode comparison,
|
|
70
|
+
not a component's own reactive re-render). The width rule that used to
|
|
71
|
+
key off '.signed-in' now uses :has(.signed-in-menu) instead — real DOM
|
|
72
|
+
structure, correct regardless of whether this class ever catches up.
|
|
73
|
+
The class stays here for anything else that legitimately keys off it
|
|
74
|
+
(e.g. a host's own CSS); just don't rely on it for layout in this file.
|
|
75
|
+
-->
|
|
61
76
|
<div ref="refDiv" :class="{ 'ui-config-user': true, 'signed-in': signedIn }">
|
|
62
77
|
<div ref="wrapper" class="ui-config-user__content">
|
|
63
78
|
<!--
|
|
@@ -139,6 +154,12 @@ const handleToggleOnline = () => {
|
|
|
139
154
|
</a>
|
|
140
155
|
</div>
|
|
141
156
|
|
|
157
|
+
<div class="row info-row">
|
|
158
|
+
<a :href="supportUrl" target="_blank" class="support-link">
|
|
159
|
+
{{ $t("account_menu.buttons.support", "Support") }}
|
|
160
|
+
</a>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
142
163
|
<div v-if="features.statusOnline" class="row info-row my-3">
|
|
143
164
|
<div class="status-toggle">
|
|
144
165
|
<span>{{ $t("account_menu.buttons.show_online") }}</span>
|
|
@@ -189,7 +210,16 @@ const handleToggleOnline = () => {
|
|
|
189
210
|
overflow-y: auto;
|
|
190
211
|
transition: all ease 0.5s;
|
|
191
212
|
|
|
192
|
-
|
|
213
|
+
// Derived from the actual rendered content (:has), not the .signed-in
|
|
214
|
+
// class this element also carries. That class is a reactive :class
|
|
215
|
+
// binding on THIS SAME element (see the guest→signed-in transition
|
|
216
|
+
// comment above the template's MgLoginRegisterMenu/section) — it hit
|
|
217
|
+
// the identical never-repatched symptom the inner branch did, and
|
|
218
|
+
// unlike the inner v-if/v-else swap, there's no sibling-vnode :key
|
|
219
|
+
// trick available for an ancestor's own class binding on itself.
|
|
220
|
+
// :has(.signed-in-menu) reads real DOM structure instead, so it's
|
|
221
|
+
// correct regardless of whether that class binding ever catches up.
|
|
222
|
+
&:not(:has(.signed-in-menu)) {
|
|
193
223
|
width: 340px;
|
|
194
224
|
}
|
|
195
225
|
|
|
@@ -310,6 +340,26 @@ const handleToggleOnline = () => {
|
|
|
310
340
|
}
|
|
311
341
|
}
|
|
312
342
|
|
|
343
|
+
.support-link {
|
|
344
|
+
display: block;
|
|
345
|
+
width: 100%;
|
|
346
|
+
text-align: center;
|
|
347
|
+
font-size: 0.75rem;
|
|
348
|
+
font-weight: 400;
|
|
349
|
+
// Deliberately quieter than .plans-pricing-link — this is a low-key
|
|
350
|
+
// secondary affordance, not a conversion CTA, so it stays on a muted
|
|
351
|
+
// text token instead of each host's accent color.
|
|
352
|
+
color: var(--secondary-info-fg, var(--inactive));
|
|
353
|
+
text-decoration: none;
|
|
354
|
+
padding: 4px 0;
|
|
355
|
+
margin-top: 8px;
|
|
356
|
+
|
|
357
|
+
&:hover {
|
|
358
|
+
text-decoration: underline;
|
|
359
|
+
color: var(--active);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
313
363
|
.status-toggle {
|
|
314
364
|
display: flex;
|
|
315
365
|
justify-content: space-between;
|