Files
modrinth/apps/frontend/src/providers/setup.ts
T
Calum H.andtdgao 3e07267e10 feat: preferences syncing frontend (#7192)
* feat: prefs frontend

* fix: DI issue

* fix: lint

* feat: appearance settings cleanup + fix settings, remove pinia

* fix: sync btn when logged out

* fix: prepr

* fix: sidebar issue

* feat: language coverage + cleanup

* feat: cleanup lang settings

* fix: fmt

* fix: CI

* fix: ci

* fix: storybook

* feat: bring back loader/game version sort

---------

Co-authored-by: tdgao <mr.trumgao@gmail.com>
2026-08-20 07:23:01 +00:00

33 lines
1.3 KiB
TypeScript

import { provideNotificationManager, setupUserPreferencesProvider } from '@modrinth/ui'
import { FrontendNotificationManager } from './frontend-notifications'
import { setupAuthProvider } from './setup/auth'
import { setupFilePickerProvider } from './setup/file-picker'
import { setupLoadingStateProvider } from './setup/loading-state'
import { setupModrinthClientProvider } from './setup/modrinth-client'
import { setupPageContextProvider } from './setup/page-context'
import { setupTagsProvider } from './setup/tags'
import { setupUserCountryProvider } from './setup/user-country'
export function setupProviders(auth: Awaited<ReturnType<typeof useAuth>>) {
const notificationManager = new FrontendNotificationManager()
provideNotificationManager(notificationManager)
const authProvider = setupAuthProvider(auth)
const client = setupModrinthClientProvider(auth)
const userPreferences = setupUserPreferencesProvider({
auth: authProvider,
getPreferences: (userId) => client.labrinth.users_v3.getPreferences(userId),
patchPreferences: (userId, preferences) =>
client.labrinth.users_v3.patchPreferences(userId, preferences),
notificationManager,
})
setupTagsProvider()
setupFilePickerProvider()
setupPageContextProvider()
setupLoadingStateProvider()
setupUserCountryProvider()
return userPreferences
}