@mundogamernetwork/shared-ui 1.1.64 → 1.1.67
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.
- package/locales/de.json +161 -0
- package/locales/en.json +161 -0
- package/locales/pt-BR.json +161 -0
- package/locales/ro.json +161 -0
- package/nuxt.config.ts +3 -0
- package/package.json +2 -1
- package/pages/key-campaigns/[slug].vue +11 -11
- package/pages/key-campaigns/index.vue +50 -51
- package/pages/presskit/game/[slug].vue +0 -1
- package/plugins/auth.client.ts +9 -3
- package/services/campaignService.ts +2 -0
package/locales/de.json
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"keys": {
|
|
3
|
+
"notif_prompt_title": "Benachrichtigungen für neue Key-Kampagnen erhalten?",
|
|
4
|
+
"notif_prompt_desc": "Wir benachrichtigen Sie per E-Mail und Push, wenn eine neue Key-Kampagne startet.",
|
|
5
|
+
"notif_prompt_enable": "Aktivieren",
|
|
6
|
+
"notif_prompt_dismiss": "Jetzt nicht",
|
|
7
|
+
"browser": {
|
|
8
|
+
"tab_available": "Verfügbar",
|
|
9
|
+
"tab_mine": "Meine Anfragen",
|
|
10
|
+
"select_platform": "Plattform auswählen",
|
|
11
|
+
"description_label": "Warum verdienen Sie diesen Key?",
|
|
12
|
+
"description_placeholder": "z.B. Ich betreibe einen YouTube-Kanal mit 5.000 Abonnenten, der sich auf Spielerezensionen spezialisiert. Ich möchte eine vollständige Rezension für mein Publikum veröffentlichen.",
|
|
13
|
+
"request_btn": "Key anfordern",
|
|
14
|
+
"already_requested": "Anfrage gesendet",
|
|
15
|
+
"reveal_btn": "Key anzeigen",
|
|
16
|
+
"revealed": "Key angezeigt",
|
|
17
|
+
"pending_approval": "Wartet auf Genehmigung",
|
|
18
|
+
"login_required": "Anmelden, um diesen Key anzufordern",
|
|
19
|
+
"login_btn": "Anmelden",
|
|
20
|
+
"no_keys": "Derzeit keine Keys verfügbar",
|
|
21
|
+
"no_pools": "Keine aktiven Kampagnen",
|
|
22
|
+
"no_requests": "Sie haben noch keine Keys angefordert"
|
|
23
|
+
},
|
|
24
|
+
"campaigns": {
|
|
25
|
+
"title": "Key Campaigns",
|
|
26
|
+
"my_requests": "My Requests",
|
|
27
|
+
"all": "All",
|
|
28
|
+
"details": "Details",
|
|
29
|
+
"see_campaign": "See campaign",
|
|
30
|
+
"see_content": "See content",
|
|
31
|
+
"redeem": "Redeem",
|
|
32
|
+
"load_more": "Load more",
|
|
33
|
+
"no_results": "No campaigns found",
|
|
34
|
+
"days": "days",
|
|
35
|
+
"creators": "creators",
|
|
36
|
+
"upgrade_plan": "Upgrade plan",
|
|
37
|
+
"exclusive": "Exclusive",
|
|
38
|
+
"exclusive_upgrade": "Upgrade to access",
|
|
39
|
+
"exclusive_upgrade_cta": "Upgrade your plan to request this key",
|
|
40
|
+
"exclusive_lock_title": "Exclusive campaign",
|
|
41
|
+
"early_access": "Early access",
|
|
42
|
+
"early_access_lock_title": "Early access",
|
|
43
|
+
"early_access_opens_in": "Opens in",
|
|
44
|
+
"unavailable": "Unavailable",
|
|
45
|
+
"upcoming": "Coming soon",
|
|
46
|
+
"back": "Back",
|
|
47
|
+
"search_placeholder": "Search campaigns...",
|
|
48
|
+
"seo": {
|
|
49
|
+
"title_generic": "Key Campaigns"
|
|
50
|
+
},
|
|
51
|
+
"restriction": {
|
|
52
|
+
"exclusive_official": "Official streamers only",
|
|
53
|
+
"level_official": "Official",
|
|
54
|
+
"level_affiliate": "Affiliate"
|
|
55
|
+
},
|
|
56
|
+
"status_key": {
|
|
57
|
+
"see_key": "View key",
|
|
58
|
+
"of": "of",
|
|
59
|
+
"title_0": "Campaign",
|
|
60
|
+
"title_span_0": "ended",
|
|
61
|
+
"obs_0": "The redemption period for the key has expired.",
|
|
62
|
+
"title_1": "Now you need to",
|
|
63
|
+
"title_span_1": "redeem the key",
|
|
64
|
+
"obs_1": "Check the campaign requirements before requesting your key(s)",
|
|
65
|
+
"title_2": "Now just",
|
|
66
|
+
"title_span_2": "wait",
|
|
67
|
+
"obs_2": "Your request is being reviewed. After approval, you will receive a confirmation email.",
|
|
68
|
+
"title_approved": "Your request has been ",
|
|
69
|
+
"title_span_approved": "approved!",
|
|
70
|
+
"obs_approved": "Your key is ready. Click to reveal it.",
|
|
71
|
+
"reveal_key": "Reveal key",
|
|
72
|
+
"view_code": "View code",
|
|
73
|
+
"title_3": "Now you just need to",
|
|
74
|
+
"title_span_3": "send the material",
|
|
75
|
+
"title_3_2": "developed",
|
|
76
|
+
"obs_3": "You have 14 days to send the developed material",
|
|
77
|
+
"complete": "Completed",
|
|
78
|
+
"title_span_4": "Nice!",
|
|
79
|
+
"title_4": "If you have more materials, feel free to add them",
|
|
80
|
+
"obs_4": "If you want to add more, you still have 6 days to send it.",
|
|
81
|
+
"title_5": "Your request was",
|
|
82
|
+
"title_span_5": "rejected",
|
|
83
|
+
"obs_5": "Unfortunately, your key request was not approved. Please check the campaign requirements and try again in the future.",
|
|
84
|
+
"title_6": "Request",
|
|
85
|
+
"title_span_6": "cancelled",
|
|
86
|
+
"obs_6": "You canceled this request. If you want to try again, just start a new request according to the campaign rules.",
|
|
87
|
+
"title_7": "Request",
|
|
88
|
+
"title_span_7": "expired",
|
|
89
|
+
"obs_7": "The deadline for submitting the material or using the key has expired. Keep an eye on deadlines in future campaigns!",
|
|
90
|
+
"title_8": "Key",
|
|
91
|
+
"title_span_8": "revoked",
|
|
92
|
+
"obs_8": "Your key has been revoked by the administration. If you have any questions, contact support or review the campaign rules.",
|
|
93
|
+
"title_exhausted": "Keys",
|
|
94
|
+
"title_span_exhausted": "exhausted",
|
|
95
|
+
"obs_exhausted": "All keys for this campaign have already been distributed.",
|
|
96
|
+
"title_locked": "This campaign is",
|
|
97
|
+
"title_span_locked": "exclusive",
|
|
98
|
+
"obs_locked_exclusive": "Available only to higher tiers. Upgrade to take part.",
|
|
99
|
+
"obs_locked_early": "Your plan doesn't have access to this campaign yet. Upgrade to unlock.",
|
|
100
|
+
"obs_locked_tier": "Available only to {tier} plan subscribers or higher. Upgrade to take part.",
|
|
101
|
+
"title_level": "This campaign is for",
|
|
102
|
+
"title_span_level_official": "official streamers",
|
|
103
|
+
"title_span_level_affiliate": "affiliates",
|
|
104
|
+
"obs_level_official": "Available only to official MG streamers.",
|
|
105
|
+
"obs_level_affiliate": "Available only to affiliate creators (casting). Join the casting to take part."
|
|
106
|
+
},
|
|
107
|
+
"campaign": {
|
|
108
|
+
"available": "available",
|
|
109
|
+
"keys": "keys",
|
|
110
|
+
"start": "Start",
|
|
111
|
+
"end": "End",
|
|
112
|
+
"launch": "Launch",
|
|
113
|
+
"status": "Status",
|
|
114
|
+
"status_active": "Active",
|
|
115
|
+
"status_closed": "Closed",
|
|
116
|
+
"status_ending": "Ending soon",
|
|
117
|
+
"status_exhausted": "Keys exhausted",
|
|
118
|
+
"days": "days",
|
|
119
|
+
"hours": "hours",
|
|
120
|
+
"minutes": "min",
|
|
121
|
+
"seconds": "sec",
|
|
122
|
+
"days_hours": "days and hours",
|
|
123
|
+
"redeem": "Redeem key",
|
|
124
|
+
"actions": "Complementary actions",
|
|
125
|
+
"no_actions": "No actions configured",
|
|
126
|
+
"requirements": "Requirements",
|
|
127
|
+
"requirement": {
|
|
128
|
+
"all": "Open to all",
|
|
129
|
+
"official": "Official streamers",
|
|
130
|
+
"affiliate": "Affiliate or above"
|
|
131
|
+
},
|
|
132
|
+
"rp_label": "Redeemed by",
|
|
133
|
+
"who_redeem": "Who redeemed",
|
|
134
|
+
"created_by": "Published by",
|
|
135
|
+
"no_data": "Campaign not found"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"materials": {
|
|
139
|
+
"title": "Submit material",
|
|
140
|
+
"subtitle": "Send the link to your content about this game",
|
|
141
|
+
"back": "Back",
|
|
142
|
+
"link": "Content link",
|
|
143
|
+
"description": "Description (optional)",
|
|
144
|
+
"date": "Publication date",
|
|
145
|
+
"type": "Content type",
|
|
146
|
+
"type_stream": "Live stream",
|
|
147
|
+
"type_video": "Video",
|
|
148
|
+
"type_article": "Article / Review",
|
|
149
|
+
"type_web": "Website / Blog",
|
|
150
|
+
"type_print": "Screenshot / Print",
|
|
151
|
+
"required_fields": "Fill in all required fields",
|
|
152
|
+
"url_error": "Invalid URL",
|
|
153
|
+
"submit_error": "Error submitting. Try again.",
|
|
154
|
+
"sending": "Sending...",
|
|
155
|
+
"finish": "Submit",
|
|
156
|
+
"submitted_title": "Material submitted!",
|
|
157
|
+
"success_message": "Your material was sent for review. Thank you!",
|
|
158
|
+
"success_close": "Close"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
package/locales/en.json
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"keys": {
|
|
3
|
+
"notif_prompt_title": "Get alerts for new key campaigns?",
|
|
4
|
+
"notif_prompt_desc": "We'll notify you by email and push whenever a new key campaign opens.",
|
|
5
|
+
"notif_prompt_enable": "Enable",
|
|
6
|
+
"notif_prompt_dismiss": "Not now",
|
|
7
|
+
"browser": {
|
|
8
|
+
"tab_available": "Available",
|
|
9
|
+
"tab_mine": "My requests",
|
|
10
|
+
"select_platform": "Select platform",
|
|
11
|
+
"description_label": "Why do you deserve this key?",
|
|
12
|
+
"description_placeholder": "E.g. I run a YouTube channel with 5k subscribers focused on game reviews. I'd like to publish a full review for my audience.",
|
|
13
|
+
"request_btn": "Request key",
|
|
14
|
+
"already_requested": "Request submitted",
|
|
15
|
+
"reveal_btn": "Reveal key",
|
|
16
|
+
"revealed": "Key revealed",
|
|
17
|
+
"pending_approval": "Awaiting approval",
|
|
18
|
+
"login_required": "Log in to request this key",
|
|
19
|
+
"login_btn": "Sign in",
|
|
20
|
+
"no_keys": "No keys available right now",
|
|
21
|
+
"no_pools": "No active campaigns",
|
|
22
|
+
"no_requests": "You haven't requested any keys yet"
|
|
23
|
+
},
|
|
24
|
+
"campaigns": {
|
|
25
|
+
"title": "Key Campaigns",
|
|
26
|
+
"my_requests": "My Requests",
|
|
27
|
+
"all": "All",
|
|
28
|
+
"details": "Details",
|
|
29
|
+
"see_campaign": "See campaign",
|
|
30
|
+
"see_content": "See content",
|
|
31
|
+
"redeem": "Redeem",
|
|
32
|
+
"load_more": "Load more",
|
|
33
|
+
"no_results": "No campaigns found",
|
|
34
|
+
"days": "days",
|
|
35
|
+
"creators": "creators",
|
|
36
|
+
"upgrade_plan": "Upgrade plan",
|
|
37
|
+
"exclusive": "Exclusive",
|
|
38
|
+
"exclusive_upgrade": "Upgrade to access",
|
|
39
|
+
"exclusive_upgrade_cta": "Upgrade your plan to request this key",
|
|
40
|
+
"exclusive_lock_title": "Exclusive campaign",
|
|
41
|
+
"early_access": "Early access",
|
|
42
|
+
"early_access_lock_title": "Early access",
|
|
43
|
+
"early_access_opens_in": "Opens in",
|
|
44
|
+
"unavailable": "Unavailable",
|
|
45
|
+
"upcoming": "Coming soon",
|
|
46
|
+
"back": "Back",
|
|
47
|
+
"search_placeholder": "Search campaigns...",
|
|
48
|
+
"seo": {
|
|
49
|
+
"title_generic": "Key Campaigns"
|
|
50
|
+
},
|
|
51
|
+
"restriction": {
|
|
52
|
+
"exclusive_official": "Official streamers only",
|
|
53
|
+
"level_official": "Official",
|
|
54
|
+
"level_affiliate": "Affiliate"
|
|
55
|
+
},
|
|
56
|
+
"status_key": {
|
|
57
|
+
"see_key": "View key",
|
|
58
|
+
"of": "of",
|
|
59
|
+
"title_0": "Campaign",
|
|
60
|
+
"title_span_0": "ended",
|
|
61
|
+
"obs_0": "The redemption period for the key has expired.",
|
|
62
|
+
"title_1": "Now you need to",
|
|
63
|
+
"title_span_1": "redeem the key",
|
|
64
|
+
"obs_1": "Check the campaign requirements before requesting your key(s)",
|
|
65
|
+
"title_2": "Now just",
|
|
66
|
+
"title_span_2": "wait",
|
|
67
|
+
"obs_2": "Your request is being reviewed. After approval, you will receive a confirmation email.",
|
|
68
|
+
"title_approved": "Your request has been ",
|
|
69
|
+
"title_span_approved": "approved!",
|
|
70
|
+
"obs_approved": "Your key is ready. Click to reveal it.",
|
|
71
|
+
"reveal_key": "Reveal key",
|
|
72
|
+
"view_code": "View code",
|
|
73
|
+
"title_3": "Now you just need to",
|
|
74
|
+
"title_span_3": "send the material",
|
|
75
|
+
"title_3_2": "developed",
|
|
76
|
+
"obs_3": "You have 14 days to send the developed material",
|
|
77
|
+
"complete": "Completed",
|
|
78
|
+
"title_span_4": "Nice!",
|
|
79
|
+
"title_4": "If you have more materials, feel free to add them",
|
|
80
|
+
"obs_4": "If you want to add more, you still have 6 days to send it.",
|
|
81
|
+
"title_5": "Your request was",
|
|
82
|
+
"title_span_5": "rejected",
|
|
83
|
+
"obs_5": "Unfortunately, your key request was not approved. Please check the campaign requirements and try again in the future.",
|
|
84
|
+
"title_6": "Request",
|
|
85
|
+
"title_span_6": "cancelled",
|
|
86
|
+
"obs_6": "You canceled this request. If you want to try again, just start a new request according to the campaign rules.",
|
|
87
|
+
"title_7": "Request",
|
|
88
|
+
"title_span_7": "expired",
|
|
89
|
+
"obs_7": "The deadline for submitting the material or using the key has expired. Keep an eye on deadlines in future campaigns!",
|
|
90
|
+
"title_8": "Key",
|
|
91
|
+
"title_span_8": "revoked",
|
|
92
|
+
"obs_8": "Your key has been revoked by the administration. If you have any questions, contact support or review the campaign rules.",
|
|
93
|
+
"title_exhausted": "Keys",
|
|
94
|
+
"title_span_exhausted": "exhausted",
|
|
95
|
+
"obs_exhausted": "All keys for this campaign have already been distributed.",
|
|
96
|
+
"title_locked": "This campaign is",
|
|
97
|
+
"title_span_locked": "exclusive",
|
|
98
|
+
"obs_locked_exclusive": "Available only to higher tiers. Upgrade to take part.",
|
|
99
|
+
"obs_locked_early": "Your plan doesn't have access to this campaign yet. Upgrade to unlock.",
|
|
100
|
+
"obs_locked_tier": "Available only to {tier} plan subscribers or higher. Upgrade to take part.",
|
|
101
|
+
"title_level": "This campaign is for",
|
|
102
|
+
"title_span_level_official": "official streamers",
|
|
103
|
+
"title_span_level_affiliate": "affiliates",
|
|
104
|
+
"obs_level_official": "Available only to official MG streamers.",
|
|
105
|
+
"obs_level_affiliate": "Available only to affiliate creators (casting). Join the casting to take part."
|
|
106
|
+
},
|
|
107
|
+
"campaign": {
|
|
108
|
+
"available": "available",
|
|
109
|
+
"keys": "keys",
|
|
110
|
+
"start": "Start",
|
|
111
|
+
"end": "End",
|
|
112
|
+
"launch": "Launch",
|
|
113
|
+
"status": "Status",
|
|
114
|
+
"status_active": "Active",
|
|
115
|
+
"status_closed": "Closed",
|
|
116
|
+
"status_ending": "Ending soon",
|
|
117
|
+
"status_exhausted": "Keys exhausted",
|
|
118
|
+
"days": "days",
|
|
119
|
+
"hours": "hours",
|
|
120
|
+
"minutes": "min",
|
|
121
|
+
"seconds": "sec",
|
|
122
|
+
"days_hours": "days and hours",
|
|
123
|
+
"redeem": "Redeem key",
|
|
124
|
+
"actions": "Complementary actions",
|
|
125
|
+
"no_actions": "No actions configured",
|
|
126
|
+
"requirements": "Requirements",
|
|
127
|
+
"requirement": {
|
|
128
|
+
"all": "Open to all",
|
|
129
|
+
"official": "Official streamers",
|
|
130
|
+
"affiliate": "Affiliate or above"
|
|
131
|
+
},
|
|
132
|
+
"rp_label": "Redeemed by",
|
|
133
|
+
"who_redeem": "Who redeemed",
|
|
134
|
+
"created_by": "Published by",
|
|
135
|
+
"no_data": "Campaign not found"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"materials": {
|
|
139
|
+
"title": "Submit material",
|
|
140
|
+
"subtitle": "Send the link to your content about this game",
|
|
141
|
+
"back": "Back",
|
|
142
|
+
"link": "Content link",
|
|
143
|
+
"description": "Description (optional)",
|
|
144
|
+
"date": "Publication date",
|
|
145
|
+
"type": "Content type",
|
|
146
|
+
"type_stream": "Live stream",
|
|
147
|
+
"type_video": "Video",
|
|
148
|
+
"type_article": "Article / Review",
|
|
149
|
+
"type_web": "Website / Blog",
|
|
150
|
+
"type_print": "Screenshot / Print",
|
|
151
|
+
"required_fields": "Fill in all required fields",
|
|
152
|
+
"url_error": "Invalid URL",
|
|
153
|
+
"submit_error": "Error submitting. Try again.",
|
|
154
|
+
"sending": "Sending...",
|
|
155
|
+
"finish": "Submit",
|
|
156
|
+
"submitted_title": "Material submitted!",
|
|
157
|
+
"success_message": "Your material was sent for review. Thank you!",
|
|
158
|
+
"success_close": "Close"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"keys": {
|
|
3
|
+
"notif_prompt_title": "Quer receber alertas de novas campanhas de chaves?",
|
|
4
|
+
"notif_prompt_desc": "Te avisamos por email e push sempre que uma nova campanha de chaves abrir.",
|
|
5
|
+
"notif_prompt_enable": "Ativar",
|
|
6
|
+
"notif_prompt_dismiss": "Agora não",
|
|
7
|
+
"browser": {
|
|
8
|
+
"tab_available": "Disponíveis",
|
|
9
|
+
"tab_mine": "Minhas solicitações",
|
|
10
|
+
"select_platform": "Selecione a plataforma",
|
|
11
|
+
"description_label": "Por que você merece esta chave?",
|
|
12
|
+
"description_placeholder": "Ex: Tenho um canal no YouTube com 5k inscritos focado em reviews de games. Quero fazer uma análise completa do jogo para minha audiência.",
|
|
13
|
+
"request_btn": "Pedir chave",
|
|
14
|
+
"already_requested": "Solicitação enviada",
|
|
15
|
+
"reveal_btn": "Revelar chave",
|
|
16
|
+
"revealed": "Chave revelada",
|
|
17
|
+
"pending_approval": "Aguardando aprovação",
|
|
18
|
+
"login_required": "Faça login para solicitar esta chave",
|
|
19
|
+
"login_btn": "Entrar",
|
|
20
|
+
"no_keys": "Nenhuma chave disponível no momento",
|
|
21
|
+
"no_pools": "Nenhuma campanha ativa",
|
|
22
|
+
"no_requests": "Você ainda não solicitou nenhuma chave"
|
|
23
|
+
},
|
|
24
|
+
"campaigns": {
|
|
25
|
+
"title": "Key Campaigns",
|
|
26
|
+
"my_requests": "My Requests",
|
|
27
|
+
"all": "All",
|
|
28
|
+
"details": "Details",
|
|
29
|
+
"see_campaign": "See campaign",
|
|
30
|
+
"see_content": "See content",
|
|
31
|
+
"redeem": "Redeem",
|
|
32
|
+
"load_more": "Load more",
|
|
33
|
+
"no_results": "No campaigns found",
|
|
34
|
+
"days": "days",
|
|
35
|
+
"creators": "creators",
|
|
36
|
+
"upgrade_plan": "Upgrade plan",
|
|
37
|
+
"exclusive": "Exclusive",
|
|
38
|
+
"exclusive_upgrade": "Upgrade to access",
|
|
39
|
+
"exclusive_upgrade_cta": "Upgrade your plan to request this key",
|
|
40
|
+
"exclusive_lock_title": "Exclusive campaign",
|
|
41
|
+
"early_access": "Early access",
|
|
42
|
+
"early_access_lock_title": "Early access",
|
|
43
|
+
"early_access_opens_in": "Opens in",
|
|
44
|
+
"unavailable": "Unavailable",
|
|
45
|
+
"upcoming": "Coming soon",
|
|
46
|
+
"back": "Back",
|
|
47
|
+
"search_placeholder": "Search campaigns...",
|
|
48
|
+
"seo": {
|
|
49
|
+
"title_generic": "Key Campaigns"
|
|
50
|
+
},
|
|
51
|
+
"restriction": {
|
|
52
|
+
"exclusive_official": "Official streamers only",
|
|
53
|
+
"level_official": "Official",
|
|
54
|
+
"level_affiliate": "Affiliate"
|
|
55
|
+
},
|
|
56
|
+
"status_key": {
|
|
57
|
+
"see_key": "View key",
|
|
58
|
+
"of": "of",
|
|
59
|
+
"title_0": "Campaign",
|
|
60
|
+
"title_span_0": "ended",
|
|
61
|
+
"obs_0": "The redemption period for the key has expired.",
|
|
62
|
+
"title_1": "Now you need to",
|
|
63
|
+
"title_span_1": "redeem the key",
|
|
64
|
+
"obs_1": "Check the campaign requirements before requesting your key(s)",
|
|
65
|
+
"title_2": "Now just",
|
|
66
|
+
"title_span_2": "wait",
|
|
67
|
+
"obs_2": "Your request is being reviewed. After approval, you will receive a confirmation email.",
|
|
68
|
+
"title_approved": "Your request has been ",
|
|
69
|
+
"title_span_approved": "approved!",
|
|
70
|
+
"obs_approved": "Your key is ready. Click to reveal it.",
|
|
71
|
+
"reveal_key": "Reveal key",
|
|
72
|
+
"view_code": "View code",
|
|
73
|
+
"title_3": "Now you just need to",
|
|
74
|
+
"title_span_3": "send the material",
|
|
75
|
+
"title_3_2": "developed",
|
|
76
|
+
"obs_3": "You have 14 days to send the developed material",
|
|
77
|
+
"complete": "Completed",
|
|
78
|
+
"title_span_4": "Nice!",
|
|
79
|
+
"title_4": "If you have more materials, feel free to add them",
|
|
80
|
+
"obs_4": "If you want to add more, you still have 6 days to send it.",
|
|
81
|
+
"title_5": "Your request was",
|
|
82
|
+
"title_span_5": "rejected",
|
|
83
|
+
"obs_5": "Unfortunately, your key request was not approved. Please check the campaign requirements and try again in the future.",
|
|
84
|
+
"title_6": "Request",
|
|
85
|
+
"title_span_6": "cancelled",
|
|
86
|
+
"obs_6": "You canceled this request. If you want to try again, just start a new request according to the campaign rules.",
|
|
87
|
+
"title_7": "Request",
|
|
88
|
+
"title_span_7": "expired",
|
|
89
|
+
"obs_7": "The deadline for submitting the material or using the key has expired. Keep an eye on deadlines in future campaigns!",
|
|
90
|
+
"title_8": "Key",
|
|
91
|
+
"title_span_8": "revoked",
|
|
92
|
+
"obs_8": "Your key has been revoked by the administration. If you have any questions, contact support or review the campaign rules.",
|
|
93
|
+
"title_exhausted": "Keys",
|
|
94
|
+
"title_span_exhausted": "exhausted",
|
|
95
|
+
"obs_exhausted": "All keys for this campaign have already been distributed.",
|
|
96
|
+
"title_locked": "This campaign is",
|
|
97
|
+
"title_span_locked": "exclusive",
|
|
98
|
+
"obs_locked_exclusive": "Available only to higher tiers. Upgrade to take part.",
|
|
99
|
+
"obs_locked_early": "Your plan doesn't have access to this campaign yet. Upgrade to unlock.",
|
|
100
|
+
"obs_locked_tier": "Available only to {tier} plan subscribers or higher. Upgrade to take part.",
|
|
101
|
+
"title_level": "This campaign is for",
|
|
102
|
+
"title_span_level_official": "official streamers",
|
|
103
|
+
"title_span_level_affiliate": "affiliates",
|
|
104
|
+
"obs_level_official": "Available only to official MG streamers.",
|
|
105
|
+
"obs_level_affiliate": "Available only to affiliate creators (casting). Join the casting to take part."
|
|
106
|
+
},
|
|
107
|
+
"campaign": {
|
|
108
|
+
"available": "available",
|
|
109
|
+
"keys": "keys",
|
|
110
|
+
"start": "Start",
|
|
111
|
+
"end": "End",
|
|
112
|
+
"launch": "Launch",
|
|
113
|
+
"status": "Status",
|
|
114
|
+
"status_active": "Active",
|
|
115
|
+
"status_closed": "Closed",
|
|
116
|
+
"status_ending": "Ending soon",
|
|
117
|
+
"status_exhausted": "Keys exhausted",
|
|
118
|
+
"days": "days",
|
|
119
|
+
"hours": "hours",
|
|
120
|
+
"minutes": "min",
|
|
121
|
+
"seconds": "sec",
|
|
122
|
+
"days_hours": "days and hours",
|
|
123
|
+
"redeem": "Redeem key",
|
|
124
|
+
"actions": "Complementary actions",
|
|
125
|
+
"no_actions": "No actions configured",
|
|
126
|
+
"requirements": "Requirements",
|
|
127
|
+
"requirement": {
|
|
128
|
+
"all": "Open to all",
|
|
129
|
+
"official": "Official streamers",
|
|
130
|
+
"affiliate": "Affiliate or above"
|
|
131
|
+
},
|
|
132
|
+
"rp_label": "Redeemed by",
|
|
133
|
+
"who_redeem": "Who redeemed",
|
|
134
|
+
"created_by": "Published by",
|
|
135
|
+
"no_data": "Campaign not found"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"materials": {
|
|
139
|
+
"title": "Submit material",
|
|
140
|
+
"subtitle": "Send the link to your content about this game",
|
|
141
|
+
"back": "Back",
|
|
142
|
+
"link": "Content link",
|
|
143
|
+
"description": "Description (optional)",
|
|
144
|
+
"date": "Publication date",
|
|
145
|
+
"type": "Content type",
|
|
146
|
+
"type_stream": "Live stream",
|
|
147
|
+
"type_video": "Video",
|
|
148
|
+
"type_article": "Article / Review",
|
|
149
|
+
"type_web": "Website / Blog",
|
|
150
|
+
"type_print": "Screenshot / Print",
|
|
151
|
+
"required_fields": "Fill in all required fields",
|
|
152
|
+
"url_error": "Invalid URL",
|
|
153
|
+
"submit_error": "Error submitting. Try again.",
|
|
154
|
+
"sending": "Sending...",
|
|
155
|
+
"finish": "Submit",
|
|
156
|
+
"submitted_title": "Material submitted!",
|
|
157
|
+
"success_message": "Your material was sent for review. Thank you!",
|
|
158
|
+
"success_close": "Close"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
package/locales/ro.json
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"keys": {
|
|
3
|
+
"notif_prompt_title": "Vrei alerte pentru campanii noi de chei?",
|
|
4
|
+
"notif_prompt_desc": "Te notificăm prin email și push când o nouă campanie de chei se deschide.",
|
|
5
|
+
"notif_prompt_enable": "Activează",
|
|
6
|
+
"notif_prompt_dismiss": "Acum nu",
|
|
7
|
+
"browser": {
|
|
8
|
+
"tab_available": "Disponibile",
|
|
9
|
+
"tab_mine": "Cererile mele",
|
|
10
|
+
"select_platform": "Selectează platforma",
|
|
11
|
+
"description_label": "De ce meriți această cheie?",
|
|
12
|
+
"description_placeholder": "Ex: Am un canal YouTube cu 5k abonați axat pe recenzii de jocuri. Vreau să public o recenzie completă pentru publicul meu.",
|
|
13
|
+
"request_btn": "Solicită cheia",
|
|
14
|
+
"already_requested": "Cerere trimisă",
|
|
15
|
+
"reveal_btn": "Afișează cheia",
|
|
16
|
+
"revealed": "Cheie afișată",
|
|
17
|
+
"pending_approval": "În așteptarea aprobării",
|
|
18
|
+
"login_required": "Autentifică-te pentru a solicita această cheie",
|
|
19
|
+
"login_btn": "Autentificare",
|
|
20
|
+
"no_keys": "Nicio cheie disponibilă momentan",
|
|
21
|
+
"no_pools": "Nicio campanie activă",
|
|
22
|
+
"no_requests": "Nu ai solicitat nicio cheie încă"
|
|
23
|
+
},
|
|
24
|
+
"campaigns": {
|
|
25
|
+
"title": "Key Campaigns",
|
|
26
|
+
"my_requests": "My Requests",
|
|
27
|
+
"all": "All",
|
|
28
|
+
"details": "Details",
|
|
29
|
+
"see_campaign": "See campaign",
|
|
30
|
+
"see_content": "See content",
|
|
31
|
+
"redeem": "Redeem",
|
|
32
|
+
"load_more": "Load more",
|
|
33
|
+
"no_results": "No campaigns found",
|
|
34
|
+
"days": "days",
|
|
35
|
+
"creators": "creators",
|
|
36
|
+
"upgrade_plan": "Upgrade plan",
|
|
37
|
+
"exclusive": "Exclusive",
|
|
38
|
+
"exclusive_upgrade": "Upgrade to access",
|
|
39
|
+
"exclusive_upgrade_cta": "Upgrade your plan to request this key",
|
|
40
|
+
"exclusive_lock_title": "Exclusive campaign",
|
|
41
|
+
"early_access": "Early access",
|
|
42
|
+
"early_access_lock_title": "Early access",
|
|
43
|
+
"early_access_opens_in": "Opens in",
|
|
44
|
+
"unavailable": "Unavailable",
|
|
45
|
+
"upcoming": "Coming soon",
|
|
46
|
+
"back": "Back",
|
|
47
|
+
"search_placeholder": "Search campaigns...",
|
|
48
|
+
"seo": {
|
|
49
|
+
"title_generic": "Key Campaigns"
|
|
50
|
+
},
|
|
51
|
+
"restriction": {
|
|
52
|
+
"exclusive_official": "Official streamers only",
|
|
53
|
+
"level_official": "Official",
|
|
54
|
+
"level_affiliate": "Affiliate"
|
|
55
|
+
},
|
|
56
|
+
"status_key": {
|
|
57
|
+
"see_key": "View key",
|
|
58
|
+
"of": "of",
|
|
59
|
+
"title_0": "Campaign",
|
|
60
|
+
"title_span_0": "ended",
|
|
61
|
+
"obs_0": "The redemption period for the key has expired.",
|
|
62
|
+
"title_1": "Now you need to",
|
|
63
|
+
"title_span_1": "redeem the key",
|
|
64
|
+
"obs_1": "Check the campaign requirements before requesting your key(s)",
|
|
65
|
+
"title_2": "Now just",
|
|
66
|
+
"title_span_2": "wait",
|
|
67
|
+
"obs_2": "Your request is being reviewed. After approval, you will receive a confirmation email.",
|
|
68
|
+
"title_approved": "Your request has been ",
|
|
69
|
+
"title_span_approved": "approved!",
|
|
70
|
+
"obs_approved": "Your key is ready. Click to reveal it.",
|
|
71
|
+
"reveal_key": "Reveal key",
|
|
72
|
+
"view_code": "View code",
|
|
73
|
+
"title_3": "Now you just need to",
|
|
74
|
+
"title_span_3": "send the material",
|
|
75
|
+
"title_3_2": "developed",
|
|
76
|
+
"obs_3": "You have 14 days to send the developed material",
|
|
77
|
+
"complete": "Completed",
|
|
78
|
+
"title_span_4": "Nice!",
|
|
79
|
+
"title_4": "If you have more materials, feel free to add them",
|
|
80
|
+
"obs_4": "If you want to add more, you still have 6 days to send it.",
|
|
81
|
+
"title_5": "Your request was",
|
|
82
|
+
"title_span_5": "rejected",
|
|
83
|
+
"obs_5": "Unfortunately, your key request was not approved. Please check the campaign requirements and try again in the future.",
|
|
84
|
+
"title_6": "Request",
|
|
85
|
+
"title_span_6": "cancelled",
|
|
86
|
+
"obs_6": "You canceled this request. If you want to try again, just start a new request according to the campaign rules.",
|
|
87
|
+
"title_7": "Request",
|
|
88
|
+
"title_span_7": "expired",
|
|
89
|
+
"obs_7": "The deadline for submitting the material or using the key has expired. Keep an eye on deadlines in future campaigns!",
|
|
90
|
+
"title_8": "Key",
|
|
91
|
+
"title_span_8": "revoked",
|
|
92
|
+
"obs_8": "Your key has been revoked by the administration. If you have any questions, contact support or review the campaign rules.",
|
|
93
|
+
"title_exhausted": "Keys",
|
|
94
|
+
"title_span_exhausted": "exhausted",
|
|
95
|
+
"obs_exhausted": "All keys for this campaign have already been distributed.",
|
|
96
|
+
"title_locked": "This campaign is",
|
|
97
|
+
"title_span_locked": "exclusive",
|
|
98
|
+
"obs_locked_exclusive": "Available only to higher tiers. Upgrade to take part.",
|
|
99
|
+
"obs_locked_early": "Your plan doesn't have access to this campaign yet. Upgrade to unlock.",
|
|
100
|
+
"obs_locked_tier": "Available only to {tier} plan subscribers or higher. Upgrade to take part.",
|
|
101
|
+
"title_level": "This campaign is for",
|
|
102
|
+
"title_span_level_official": "official streamers",
|
|
103
|
+
"title_span_level_affiliate": "affiliates",
|
|
104
|
+
"obs_level_official": "Available only to official MG streamers.",
|
|
105
|
+
"obs_level_affiliate": "Available only to affiliate creators (casting). Join the casting to take part."
|
|
106
|
+
},
|
|
107
|
+
"campaign": {
|
|
108
|
+
"available": "available",
|
|
109
|
+
"keys": "keys",
|
|
110
|
+
"start": "Start",
|
|
111
|
+
"end": "End",
|
|
112
|
+
"launch": "Launch",
|
|
113
|
+
"status": "Status",
|
|
114
|
+
"status_active": "Active",
|
|
115
|
+
"status_closed": "Closed",
|
|
116
|
+
"status_ending": "Ending soon",
|
|
117
|
+
"status_exhausted": "Keys exhausted",
|
|
118
|
+
"days": "days",
|
|
119
|
+
"hours": "hours",
|
|
120
|
+
"minutes": "min",
|
|
121
|
+
"seconds": "sec",
|
|
122
|
+
"days_hours": "days and hours",
|
|
123
|
+
"redeem": "Redeem key",
|
|
124
|
+
"actions": "Complementary actions",
|
|
125
|
+
"no_actions": "No actions configured",
|
|
126
|
+
"requirements": "Requirements",
|
|
127
|
+
"requirement": {
|
|
128
|
+
"all": "Open to all",
|
|
129
|
+
"official": "Official streamers",
|
|
130
|
+
"affiliate": "Affiliate or above"
|
|
131
|
+
},
|
|
132
|
+
"rp_label": "Redeemed by",
|
|
133
|
+
"who_redeem": "Who redeemed",
|
|
134
|
+
"created_by": "Published by",
|
|
135
|
+
"no_data": "Campaign not found"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"materials": {
|
|
139
|
+
"title": "Submit material",
|
|
140
|
+
"subtitle": "Send the link to your content about this game",
|
|
141
|
+
"back": "Back",
|
|
142
|
+
"link": "Content link",
|
|
143
|
+
"description": "Description (optional)",
|
|
144
|
+
"date": "Publication date",
|
|
145
|
+
"type": "Content type",
|
|
146
|
+
"type_stream": "Live stream",
|
|
147
|
+
"type_video": "Video",
|
|
148
|
+
"type_article": "Article / Review",
|
|
149
|
+
"type_web": "Website / Blog",
|
|
150
|
+
"type_print": "Screenshot / Print",
|
|
151
|
+
"required_fields": "Fill in all required fields",
|
|
152
|
+
"url_error": "Invalid URL",
|
|
153
|
+
"submit_error": "Error submitting. Try again.",
|
|
154
|
+
"sending": "Sending...",
|
|
155
|
+
"finish": "Submit",
|
|
156
|
+
"submitted_title": "Material submitted!",
|
|
157
|
+
"success_message": "Your material was sent for review. Thank you!",
|
|
158
|
+
"success_close": "Close"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
package/nuxt.config.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mundogamernetwork/shared-ui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.67",
|
|
4
4
|
"description": "Mundo Gamer Network - Shared UI Layer (Nuxt 3)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./nuxt.config.ts",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"assets",
|
|
9
9
|
"components",
|
|
10
10
|
"composables",
|
|
11
|
+
"locales",
|
|
11
12
|
"middleware",
|
|
12
13
|
"pages",
|
|
13
14
|
"plugins",
|
|
@@ -761,7 +761,7 @@ onMounted(async () => {
|
|
|
761
761
|
justify-content: space-between;
|
|
762
762
|
|
|
763
763
|
.btn {
|
|
764
|
-
background: #D297FF;
|
|
764
|
+
background: var(--key-accent, #D297FF);
|
|
765
765
|
display: flex;
|
|
766
766
|
height: 44px;
|
|
767
767
|
padding: 0 14px;
|
|
@@ -787,7 +787,7 @@ onMounted(async () => {
|
|
|
787
787
|
align-items: center;
|
|
788
788
|
gap: 6px;
|
|
789
789
|
font-size: 13px;
|
|
790
|
-
color: #D297FF;
|
|
790
|
+
color: var(--key-accent, #D297FF);
|
|
791
791
|
cursor: pointer;
|
|
792
792
|
text-decoration: none;
|
|
793
793
|
white-space: nowrap;
|
|
@@ -806,7 +806,7 @@ onMounted(async () => {
|
|
|
806
806
|
font-size: 14px;
|
|
807
807
|
font-weight: 600;
|
|
808
808
|
color: var(--card-article-title);
|
|
809
|
-
span { color: #d297ff; }
|
|
809
|
+
span { color: var(--key-accent, #d297ff); }
|
|
810
810
|
.yellow { color: #FFD600; }
|
|
811
811
|
.red { color: #ff4800; }
|
|
812
812
|
}
|
|
@@ -819,7 +819,7 @@ onMounted(async () => {
|
|
|
819
819
|
|
|
820
820
|
.progress {
|
|
821
821
|
height: 24px;
|
|
822
|
-
background-color: #d297ff;
|
|
822
|
+
background-color: var(--key-accent, #d297ff);
|
|
823
823
|
span {
|
|
824
824
|
position: absolute;
|
|
825
825
|
right: 5px;
|
|
@@ -835,7 +835,7 @@ onMounted(async () => {
|
|
|
835
835
|
.info {
|
|
836
836
|
font-size: 12px;
|
|
837
837
|
color: var(--secondary-info-fg);
|
|
838
|
-
i { color: #d297ff; }
|
|
838
|
+
i { color: var(--key-accent, #d297ff); }
|
|
839
839
|
.yellow { color: #FFD600; }
|
|
840
840
|
.red { color: #ff4800; }
|
|
841
841
|
}
|
|
@@ -882,7 +882,7 @@ onMounted(async () => {
|
|
|
882
882
|
padding: 4px 10px;
|
|
883
883
|
font-size: 12px;
|
|
884
884
|
font-weight: 600;
|
|
885
|
-
color: #D297FF;
|
|
885
|
+
color: var(--key-accent, #D297FF);
|
|
886
886
|
background: rgba(210, 151, 255, 0.12);
|
|
887
887
|
border: 1px solid rgba(210, 151, 255, 0.35);
|
|
888
888
|
i { font-size: 13px; }
|
|
@@ -981,7 +981,7 @@ onMounted(async () => {
|
|
|
981
981
|
gap: 6px;
|
|
982
982
|
background-color: var(--button-secondary-default-bg);
|
|
983
983
|
font-size: 28px;
|
|
984
|
-
color: #D297FF;
|
|
984
|
+
color: var(--key-accent, #D297FF);
|
|
985
985
|
font-weight: 700;
|
|
986
986
|
width: -webkit-fill-available;
|
|
987
987
|
span { font-size: 10px; color: var(--secondary-info-fg); font-weight: 400; }
|
|
@@ -1015,7 +1015,7 @@ onMounted(async () => {
|
|
|
1015
1015
|
width: -webkit-fill-available;
|
|
1016
1016
|
cursor: pointer;
|
|
1017
1017
|
&:hover, &.active {
|
|
1018
|
-
background-color: #D297FF;
|
|
1018
|
+
background-color: var(--key-accent, #D297FF);
|
|
1019
1019
|
color: #1C1C1C;
|
|
1020
1020
|
i { color: #1C1C1C; }
|
|
1021
1021
|
}
|
|
@@ -1060,7 +1060,7 @@ onMounted(async () => {
|
|
|
1060
1060
|
flex-shrink: 0;
|
|
1061
1061
|
border-radius: 100%;
|
|
1062
1062
|
text-align-last: center;
|
|
1063
|
-
i { color: #D297FF; }
|
|
1063
|
+
i { color: var(--key-accent, #D297FF); }
|
|
1064
1064
|
}
|
|
1065
1065
|
.texts {
|
|
1066
1066
|
display: flex;
|
|
@@ -1081,7 +1081,7 @@ onMounted(async () => {
|
|
|
1081
1081
|
width: 100%;
|
|
1082
1082
|
}
|
|
1083
1083
|
|
|
1084
|
-
.reward span { color: #D297FF; }
|
|
1084
|
+
.reward span { color: var(--key-accent, #D297FF); }
|
|
1085
1085
|
|
|
1086
1086
|
.data {
|
|
1087
1087
|
display: flex;
|
|
@@ -1114,7 +1114,7 @@ onMounted(async () => {
|
|
|
1114
1114
|
font-size: 12px;
|
|
1115
1115
|
color: var(--secondary-info-fg);
|
|
1116
1116
|
width: -webkit-fill-available;
|
|
1117
|
-
span { font-size: 16px; color: #D297FF; font-weight: 600; }
|
|
1117
|
+
span { font-size: 16px; color: var(--key-accent, #D297FF); font-weight: 600; }
|
|
1118
1118
|
}
|
|
1119
1119
|
}
|
|
1120
1120
|
|
|
@@ -108,6 +108,7 @@
|
|
|
108
108
|
class="img-content"
|
|
109
109
|
:class="{ unavailable: card.isExpired || (!card.isUpcoming && card.available_count < 1) }"
|
|
110
110
|
>
|
|
111
|
+
|
|
111
112
|
<img
|
|
112
113
|
:src="card.cover"
|
|
113
114
|
:alt="card.text"
|
|
@@ -180,19 +181,19 @@
|
|
|
180
181
|
</div>
|
|
181
182
|
</div>
|
|
182
183
|
</nuxt-link>
|
|
184
|
+
</div>
|
|
183
185
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
</div>
|
|
188
|
-
<div class="days" v-else></div>
|
|
189
|
-
<span>
|
|
190
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none">
|
|
191
|
-
<path d="M13.3333 4.1112L12.8666 3.64453L11.9333 4.57786L10.9333 3.64453L8.33329 4.1112L2.66663 9.77786L7.19996 14.3112L12.8666 8.64453L13.3333 6.04453L12.4 5.1112L13.3333 4.1112ZM12.6 6.24453L12.2666 8.3112L7.19996 13.3779L3.59996 9.77786L8.66663 4.7112L10.7333 4.3112L11.4666 5.04453L11 5.5112L10.5333 5.04453L9.99996 5.57786L11.4 6.97786L11.8666 6.5112L11.4 6.04453L11.8666 5.57786L12.6 6.24453Z" fill="#D297FF" />
|
|
192
|
-
</svg>
|
|
193
|
-
{{ card.type }}
|
|
194
|
-
</span>
|
|
186
|
+
<div class="title">
|
|
187
|
+
<div class="days" v-if="card.time > 0 && card.user_can_access">
|
|
188
|
+
<span>{{ card.time }}</span> {{ $t("keys.campaigns.days") }}
|
|
195
189
|
</div>
|
|
190
|
+
<div class="days" v-else></div>
|
|
191
|
+
<span>
|
|
192
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none">
|
|
193
|
+
<path d="M13.3333 4.1112L12.8666 3.64453L11.9333 4.57786L10.9333 3.64453L8.33329 4.1112L2.66663 9.77786L7.19996 14.3112L12.8666 8.64453L13.3333 6.04453L12.4 5.1112L13.3333 4.1112ZM12.6 6.24453L12.2666 8.3112L7.19996 13.3779L3.59996 9.77786L8.66663 4.7112L10.7333 4.3112L11.4666 5.04453L11 5.5112L10.5333 5.04453L9.99996 5.57786L11.4 6.97786L11.8666 6.5112L11.4 6.04453L11.8666 5.57786L12.6 6.24453Z" fill="var(--key-accent, #D297FF)" />
|
|
194
|
+
</svg>
|
|
195
|
+
{{ card.type }}
|
|
196
|
+
</span>
|
|
196
197
|
</div>
|
|
197
198
|
|
|
198
199
|
<div class="text">
|
|
@@ -736,7 +737,7 @@ onUnmounted(() => {
|
|
|
736
737
|
display: inline-block;
|
|
737
738
|
width: 20px;
|
|
738
739
|
height: 20px;
|
|
739
|
-
border: 2px solid #d297ff;
|
|
740
|
+
border: 2px solid var(--key-accent, #d297ff);
|
|
740
741
|
border-radius: 50%;
|
|
741
742
|
border-top-color: #fff;
|
|
742
743
|
animation: spin 1s ease-in-out infinite;
|
|
@@ -774,7 +775,7 @@ onUnmounted(() => {
|
|
|
774
775
|
position: absolute;
|
|
775
776
|
bottom: 8px;
|
|
776
777
|
right: 8px;
|
|
777
|
-
background: rgba(107, 21, 172, 0.9);
|
|
778
|
+
background: var(--key-accent-dark, rgba(107, 21, 172, 0.9));
|
|
778
779
|
color: #fff;
|
|
779
780
|
font-size: 12px;
|
|
780
781
|
font-weight: 600;
|
|
@@ -813,7 +814,7 @@ onUnmounted(() => {
|
|
|
813
814
|
position: absolute;
|
|
814
815
|
top: 8px;
|
|
815
816
|
left: 8px;
|
|
816
|
-
background: rgba(107, 21, 172, 0.9);
|
|
817
|
+
background: var(--key-accent-dark, rgba(107, 21, 172, 0.9));
|
|
817
818
|
color: #fff;
|
|
818
819
|
font-size: 10px;
|
|
819
820
|
font-weight: 700;
|
|
@@ -841,9 +842,9 @@ onUnmounted(() => {
|
|
|
841
842
|
padding: 12px;
|
|
842
843
|
text-align: center;
|
|
843
844
|
|
|
844
|
-
i { font-size: 24px; color: #D297FF; }
|
|
845
|
+
i { font-size: 24px; color: var(--key-accent, #D297FF); }
|
|
845
846
|
.lock-label { color: #fff; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
|
|
846
|
-
.lock-countdown { color: #D297FF; font-size: 12px; font-weight: 600; }
|
|
847
|
+
.lock-countdown { color: var(--key-accent, #D297FF); font-size: 12px; font-weight: 600; }
|
|
847
848
|
.lock-cta { color: #EAB308; font-size: 11px; font-weight: 600; }
|
|
848
849
|
}
|
|
849
850
|
|
|
@@ -951,7 +952,7 @@ onUnmounted(() => {
|
|
|
951
952
|
cursor: pointer;
|
|
952
953
|
}
|
|
953
954
|
|
|
954
|
-
span.active { background: #6b15ac; }
|
|
955
|
+
span.active { background: var(--key-accent, #6b15ac); }
|
|
955
956
|
}
|
|
956
957
|
}
|
|
957
958
|
|
|
@@ -996,7 +997,7 @@ onUnmounted(() => {
|
|
|
996
997
|
}
|
|
997
998
|
|
|
998
999
|
.header-left .btn.tertiary.active {
|
|
999
|
-
background-color: #D297FF;
|
|
1000
|
+
background-color: var(--key-accent, #D297FF);
|
|
1000
1001
|
color: #1C1C1C;
|
|
1001
1002
|
}
|
|
1002
1003
|
|
|
@@ -1015,7 +1016,7 @@ onUnmounted(() => {
|
|
|
1015
1016
|
color: var(--title-fg);
|
|
1016
1017
|
}
|
|
1017
1018
|
|
|
1018
|
-
&:focus { outline: none; border-color: #D297FF; }
|
|
1019
|
+
&:focus { outline: none; border-color: var(--key-accent, #D297FF); }
|
|
1019
1020
|
}
|
|
1020
1021
|
|
|
1021
1022
|
.filter-divider {
|
|
@@ -1082,40 +1083,12 @@ onUnmounted(() => {
|
|
|
1082
1083
|
|
|
1083
1084
|
.card-header {
|
|
1084
1085
|
display: flex;
|
|
1085
|
-
|
|
1086
|
-
|
|
1086
|
+
flex-direction: column;
|
|
1087
|
+
align-items: stretch;
|
|
1087
1088
|
border: 0;
|
|
1088
1089
|
padding: 0;
|
|
1089
1090
|
background-color: transparent;
|
|
1090
1091
|
|
|
1091
|
-
.title {
|
|
1092
|
-
display: flex;
|
|
1093
|
-
padding: 8px 16px;
|
|
1094
|
-
align-items: center;
|
|
1095
|
-
position: absolute;
|
|
1096
|
-
background: rgba(13, 13, 13, 0.9);
|
|
1097
|
-
top: 0;
|
|
1098
|
-
width: 100%;
|
|
1099
|
-
justify-content: space-between;
|
|
1100
|
-
|
|
1101
|
-
.days {
|
|
1102
|
-
font-size: 12px;
|
|
1103
|
-
color: var(--title-fg);
|
|
1104
|
-
display: flex;
|
|
1105
|
-
align-items: center;
|
|
1106
|
-
gap: 4px;
|
|
1107
|
-
span { color: #d297ff; font-size: 16px; font-weight: 600; }
|
|
1108
|
-
}
|
|
1109
|
-
|
|
1110
|
-
span {
|
|
1111
|
-
font-size: 12px;
|
|
1112
|
-
color: var(--secondary-info-fg);
|
|
1113
|
-
display: flex;
|
|
1114
|
-
align-items: center;
|
|
1115
|
-
gap: 4px;
|
|
1116
|
-
}
|
|
1117
|
-
}
|
|
1118
|
-
|
|
1119
1092
|
a {
|
|
1120
1093
|
width: 100%;
|
|
1121
1094
|
.img-content {
|
|
@@ -1129,6 +1102,32 @@ onUnmounted(() => {
|
|
|
1129
1102
|
}
|
|
1130
1103
|
}
|
|
1131
1104
|
|
|
1105
|
+
.title {
|
|
1106
|
+
display: flex;
|
|
1107
|
+
padding: 8px 16px;
|
|
1108
|
+
align-items: center;
|
|
1109
|
+
background: rgba(13, 13, 13, 0.9);
|
|
1110
|
+
width: 100%;
|
|
1111
|
+
justify-content: space-between;
|
|
1112
|
+
|
|
1113
|
+
.days {
|
|
1114
|
+
font-size: 12px;
|
|
1115
|
+
color: var(--title-fg);
|
|
1116
|
+
display: flex;
|
|
1117
|
+
align-items: center;
|
|
1118
|
+
gap: 4px;
|
|
1119
|
+
span { color: var(--key-accent, #d297ff); font-size: 16px; font-weight: 600; }
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
span {
|
|
1123
|
+
font-size: 12px;
|
|
1124
|
+
color: var(--secondary-info-fg);
|
|
1125
|
+
display: flex;
|
|
1126
|
+
align-items: center;
|
|
1127
|
+
gap: 4px;
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1132
1131
|
.text {
|
|
1133
1132
|
color: var(--title-fg);
|
|
1134
1133
|
font-size: 16px;
|
|
@@ -1169,7 +1168,7 @@ onUnmounted(() => {
|
|
|
1169
1168
|
justify-content: center;
|
|
1170
1169
|
cursor: pointer;
|
|
1171
1170
|
flex-shrink: 0;
|
|
1172
|
-
&:hover { border-color: #D297FF; color: #D297FF; }
|
|
1171
|
+
&:hover { border-color: var(--key-accent, #D297FF); color: var(--key-accent, #D297FF); }
|
|
1173
1172
|
i { font-size: 14px; }
|
|
1174
1173
|
}
|
|
1175
1174
|
}
|
|
@@ -1188,7 +1187,7 @@ onUnmounted(() => {
|
|
|
1188
1187
|
font-size: 12px;
|
|
1189
1188
|
color: var(--title-fg);
|
|
1190
1189
|
font-weight: 400;
|
|
1191
|
-
span { color: #d297ff; }
|
|
1190
|
+
span { color: var(--key-accent, #d297ff); }
|
|
1192
1191
|
}
|
|
1193
1192
|
}
|
|
1194
1193
|
}
|
|
@@ -181,7 +181,6 @@ useSeoMeta({
|
|
|
181
181
|
<img v-if="kit.cover_image_url" class="kit-cover-poster" :src="kit.cover_image_url" :alt="kit.name" />
|
|
182
182
|
<div class="kit-cover-text">
|
|
183
183
|
<span v-if="kit.release_status" class="kit-eyebrow">{{ String(kit.release_status).replace(/_/g, ' ') }}</span>
|
|
184
|
-
<img v-if="kit.logo_url" class="kit-cover-logo-img" :src="kit.logo_url" :alt="kit.name" />
|
|
185
184
|
<h1 class="kit-cover-title">{{ kit.name }}</h1>
|
|
186
185
|
<p v-if="kit.tagline" class="kit-tagline">{{ kit.tagline }}</p>
|
|
187
186
|
<p v-if="kit.developer" class="kit-kicker">{{ kit.developer }}</p>
|
package/plugins/auth.client.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
export default defineNuxtPlugin({
|
|
2
2
|
name: "shared-ui-auth",
|
|
3
|
-
|
|
4
|
-
async setup() {
|
|
3
|
+
async setup(nuxtApp) {
|
|
5
4
|
try {
|
|
6
|
-
|
|
5
|
+
// Pinia must be installed first. Resolve it from nuxtApp and bail out
|
|
6
|
+
// if it isn't ready yet (mirrors middleware/auth.global.ts). Running
|
|
7
|
+
// with enforce:"pre" used to execute this before @pinia/nuxt, so
|
|
8
|
+
// useAuthStore() hit an undefined pinia (`reading '_s'`).
|
|
9
|
+
const pinia = (nuxtApp as any).$pinia;
|
|
10
|
+
if (!pinia) return;
|
|
11
|
+
|
|
12
|
+
const authStore = useAuthStore(pinia);
|
|
7
13
|
|
|
8
14
|
if (!authStore.signedIn) {
|
|
9
15
|
await authStore.getUser();
|
|
@@ -209,6 +209,7 @@ export const fetchCampaigns = (
|
|
|
209
209
|
...(params.filter || {}),
|
|
210
210
|
include_early_access_locked: true,
|
|
211
211
|
mg_platform: mgPlatform,
|
|
212
|
+
status: 1,
|
|
212
213
|
},
|
|
213
214
|
page: params.page || 1,
|
|
214
215
|
per_page: params.per_page || 15,
|
|
@@ -233,6 +234,7 @@ export const fetchFeaturedCampaigns = (mgPlatform = "MGTV") => {
|
|
|
233
234
|
filter: {
|
|
234
235
|
is_public: true,
|
|
235
236
|
status: 1,
|
|
237
|
+
is_featured: true,
|
|
236
238
|
mg_platform: mgPlatform,
|
|
237
239
|
},
|
|
238
240
|
sort: "id",
|