@mundogamernetwork/shared-ui 1.16.16 → 1.16.17

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.
@@ -5,13 +5,23 @@
5
5
  <p class="sidebar-menu__intro">{{ $t('sidebar.platform_switcher_intro') }}</p>
6
6
  <ul class="menus">
7
7
  <li v-for="system in networkSystems" :key="system.id">
8
- <a class="sidebar__logo" :href="system.domain" target="_blank" rel="noopener noreferrer" :aria-label="ariaLabelFor(system)">
8
+ <component
9
+ :is="system.comingSoon ? 'span' : 'a'"
10
+ class="sidebar__logo"
11
+ :class="{ 'sidebar__logo--disabled': system.comingSoon }"
12
+ :href="system.comingSoon ? undefined : system.domain"
13
+ :target="system.comingSoon ? undefined : '_blank'"
14
+ :rel="system.comingSoon ? undefined : 'noopener noreferrer'"
15
+ :aria-disabled="system.comingSoon || undefined"
16
+ :aria-label="ariaLabelFor(system)"
17
+ >
9
18
  <img :src="colorMode.value === 'light' ? system.logo_light : system.logo_dark" :alt="system.name" />
10
19
  <span class="sidebar__tooltip" role="tooltip">
11
20
  <strong>{{ system.name }}</strong>
12
- <span v-if="descriptionFor(system.slug)">{{ descriptionFor(system.slug) }}</span>
21
+ <span v-if="system.comingSoon">{{ $t('sidebar.coming_soon') }}</span>
22
+ <span v-else-if="descriptionFor(system.slug)">{{ descriptionFor(system.slug) }}</span>
13
23
  </span>
14
- </a>
24
+ </component>
15
25
  </li>
16
26
  </ul>
17
27
  </div>
@@ -56,8 +66,15 @@ interface NetworkSystem {
56
66
  logo_light: string;
57
67
  status: number;
58
68
  slug: string;
69
+ comingSoon?: boolean;
59
70
  }
60
71
 
72
+ // mundogamer.shop was lost/hijacked (now parked/serving unrelated content)
73
+ // but mg_network_systems still carries it as an active prod_url — the API
74
+ // can't be trusted for this one entry until that's fixed at the source, so
75
+ // force it non-clickable here instead of linking out to it.
76
+ const HIJACKED_SLUGS = new Set(['shop']);
77
+
61
78
  // Fallback data - previous static logos
62
79
  const fallbackSystems: NetworkSystem[] = [
63
80
  { id: 1, name: 'Mundo Gamer Academy', domain: 'https://mundogamer.academy', logo_dark: '/imgs/dark/academy.svg', logo_light: '/imgs/light/academy.svg', status: 1, slug: 'academy' },
@@ -67,7 +84,7 @@ const fallbackSystems: NetworkSystem[] = [
67
84
  { id: 5, name: 'Mundo Gamer Community', domain: 'https://mundogamer.community', logo_dark: '/imgs/dark/community.svg', logo_light: '/imgs/light/community.svg', status: 1, slug: 'community' },
68
85
  { id: 6, name: 'Mundo Gamer Jobs', domain: 'https://mundogamerjobs.com', logo_dark: '/imgs/dark/jobs.svg', logo_light: '/imgs/light/jobs.svg', status: 1, slug: 'jobs' },
69
86
  { id: 7, name: 'Mundo Gamer Network', domain: 'https://mundogamer.network', logo_dark: '/imgs/dark/network.svg', logo_light: '/imgs/light/network.svg', status: 1, slug: 'network' },
70
- { id: 8, name: 'Mundo Gamer Shop', domain: 'https://mundogamer.shop', logo_dark: '/imgs/dark/shop.svg', logo_light: '/imgs/light/shop.svg', status: 1, slug: 'shop' },
87
+ { id: 8, name: 'Mundo Gamer Shop', domain: 'https://mundogamer.shop', logo_dark: '/imgs/dark/shop.svg', logo_light: '/imgs/light/shop.svg', status: 1, slug: 'shop', comingSoon: true },
71
88
  { id: 9, name: 'Mundo Gamer Token', domain: 'https://mundogamer.token', logo_dark: '/imgs/dark/token.svg', logo_light: '/imgs/light/token.svg', status: 1, slug: 'token' },
72
89
  { id: 10, name: 'Mundo Gamer TV', domain: 'https://mundogamer.tv', logo_dark: '/imgs/dark/tv.svg', logo_light: '/imgs/light/tv.svg', status: 1, slug: 'tv' },
73
90
  ];
@@ -104,7 +121,8 @@ async function fetchNetworkSystems() {
104
121
  logo_dark: slug ? `/imgs/dark/${slug}.svg` : (system.url_reduced_image_src || ''),
105
122
  logo_light: slug ? `/imgs/light/${slug}.svg` : (system.url_reduced_image_src || ''),
106
123
  status: system.status ? 1 : 0,
107
- slug
124
+ slug,
125
+ comingSoon: HIJACKED_SLUGS.has(slug)
108
126
  };
109
127
  });
110
128
  } catch (error) {
@@ -124,6 +142,7 @@ function descriptionFor(slug: string): string {
124
142
  }
125
143
 
126
144
  function ariaLabelFor(system: NetworkSystem): string {
145
+ if (system.comingSoon) return `${system.name} — ${t('sidebar.coming_soon')}`;
127
146
  const description = descriptionFor(system.slug);
128
147
  return description ? `${system.name} — ${description}` : system.name;
129
148
  }
@@ -218,6 +237,11 @@ onMounted(() => {
218
237
  &__logo {
219
238
  position: relative;
220
239
  display: inline-flex;
240
+
241
+ &--disabled {
242
+ cursor: default;
243
+ opacity: 0.4;
244
+ }
221
245
  }
222
246
 
223
247
  &__tooltip {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mundogamernetwork/shared-ui",
3
- "version": "1.16.16",
3
+ "version": "1.16.17",
4
4
  "description": "Mundo Gamer Network - Shared UI Layer (Nuxt 3)",
5
5
  "type": "module",
6
6
  "main": "./nuxt.config.ts",