Skip to content

Commit d64ff2f

Browse files
authored
Merge pull request #161 from guidefari/migration/6b-resolve-swap
feat(www): swap resolve consumer to typed Effect client (step 6b)
2 parents 9cb5fcb + d8ebe7d commit d64ff2f

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

apps/www/src/lib/http.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -943,10 +943,10 @@ export type ResolvedShow = {
943943
description: string | null
944944
thumbnailUrl: string | null
945945
bannerImageUrl: string | null
946-
tags: string[] | null
946+
tags: ReadonlyArray<string> | null
947947
createdAt: string
948948
compiledContent: string | null
949-
hosts: Array<{ id: string; name: string; username: string | null }>
949+
hosts: ReadonlyArray<{ id: string; name: string; username: string | null }>
950950
}
951951
}
952952

@@ -956,7 +956,14 @@ export function useResolveSlug(slug: string) {
956956
const { data, error, isPending } = useQuery<ResolveResult, Error>({
957957
queryKey: ['resolve', slug],
958958
queryFn: async () => {
959-
return fetcher<ResolveResult>(apiUrl(`/resolve/${slug}`))
959+
const client = await getApiClient()
960+
return Effect.runPromise(
961+
client.resolve
962+
.resolveSlug({ params: { slug } })
963+
.pipe(
964+
Effect.tapError((error) => captureException(error, { endpoint: 'resolve.resolveSlug' }))
965+
)
966+
)
960967
},
961968
enabled: Boolean(slug),
962969
retry: false

apps/www/src/lib/seo.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ export type ResolvedShowData = {
224224
description: string | null
225225
thumbnailUrl: string | null
226226
compiledContent: string | null
227-
hosts: Array<{ id: string; name: string }>
227+
hosts: ReadonlyArray<{ id: string; name: string }>
228228
}
229229

230230
export function generateResolvedShowSEO(show: ResolvedShowData, slug: string): SEOHeadData {

apps/www/src/routes/$slug.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import { createFileRoute, Link, Navigate } from '@tanstack/react-router'
2+
import { Effect } from 'effect'
23
import { PublicProfilePage } from '@/components/profile/PublicProfilePage'
3-
import { apiUrl, fetcher, type ResolveResult } from '@/lib/http'
4+
import { getApiClient } from '@/lib/api-client'
45
import { generateProfileSEO, generateResolvedShowSEO, generateSEOMeta } from '@/lib/seo'
56

67
export const Route = createFileRoute('/$slug')({
78
component: SlugPage,
89
loader: async ({ params }) => {
910
try {
10-
const resolved = await fetcher<ResolveResult>(apiUrl(`/resolve/${params.slug}`))
11+
const client = await getApiClient()
12+
const resolved = await Effect.runPromise(
13+
client.resolve.resolveSlug({ params: { slug: params.slug } })
14+
)
1115
return { resolved }
1216
} catch {
1317
return { resolved: null }

0 commit comments

Comments
 (0)