Skip to content

Commit d80f7ff

Browse files
committed
chore: cleanup
1 parent cb826e1 commit d80f7ff

File tree

7 files changed

+46
-109
lines changed

7 files changed

+46
-109
lines changed

src/components/BottomCTA.tsx

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import * as React from 'react'
2-
import { Link } from '@tanstack/react-router'
3-
import type { LibraryId } from '~/libraries'
2+
import { Link, LinkProps } from '@tanstack/react-router'
3+
import { Button } from '~/ui'
44

55
type BottomCTAProps = {
6-
linkProps: {
7-
to: '/$libraryId/$version/docs'
8-
params: { libraryId: LibraryId; version?: string }
9-
}
6+
linkProps: LinkProps
107
label?: string
118
className?: string
129
}
@@ -25,16 +22,14 @@ export function BottomCTA({
2522
Only one thing left to do...
2623
</div>
2724
<div>
28-
<Link
29-
to={linkProps.to}
30-
params={{
31-
...linkProps.params,
32-
version: linkProps.params.version ?? 'latest',
33-
}}
34-
className={`inline-flex items-center justify-center gap-2 cursor-pointer transition-colors py-2 px-4 text-sm shadow-xs hover:shadow-sm rounded-lg border font-medium bg-blue-600 text-white border-blue-600 hover:bg-blue-700 ${className}`}
25+
{/* @ts-expect-error - LinkProps is not assignable to ButtonProps */}
26+
<Button
27+
as={Link}
28+
{...linkProps}
29+
className={`py-2 px-4 text-sm shadow-xs hover:shadow-sm ${className}`}
3530
>
3631
{label}
37-
</Link>
32+
</Button>
3833
</div>
3934
</div>
4035
)

src/components/LibraryHero.tsx

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
import * as React from 'react'
22
import { twMerge } from 'tailwind-merge'
3-
import { Link } from '@tanstack/react-router'
4-
import type { Library, LibraryId } from '~/libraries'
3+
import { Link, LinkProps } from '@tanstack/react-router'
4+
import type { Library } from '~/libraries'
5+
import { Button } from '~/ui'
56

67
type LibraryHeroProps = {
78
project: Library
89
cta?: {
9-
linkProps: {
10-
to: '/$libraryId/$version/docs'
11-
params: { libraryId: LibraryId; version?: string }
12-
}
10+
linkProps: LinkProps
1311
label: string
1412
className?: string
1513
}
@@ -56,19 +54,14 @@ export function LibraryHero({ project, cta, actions }: LibraryHeroProps) {
5654
{actions ? (
5755
<div className="flex flex-wrap gap-2 justify-center">{actions}</div>
5856
) : cta ? (
59-
<Link
60-
to={cta.linkProps.to}
61-
params={{
62-
...cta.linkProps.params,
63-
version: cta.linkProps.params.version ?? 'latest',
64-
}}
65-
className={twMerge(
66-
'inline-flex items-center justify-center gap-2 cursor-pointer transition-colors py-2 px-4 text-sm rounded-lg border font-medium bg-blue-600 text-white border-blue-600 hover:bg-blue-700',
67-
cta.className,
68-
)}
57+
// @ts-expect-error - LinkProps is not assignable to ButtonProps
58+
<Button
59+
as={Link}
60+
{...cta.linkProps}
61+
className={twMerge('py-2 px-4 text-sm', cta.className)}
6962
>
7063
{cta.label}
71-
</Link>
64+
</Button>
7265
) : null}
7366
</div>
7467
)

src/routes/$libraryId/$version.index.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type { LibraryId } from '~/libraries'
1111
import { seo } from '~/utils/seo'
1212
import { ossStatsQuery } from '~/queries/stats'
1313
import { Button } from '~/ui'
14-
import type { ConfigSchema } from '~/utils/config'
14+
import { ConfigSchema } from '~/utils/config'
1515

1616
// Lazy-loaded landing components for each library
1717
const landingComponents: Partial<
@@ -57,12 +57,11 @@ export const Route = createFileRoute('/$libraryId/$version/')({
5757
}
5858
return undefined as never
5959
},
60-
// @ts-expect-error - TanStack Router type inference issue: child route loader return type
61-
loader: async (ctx) => {
62-
const { libraryId } = ctx.params
60+
// @ts-expect-error - not sure why this is erroring
61+
loader: async ({ params, context: { queryClient } }) => {
62+
const { libraryId } = params
6363
const library = getLibrary(libraryId)
64-
await ctx.context.queryClient.ensureQueryData(ossStatsQuery({ library }))
65-
// This route prefetches data for rendering but doesn't return loader data
64+
await queryClient.ensureQueryData(ossStatsQuery({ library }))
6665
},
6766
component: LibraryVersionIndex,
6867
})

src/routes/admin/feed.$id.tsx

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,7 @@ function FeedEditorPage() {
6363
<h1 className="text-2xl font-bold mb-2">Entry Not Found</h1>
6464
<Button
6565
className="mt-4"
66-
onClick={() =>
67-
navigate({
68-
to: '/admin/feed',
69-
search: {
70-
page: 1,
71-
pageSize: 50,
72-
viewMode: 'table',
73-
releaseLevels: undefined,
74-
},
75-
})
76-
}
66+
onClick={() => navigate({ to: '/admin/feed' })}
7767
>
7868
Back to Feed Admin
7969
</Button>
@@ -89,28 +79,8 @@ function FeedEditorPage() {
8979
entry={
9080
isNew ? null : ((entryQuery.data as FeedEntry | undefined) ?? null)
9181
}
92-
onSave={() =>
93-
navigate({
94-
to: '/admin/feed',
95-
search: {
96-
page: 1,
97-
pageSize: 50,
98-
viewMode: 'table',
99-
releaseLevels: undefined,
100-
},
101-
})
102-
}
103-
onCancel={() =>
104-
navigate({
105-
to: '/admin/feed',
106-
search: {
107-
page: 1,
108-
pageSize: 50,
109-
viewMode: 'table',
110-
releaseLevels: undefined,
111-
},
112-
})
113-
}
82+
onSave={() => navigate({ to: '/admin/feed' })}
83+
onCancel={() => navigate({ to: '/admin/feed' })}
11484
/>
11585
</div>
11686
</div>

src/routes/admin/feed.index.tsx

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -20,41 +20,27 @@ import { AdminAccessDenied, AdminLoading } from '~/components/admin'
2020
import { useAdminGuard } from '~/hooks/useAdminGuard'
2121
import { useDeleteWithConfirmation } from '~/hooks/useDeleteWithConfirmation'
2222

23+
const searchSchema = v.object({
24+
entryTypes: v.optional(v.array(entryTypeSchema)),
25+
libraries: v.optional(v.array(libraryIdSchema)),
26+
partners: v.optional(v.array(v.string())),
27+
tags: v.optional(v.array(v.string())),
28+
releaseLevels: v.optional(v.array(releaseLevelSchema)),
29+
includePrerelease: v.optional(v.boolean()),
30+
featured: v.optional(v.boolean()),
31+
search: v.optional(v.string()),
32+
page: v.optional(v.number(), 1),
33+
pageSize: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1)), 50),
34+
viewMode: v.optional(
35+
v.fallback(v.picklist(['table', 'timeline']), 'table'),
36+
'table',
37+
),
38+
expanded: v.optional(v.array(v.string())),
39+
})
40+
2341
export const Route = createFileRoute('/admin/feed/')({
2442
component: FeedAdminPage,
25-
validateSearch: (search: Record<string, unknown>) => {
26-
const hasReleaseLevels = 'releaseLevels' in search
27-
const releaseLevelsValue = search.releaseLevels
28-
29-
return v.parse(
30-
v.object({
31-
entryTypes: v.optional(v.array(entryTypeSchema)),
32-
libraries: v.optional(v.array(libraryIdSchema)),
33-
partners: v.optional(v.array(v.string())),
34-
tags: v.optional(v.array(v.string())),
35-
releaseLevels: hasReleaseLevels
36-
? v.fallback(
37-
v.array(releaseLevelSchema),
38-
Array.isArray(releaseLevelsValue) ? releaseLevelsValue : [],
39-
)
40-
: v.optional(v.array(releaseLevelSchema)),
41-
includePrerelease: v.optional(v.boolean()),
42-
featured: v.optional(v.boolean()),
43-
search: v.optional(v.string()),
44-
page: v.optional(v.number(), 1),
45-
pageSize: v.optional(
46-
v.pipe(v.number(), v.integer(), v.minValue(1)),
47-
50,
48-
),
49-
viewMode: v.optional(
50-
v.fallback(v.picklist(['table', 'timeline']), 'table'),
51-
'table',
52-
),
53-
expanded: v.optional(v.array(v.string())),
54-
}),
55-
search,
56-
)
57-
},
43+
validateSearch: searchSchema,
5844
})
5945

6046
function FeedAdminPage() {

src/routes/admin/showcases_.$id.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -631,11 +631,6 @@ function ShowcaseDetailPage() {
631631
{user ? (
632632
<Link
633633
to="/admin/users/$userId"
634-
search={{
635-
page: 0,
636-
pageSize: 10,
637-
useEffectiveCapabilities: true,
638-
}}
639634
params={{ userId: user.id }}
640635
className="flex items-center gap-3 hover:bg-gray-50 dark:hover:bg-gray-800 p-2 rounded-lg -m-2"
641636
>

src/routes/admin/users.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,6 @@ function UsersPage() {
733733
usersQuery,
734734
bulkUserRoles,
735735
bulkEffectiveCapabilities,
736-
useEffectiveCapabilities,
737736
],
738737
)
739738

0 commit comments

Comments
 (0)