Skip to content

Commit 18a4647

Browse files
committed
feat: abstract api-client DI into ui package
1 parent c27f787 commit 18a4647

File tree

9 files changed

+22
-16
lines changed

9 files changed

+22
-16
lines changed

apps/frontend/src/app.vue

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
</NuxtLayout>
77
</template>
88
<script setup lang="ts">
9-
import { NotificationPanel, provideNotificationManager } from '@modrinth/ui'
9+
import { NotificationPanel, provideModrinthClient, provideNotificationManager } from '@modrinth/ui'
1010
1111
import ModrinthLoadingIndicator from '~/components/ui/modrinth-loading-indicator.ts'
12-
13-
import { createModrinthClient, provideModrinthClient } from './providers/api-client.ts'
14-
import { FrontendNotificationManager } from './providers/frontend-notifications.ts'
12+
import { createModrinthClient } from '~/helpers/api.ts'
13+
import { FrontendNotificationManager } from '~/providers/frontend-notifications.ts'
1514
1615
const auth = await useAuth()
1716
const config = useRuntimeConfig()

apps/frontend/src/error.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ import { IntlFormatted } from '@vintl/vintl/components'
5858
5959
import Logo404 from '~/assets/images/404.svg'
6060
61+
import { provideModrinthClient } from '@modrinth/ui'
6162
import ModrinthLoadingIndicator from './components/ui/modrinth-loading-indicator.ts'
62-
import { createModrinthClient, provideModrinthClient } from './providers/api-client.ts'
63+
import { createModrinthClient } from './helpers/api.ts'
6364
import { FrontendNotificationManager } from './providers/frontend-notifications.ts'
6465
6566
const auth = await useAuth()

apps/frontend/src/providers/api-client.ts renamed to apps/frontend/src/helpers/api.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import type { AbstractFeature, AuthConfig, NuxtClientConfig } from '@modrinth/api-client'
21
import {
2+
AbstractFeature,
33
AuthFeature,
44
CircuitBreakerFeature,
55
NuxtCircuitBreakerStorage,
66
NuxtModrinthClient,
77
VerboseLoggingFeature,
8+
type AuthConfig,
9+
type NuxtClientConfig,
810
} from '@modrinth/api-client'
9-
import { createContext } from '@modrinth/ui'
1011

1112
export function createModrinthClient(
1213
auth: { token: string | undefined },
@@ -35,8 +36,3 @@ export function createModrinthClient(
3536

3637
return new NuxtModrinthClient(clientConfig)
3738
}
38-
39-
export const [injectModrinthClient, provideModrinthClient] = createContext<NuxtModrinthClient>(
40-
'root',
41-
'modrinthClient',
42-
)

apps/frontend/src/pages/[type]/[id]/settings/environment.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { CheckIcon } from '@modrinth/assets'
33
import {
44
Admonition,
55
commonProjectSettingsMessages,
6+
injectModrinthClient,
67
injectNotificationManager,
78
injectProjectPageContext,
89
ProjectSettingsEnvSelector,
@@ -11,8 +12,6 @@ import {
1112
} from '@modrinth/ui'
1213
import { defineMessages, useVIntl } from '@vintl/vintl'
1314
14-
import { injectModrinthClient } from '~/providers/api-client.ts'
15-
1615
const { formatMessage } = useVIntl()
1716
1817
const { currentMember, projectV2, projectV3, refreshProject } = injectProjectPageContext()

apps/frontend/src/pages/[type]/[id]/settings/general.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script setup lang="ts">
22
import {
33
IconSelect,
4+
injectModrinthClient,
45
injectNotificationManager,
56
injectProjectPageContext,
67
SettingsLabel,
@@ -9,8 +10,6 @@ import {
910
} from '@modrinth/ui'
1011
import { defineMessages, type MessageDescriptor, useVIntl } from '@vintl/vintl'
1112
12-
import { injectModrinthClient } from '~/providers/api-client.ts'
13-
1413
const { formatMessage } = useVIntl()
1514
1615
const { projectV2: project, refreshProject } = injectProjectPageContext()

packages/ui/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"@codemirror/view": "^6.22.1",
2929
"@modrinth/assets": "workspace:*",
3030
"@modrinth/utils": "workspace:*",
31+
"@modrinth/api-client": "workspace:*",
3132
"@tresjs/cientos": "^4.3.0",
3233
"@tresjs/core": "^4.3.4",
3334
"@tresjs/post-processing": "^2.4.0",
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { AbstractModrinthClient } from '@modrinth/api-client'
2+
import { createContext } from './index'
3+
4+
export const [injectModrinthClient, provideModrinthClient] = createContext<AbstractModrinthClient>(
5+
'root',
6+
'modrinthClient',
7+
)

packages/ui/src/providers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,6 @@ export function createContext<ContextValue>(
7878
return [injectContext, provideContext] as const
7979
}
8080

81+
export * from './api-client'
8182
export * from './project-page'
8283
export * from './web-notifications'

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)