Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
cc23637
feat: start on tax compliance
IMB11 Aug 17, 2025
5f60032
feat: avarala1099 composable
IMB11 Aug 17, 2025
c0dd790
fix: shouldShow should be managed on the page itself
IMB11 Aug 17, 2025
983c3d6
refactor: move show logic to revenue page
IMB11 Aug 17, 2025
7429340
feat: security practices rather than info
IMB11 Aug 17, 2025
368d79a
feat: withdraw page lock
IMB11 Aug 18, 2025
c4bfd31
Merge branch 'main' into cal/dev-233
IMB11 Aug 19, 2025
443b777
fix: empty modal bug & lint issues
IMB11 Aug 19, 2025
76d9f62
feat: hide behind feature flag
IMB11 Aug 19, 2025
551c2bd
Use standard admonition components, make casing consistent
Prospector Aug 19, 2025
f9185df
modal title
Prospector Aug 19, 2025
58290aa
lint
Prospector Aug 19, 2025
519a0ce
feat: withdrawal check
IMB11 Aug 19, 2025
77889ec
feat: tax cap on withdrawals warning
IMB11 Aug 19, 2025
ae173ec
Merge branch 'main' into cal/dev-233
IMB11 Aug 19, 2025
745b326
Merge branch 'main' into cal/dev-233
IMB11 Aug 27, 2025
a1b30a7
feat: start on revenue page overhaul
IMB11 Aug 27, 2025
25a5bb3
feat: segment generation for bar
IMB11 Aug 28, 2025
8298364
feat: tooltips and links
IMB11 Aug 28, 2025
ba8bf6a
fix: tooltip border
IMB11 Aug 28, 2025
1852aba
Merge branch 'main' into cal/dev-233
IMB11 Aug 29, 2025
4baec59
feat: finish initial layout, start on withdraw modal
IMB11 Aug 29, 2025
f78fcb0
feat: start on withdrawal limit stage
IMB11 Aug 29, 2025
58abb39
Merge branch 'main' into cal/dev-233
IMB11 Sep 3, 2025
87ad59b
feat: shade support for primary colors
IMB11 Sep 3, 2025
2fa4785
feat: start on withdraw details stage
IMB11 Sep 3, 2025
f10ae6a
fix: convert swatches to hex
IMB11 Sep 4, 2025
5f03e67
feat: payout method/region dropdown temporarily using multiselect
IMB11 Sep 4, 2025
c879cb3
feat: fix modal open issues and use teleport dropdowns
IMB11 Sep 5, 2025
c2faa56
feat: hide transactions section if there are no transactions
IMB11 Sep 5, 2025
1865120
refactor: NavStack surfaces
IMB11 Sep 6, 2025
eee63e4
Merge branch 'main' into cal/dev-233
IMB11 Sep 8, 2025
03ea910
feat: new dropdown component
IMB11 Sep 8, 2025
38ada32
feat: remove teleport dropdown modal in favour of new combobox component
IMB11 Sep 12, 2025
e3a0eae
Merge branch 'main' into cal/dev-233
IMB11 Sep 12, 2025
c4c3a57
fix: lint
IMB11 Sep 12, 2025
c1a9f8e
refactor: dashboard sidebar layout
IMB11 Sep 12, 2025
2efdf21
feat: cleanup
IMB11 Sep 12, 2025
32ff787
fix: niche bugs
IMB11 Sep 12, 2025
63b3fb1
fix: ComboBox styling
IMB11 Sep 12, 2025
20085d1
feat: first part of qa
IMB11 Sep 12, 2025
07c6c4b
feat: animate flash rather than tooltip
IMB11 Sep 12, 2025
ae336bd
fix: lint
IMB11 Sep 12, 2025
7473d0b
feat: qa border gradient
IMB11 Sep 13, 2025
b033be4
fix: seg hover flashes
IMB11 Sep 13, 2025
960a87c
feat: i18n
IMB11 Sep 13, 2025
d1159b5
feat: i18n and final QA
IMB11 Sep 13, 2025
39aced5
fix: lint
IMB11 Sep 13, 2025
6f4423b
feat: QA
IMB11 Sep 14, 2025
8c2e684
fix: lint
IMB11 Sep 14, 2025
bbeabad
Merge branch 'main' into cal/dev-233
IMB11 Sep 15, 2025
ec216c5
fix: merge conflicts
IMB11 Sep 15, 2025
25e33f9
fix: intl
IMB11 Sep 15, 2025
77e1b74
fix: blue hover
IMB11 Sep 15, 2025
9f69a74
fix: transfers page
IMB11 Sep 15, 2025
c015c7e
feat: surface variables & gradients
IMB11 Sep 23, 2025
5df2668
feat: text vars
IMB11 Sep 24, 2025
c324d56
fix: lint
IMB11 Sep 24, 2025
7ac4a3a
Merge branch 'main' into cal/surfaces-and-shades
IMB11 Sep 24, 2025
1abdd3e
Merge remote-tracking branch 'origin/main' into cal/dev-233
IMB11 Sep 24, 2025
8c0e0b7
fix: intl
IMB11 Sep 24, 2025
a1ebbb2
Merge remote-tracking branch 'origin/cal/surfaces-and-shades' into ca…
IMB11 Sep 24, 2025
e408e5f
feat: stages
IMB11 Sep 25, 2025
39c2132
Merge remote-tracking branch 'origin/main' into cal/dev-233
IMB11 Oct 9, 2025
2418538
fix: lint
IMB11 Oct 9, 2025
d00aeee
feat: region selection
IMB11 Oct 9, 2025
14941ff
feat: method selection btns
IMB11 Oct 10, 2025
4630418
fix: flex col on transactions
IMB11 Oct 10, 2025
6f26fb9
feat: hook up method selection to ctx
IMB11 Oct 10, 2025
e693e8f
feat: muralpay kyc stage info
IMB11 Oct 10, 2025
1207254
feat: progress
IMB11 Oct 13, 2025
717d99b
fix: broken tax form stage logic
IMB11 Oct 14, 2025
5ef8957
polish: tax form stage and method selection stage layout
IMB11 Oct 14, 2025
978d770
polish: muralpay qa
IMB11 Oct 15, 2025
6275113
refactor: clean up combobox component
IMB11 Oct 15, 2025
5135ed0
polish: change from critical -> warning admonition in MuralpayDetails…
IMB11 Oct 16, 2025
c5ebbab
polish: clean up transaction component & page
IMB11 Oct 17, 2025
f166d17
polish: navbar qa, text color-contrast in chips type buttonstyled, mb…
IMB11 Oct 17, 2025
e89d177
fix: incorrectly using available balance as tax form withdraw limit a…
IMB11 Oct 17, 2025
a094b28
polish: combobox component
IMB11 Oct 17, 2025
76ad4ca
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 18, 2025
acb8255
polish: fix broken scroll logic using a composable & web:fix
IMB11 Oct 19, 2025
8fbcf5c
fix: lint
IMB11 Oct 19, 2025
fb3e7e8
polish: various QA fixes
IMB11 Oct 19, 2025
b85fea2
feat: hook up with backend (wip)
IMB11 Oct 19, 2025
c169fa6
feat: draft muralpay rails dynamic logic
IMB11 Oct 19, 2025
a5bd6ed
polish: modify rails to support backend changes
IMB11 Oct 20, 2025
3adc69e
Mural Pay multiple methods when fetching
aecsocket Oct 20, 2025
583cdb4
Don't send supported_countries to frontend
aecsocket Oct 20, 2025
9dd2f82
feat: fees & methods endpoint hookup
IMB11 Oct 21, 2025
30ba151
chore: remove duplicates fix
IMB11 Oct 21, 2025
02a2b56
polish: qa changes + figma match
IMB11 Oct 21, 2025
5f34af7
Merge branch 'boris/muralpay' into cal/dev-233
aecsocket Oct 21, 2025
8818fdd
polish: i18n and better document type dropdown -> id input labels
IMB11 Oct 21, 2025
999b979
feat: tremendous
IMB11 Oct 21, 2025
fdda74a
fix: lint & i18n
IMB11 Oct 21, 2025
3bebcf7
feat: reintroduce tin mismatch logic to index.vue
IMB11 Oct 21, 2025
2410213
polish: qa
IMB11 Oct 21, 2025
2e57ee1
fix: i18n
IMB11 Oct 21, 2025
ace33d8
feat: remove teleport dropdown menu - combobox should be used
IMB11 Oct 21, 2025
ff85b38
fix: lint
IMB11 Oct 21, 2025
671aee5
fix: jsdoc
IMB11 Oct 21, 2025
03775f5
feat: checkbox for reward program terms
IMB11 Oct 21, 2025
7e5e689
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 22, 2025
47f23d9
polish: qa changes
IMB11 Oct 22, 2025
4532d78
feat: i18n pass
IMB11 Oct 22, 2025
b1c0622
feat: deduplicate methods endpoint & fix i18n issues
IMB11 Oct 22, 2025
1e08380
chore: deduplicate i18n strings into common-messages.ts
IMB11 Oct 22, 2025
d623667
fix: lint
IMB11 Oct 22, 2025
03f67fe
fix: i18n
IMB11 Oct 22, 2025
81e2698
feat: estimates
IMB11 Oct 22, 2025
008d319
polish: more QA
IMB11 Oct 22, 2025
fa0f70f
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 23, 2025
6ac3284
feat: withdraw endpoint impl & internals refactor
IMB11 Oct 23, 2025
f0d0071
Add more details to Tremendous errors
aecsocket Oct 23, 2025
7ec6648
feat: completion stage
IMB11 Oct 23, 2025
e2bf7cc
feat: transactions page match figma
IMB11 Oct 23, 2025
ecc59e6
fix: i18n
IMB11 Oct 23, 2025
021d3fb
polish: QA changes
IMB11 Oct 23, 2025
ba700aa
polish: qa
IMB11 Oct 23, 2025
9bfc608
polish: autofill and requirements checks
IMB11 Oct 23, 2025
9146c04
fix: i18n + lint
IMB11 Oct 23, 2025
02340cd
fix: fiat rail fees
IMB11 Oct 23, 2025
03290bf
polish: move scroll fade stuff into NewModal rather than just Creator…
IMB11 Oct 24, 2025
dcfa72b
feat: simplify action btn logic & tax form error
IMB11 Oct 24, 2025
7c7bf9d
fix: tax -> Tax form
IMB11 Oct 24, 2025
fa9b51a
feat: mobile responsiveness fixes for modal
IMB11 Oct 24, 2025
4f4d056
fix: responsiveness issues
IMB11 Oct 24, 2025
9566014
feat: navstack responsiveness
IMB11 Oct 24, 2025
84690ec
fix: responsiveness
IMB11 Oct 24, 2025
90eace8
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 24, 2025
cec18b8
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 24, 2025
f45e3b9
fix: generated state cleanup & bank details input
IMB11 Oct 24, 2025
6b19bed
fix: lint & i18n
IMB11 Oct 24, 2025
dfdff17
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 24, 2025
3daf318
polish: qa
IMB11 Oct 25, 2025
f512d1d
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 25, 2025
efb64ed
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 25, 2025
f9c31dd
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 25, 2025
b9a24d1
feat: legacy paypal/venmo stage
IMB11 Oct 25, 2025
4f55629
polish: reset amount on back qa
IMB11 Oct 25, 2025
53f8a55
revert: navstack mr changes
IMB11 Oct 25, 2025
17b9c20
polish: loading indicator on method selection stage
IMB11 Oct 25, 2025
75eb0a3
fix: paypal modal doesnt reopen after auth
IMB11 Oct 25, 2025
4ff944e
fix: lint & i18n
IMB11 Oct 25, 2025
b40df67
fix: paypal flow
IMB11 Oct 25, 2025
d8ab93a
polish: qa changes
IMB11 Oct 26, 2025
c0a0630
fix: gitignore
IMB11 Oct 26, 2025
e3c7515
polish: qa fixes
IMB11 Oct 26, 2025
97f328c
fix: payouts_available in payouts.rs
IMB11 Oct 26, 2025
bec589b
fix: bug when limit is zero
IMB11 Oct 26, 2025
f543b31
polish: qa changes
IMB11 Oct 26, 2025
e2b796f
fix: qa stuff & muralpay sub-division fix
IMB11 Oct 26, 2025
995cdc8
polish: qa & currency support for paypal tremendous
IMB11 Oct 27, 2025
50394b2
Merge remote-tracking branch 'origin/boris/muralpay' into cal/dev-233
IMB11 Oct 27, 2025
4e63bb2
polish: fx qa
IMB11 Oct 27, 2025
ae07560
feat: demo mode flag
IMB11 Oct 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/instructions/i18n-convert.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Please follow these rules precisely:
1. Identify translatable strings

- Scan the <template> for all user-visible strings (inner text, alt attributes, placeholders, button labels, etc.). Do not extract dynamic expressions (like {{ user.name }}) or HTML tags. Only extract static human-readable text.
- There may be strings within the <script> block, e.g dropdown option labels, notifications etc.

2. Create message definitions

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,6 @@ app-playground-data/*

.astro
.claude

# labrinth demo fixtures
apps/labrinth/fixtures/demo
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import {
ButtonStyled,
Checkbox,
Chips,
Combobox,
injectNotificationManager,
TeleportDropdownMenu,
} from '@modrinth/ui'
import {
formatCategory,
Expand Down Expand Up @@ -158,6 +158,21 @@ const selectableGameVersionNumbers = computed(() => {
.map((x) => x.version)
})

const gameVersionOptions = computed(() =>
(selectableGameVersionNumbers.value ?? []).map((v) => ({ value: v, label: v })),
)

const loaderVersionOptions = computed(() =>
(selectableLoaderVersions.value ?? []).map((opt, index) => ({ value: index, label: opt.id })),
)

const loaderVersionLabel = computed(() => {
const idx = loaderVersionIndex.value
return idx >= 0 && selectableLoaderVersions.value
? selectableLoaderVersions.value[idx]?.id
: 'Select version'
})

const selectableLoaderVersions: ComputedRef<ManifestLoaderVersion[] | undefined> = computed(() => {
if (gameVersion.value) {
if (loader.value === 'fabric') {
Expand Down Expand Up @@ -647,11 +662,11 @@ const messages = defineMessages({
{{ formatMessage(messages.gameVersion) }}
</h2>
<div class="flex flex-wrap mt-2 gap-2">
<TeleportDropdownMenu
<Combobox
v-if="selectableGameVersionNumbers !== undefined"
v-model="gameVersion"
:options="selectableGameVersionNumbers"
name="Game Version Dropdown"
:options="gameVersionOptions"
:display-value="gameVersion || formatMessage(messages.unknownVersion)"
/>
<Checkbox
v-if="hasSnapshots"
Expand All @@ -663,14 +678,13 @@ const messages = defineMessages({
<h2 class="m-0 mt-4 text-lg font-extrabold text-contrast block">
{{ formatMessage(messages.loaderVersion, { loader: formatCategory(loader) }) }}
</h2>
<TeleportDropdownMenu
<Combobox
v-if="selectableLoaderVersions"
:model-value="selectableLoaderVersions[loaderVersionIndex]"
:options="selectableLoaderVersions"
:display-name="(option: ManifestLoaderVersion) => option?.id"
v-model="loaderVersionIndex"
:options="loaderVersionOptions"
:display-value="loaderVersionLabel"
name="Version selector"
class="mt-2"
@change="(value) => (loaderVersionIndex = value.index)"
/>
<div v-else class="mt-2 text-brand-red flex gap-2 items-center">
<IssuesIcon />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { TeleportDropdownMenu, ThemeSelector, Toggle } from '@modrinth/ui'
import { Combobox, ThemeSelector, Toggle } from '@modrinth/ui'
import { ref, watch } from 'vue'

import { get, set } from '@/helpers/settings.ts'
Expand Down Expand Up @@ -50,7 +50,7 @@ watch(
:model-value="themeStore.advancedRendering"
@update:model-value="
(e) => {
themeStore.advancedRendering = e
themeStore.advancedRendering = !!e
settings.advanced_rendering = themeStore.advancedRendering
}
"
Expand Down Expand Up @@ -86,12 +86,13 @@ watch(
<h2 class="m-0 text-lg font-extrabold text-contrast">Default landing page</h2>
<p class="m-0 mt-1">Change the page to which the launcher opens on.</p>
</div>
<TeleportDropdownMenu
<Combobox
id="opening-page"
v-model="settings.default_page"
name="Opening page dropdown"
class="w-40"
:options="['Home', 'Library']"
:options="['Home', 'Library'].map((v) => ({ value: v, label: v }))"
:display-value="settings.default_page ?? 'Select an option'"
/>
</div>

Expand Down Expand Up @@ -122,7 +123,7 @@ watch(
:model-value="settings.toggle_sidebar"
@update:model-value="
(e) => {
settings.toggle_sidebar = e
settings.toggle_sidebar = !!e
themeStore.toggleSidebar = settings.toggle_sidebar
}
"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { TeleportDropdownMenu } from '@modrinth/ui'
import { Combobox } from '@modrinth/ui'
import { defineMessages, type MessageDescriptor, useVIntl } from '@vintl/vintl'

import type { ServerPackStatus } from '@/helpers/worlds.ts'
Expand Down Expand Up @@ -74,12 +74,19 @@ defineExpose({ resourcePackOptions })
{{ formatMessage(messages.resourcePack) }}
</h2>
<div>
<TeleportDropdownMenu
<Combobox
v-model="resourcePack"
:options="resourcePackOptions"
:options="
resourcePackOptions.map((o) => ({
value: o,
label: formatMessage(resourcePackOptionMessages[o]),
}))
"
name="Server resource pack"
:display-name="
(option: ServerPackStatus) => formatMessage(resourcePackOptionMessages[option])
:display-value="
resourcePack
? formatMessage(resourcePackOptionMessages[resourcePack])
: 'Select an option'
"
/>
</div>
Expand Down
84 changes: 70 additions & 14 deletions apps/frontend/nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,16 @@ import { promises as fs } from 'fs'
import { globIterate } from 'glob'
import { defineNuxtConfig } from 'nuxt/config'
import { $fetch } from 'ofetch'
import Papa from 'papaparse'
import { basename, relative, resolve } from 'pathe'
import svgLoader from 'vite-svg-loader'

import type { GeneratedState } from './src/composables/generated'

const STAGING_API_URL = 'https://staging-api.modrinth.com/v2/'
// ISO 3166 data from https://github.com/ipregistry/iso3166
// Licensed under CC BY-SA 4.0
const ISO3166_REPO = 'https://raw.githubusercontent.com/ipregistry/iso3166/master'

const preloadedFonts = [
'inter/Inter-Regular.woff2',
Expand Down Expand Up @@ -133,20 +139,7 @@ export default defineNuxtConfig({
// 30 minutes
const TTL = 30 * 60 * 1000

let state: {
lastGenerated?: string
apiUrl?: string
categories?: any[]
loaders?: any[]
gameVersions?: any[]
donationPlatforms?: any[]
reportTypes?: any[]
homePageProjects?: any[]
homePageSearch?: any[]
homePageNotifs?: any[]
products?: any[]
errors?: number[]
} = {}
let state: Partial<GeneratedState> = {}

try {
state = JSON.parse(await fs.readFile('./src/generated/state.json', 'utf8'))
Expand Down Expand Up @@ -200,6 +193,9 @@ export default defineNuxtConfig({
homePageSearch,
homePageNotifs,
products,
muralBankDetails,
countriesCSV,
subdivisionsCSV,
] = await Promise.all([
$fetch(`${API_URL}tag/category`, headers).catch((err) => handleFetchError(err, [])),
$fetch(`${API_URL}tag/loader`, headers).catch((err) => handleFetchError(err, [])),
Expand All @@ -220,8 +216,53 @@ export default defineNuxtConfig({
$fetch(`${API_URL.replace('/v2/', '/_internal/')}billing/products`, headers).catch((err) =>
handleFetchError(err, []),
),
$fetch(`${API_URL.replace('/v2/', '/_internal/')}mural/bank-details`, headers).catch(
(err) => handleFetchError(err, null),
),
$fetch<string>(`${ISO3166_REPO}/countries.csv`, {
...headers,
responseType: 'text',
}).catch((err) => handleFetchError(err, '')),
$fetch<string>(`${ISO3166_REPO}/subdivisions.csv`, {
...headers,
responseType: 'text',
}).catch((err) => handleFetchError(err, '')),
])

const countriesData = Papa.parse(countriesCSV, {
header: true,
skipEmptyLines: true,
transformHeader: (header) => (header.startsWith('#') ? header.slice(1) : header),
}).data
const subdivisionsData = Papa.parse(subdivisionsCSV, {
header: true,
skipEmptyLines: true,
transformHeader: (header) => (header.startsWith('#') ? header.slice(1) : header),
}).data

const subdivisionsByCountry = (subdivisionsData as any[]).reduce(
(acc, sub) => {
const countryCode = sub.country_code_alpha2

if (!countryCode || typeof countryCode !== 'string' || countryCode.trim() === '') {
return acc
}

if (!acc[countryCode]) acc[countryCode] = []

acc[countryCode].push({
code: sub['subdivision_code_iso3166-2'],
name: sub.subdivision_name,
localVariant: sub.localVariant || null,
category: sub.category,
parent: sub.parent_subdivision || null,
language: sub.language_code,
})
return acc
},
{} as Record<string, any[]>,
)

state.categories = categories
state.loaders = loaders
state.gameVersions = gameVersions
Expand All @@ -231,6 +272,15 @@ export default defineNuxtConfig({
state.homePageSearch = homePageSearch
state.homePageNotifs = homePageNotifs
state.products = products
state.muralBankDetails = muralBankDetails.bankDetails
state.countries = (countriesData as any[]).map((c) => ({
alpha2: c.country_code_alpha2,
alpha3: c.country_code_alpha3,
numeric: c.numeric_code,
nameShort: c.name_short,
nameLong: c.name_long,
}))
state.subdivisions = subdivisionsByCountry
state.errors = [...caughtErrorCodes]

await fs.writeFile('./src/generated/state.json', JSON.stringify(state))
Expand Down Expand Up @@ -475,6 +525,12 @@ export default defineNuxtConfig({
'Critical-CH': 'Sec-CH-Prefers-Color-Scheme',
},
},
'/dashboard/revenue/withdraw': {
redirect: {
to: '/dashboard/revenue',
statusCode: 410,
},
},
'/email/**': {
redirect: '/_internal/templates/email/**',
},
Expand Down
3 changes: 2 additions & 1 deletion apps/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"@nuxt/devtools": "^1.3.3",
"@types/dompurify": "^3.0.5",
"@types/node": "^20.1.0",
"@types/papaparse": "^5.3.15",
"@vintl/compact-number": "^2.0.5",
"@vintl/how-ago": "^3.0.1",
"@vintl/nuxt": "^1.9.2",
Expand Down Expand Up @@ -56,10 +57,10 @@
"floating-vue": "^5.2.2",
"fuse.js": "^6.6.2",
"highlight.js": "^11.7.0",
"iso-3166-1": "^2.1.1",
"js-yaml": "^4.1.0",
"jszip": "^3.10.1",
"markdown-it": "14.1.0",
"papaparse": "^5.4.1",
"pathe": "^1.1.2",
"pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^4.4.1",
Expand Down
5 changes: 4 additions & 1 deletion apps/frontend/src/components/brand/TextLogo.vue
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,15 @@
</svg>
</template>

<script setup>
<script setup lang="ts">
const loading = useLoading()

const config = useRuntimeConfig()
const flags = useFeatureFlags()

const api = computed(() => {
if (flags.value.demoMode) return 'prod'

const apiUrl = config.public.apiBaseUrl
if (apiUrl.startsWith('https://api.modrinth.com')) {
return 'prod'
Expand Down
2 changes: 1 addition & 1 deletion apps/frontend/src/components/ui/EnvironmentIndicator.vue
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ defineProps({
},
})

const tags = useTags()
const tags = useGeneratedState()
</script>
<style lang="scss" scoped>
.environment {
Expand Down
Loading
Loading