Skip to content

Commit f3d3810

Browse files
cleanup: use RR route module exports to clean up routes.tsx (#2545)
* clean up route file by using RR route module exports * convert more modules * Bot commit: format with prettier * dummy commit to run CI --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
1 parent eba6626 commit f3d3810

35 files changed

+195
-279
lines changed

app/components/form/fields/SshKeysField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { usePrefetchedApiQuery } from '@oxide/api'
1212
import { Key16Icon } from '@oxide/design-system/icons/react'
1313

1414
import type { InstanceCreateInput } from '~/forms/instance-create'
15-
import { CreateSSHKeySideModalForm } from '~/forms/ssh-key-create'
15+
import { Component as CreateSSHKeySideModalForm } from '~/forms/ssh-key-create'
1616
import { Button } from '~/ui/lib/Button'
1717
import { Checkbox } from '~/ui/lib/Checkbox'
1818
import { Divider } from '~/ui/lib/Divider'

app/forms/image-edit.tsx

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,25 @@ import { pb } from '~/util/path-builder'
2929
import { capitalize } from '~/util/str'
3030
import { bytesToGiB } from '~/util/units'
3131

32-
EditProjectImageSideModalForm.loader = async ({ params }: LoaderFunctionArgs) => {
33-
const { project, image } = getProjectImageSelector(params)
34-
await apiQueryClient.prefetchQuery('imageView', { path: { image }, query: { project } })
35-
return null
32+
export const ProjectImageEdit = {
33+
loader: async ({ params }: LoaderFunctionArgs) => {
34+
const { project, image } = getProjectImageSelector(params)
35+
await apiQueryClient.prefetchQuery('imageView', { path: { image }, query: { project } })
36+
return null
37+
},
38+
Component: EditProjectImageSideModalForm,
3639
}
3740

38-
export function EditProjectImageSideModalForm() {
41+
export const SiloImageEdit = {
42+
loader: async ({ params }: LoaderFunctionArgs) => {
43+
const { image } = getSiloImageSelector(params)
44+
await apiQueryClient.prefetchQuery('imageView', { path: { image } })
45+
return null
46+
},
47+
Component: EditSiloImageSideModalForm,
48+
}
49+
50+
function EditProjectImageSideModalForm() {
3951
const { project, image } = useProjectImageSelector()
4052
const { data } = usePrefetchedApiQuery('imageView', {
4153
path: { image },
@@ -46,20 +58,14 @@ export function EditProjectImageSideModalForm() {
4658
return <EditImageSideModalForm image={data} dismissLink={dismissLink} type="Project" />
4759
}
4860

49-
EditSiloImageSideModalForm.loader = async ({ params }: LoaderFunctionArgs) => {
50-
const { image } = getSiloImageSelector(params)
51-
await apiQueryClient.prefetchQuery('imageView', { path: { image } })
52-
return null
53-
}
54-
55-
export function EditSiloImageSideModalForm() {
61+
function EditSiloImageSideModalForm() {
5662
const { image } = useSiloImageSelector()
5763
const { data } = usePrefetchedApiQuery('imageView', { path: { image } })
5864

5965
return <EditImageSideModalForm image={data} dismissLink={pb.siloImages()} type="Silo" />
6066
}
6167

62-
export function EditImageSideModalForm({
68+
function EditImageSideModalForm({
6369
image,
6470
dismissLink,
6571
type,

app/forms/image-upload.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ const CHUNK_SIZE_BYTES = 512 * KiB
177177
// TODO: make sure cleanup, cancelEverything, and resetMainFlow are called in
178178
// the right places
179179

180+
Component.displayName = 'ImageCreate'
180181
/**
181182
* Upload an image. Opens a second modal to show upload progress.
182183
*/
183-
export function CreateImageSideModalForm() {
184+
export function Component() {
184185
const navigate = useNavigate()
185186
const queryClient = useApiQueryClient()
186187
const { project } = useProjectSelector()

app/forms/ip-pool-edit.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@ import { pb } from '~/util/path-builder'
2525

2626
import { IpPoolVisibilityMessage } from './ip-pool-create'
2727

28-
EditIpPoolSideModalForm.loader = async ({ params }: LoaderFunctionArgs) => {
28+
export async function loader({ params }: LoaderFunctionArgs) {
2929
const { pool } = getIpPoolSelector(params)
3030
await apiQueryClient.prefetchQuery('ipPoolView', { path: { pool } })
3131
return null
3232
}
3333

34-
export function EditIpPoolSideModalForm() {
34+
Component.displayName = 'EditIpPoolSideModalForm'
35+
export function Component() {
3536
const queryClient = useApiQueryClient()
3637
const navigate = useNavigate()
3738
const poolSelector = useIpPoolSelector()

app/forms/ip-pool-range-add.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ function resolver(values: IpRange) {
5959
return Object.keys(errors).length > 0 ? { values: {}, errors } : { values, errors: {} }
6060
}
6161

62-
export function IpPoolAddRangeSideModalForm() {
62+
Component.displayName = 'IpPoolAddRange'
63+
export function Component() {
6364
const { pool } = useIpPoolSelector()
6465
const navigate = useNavigate()
6566
const queryClient = useApiQueryClient()

app/forms/project-create.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ const defaultValues: ProjectCreate = {
2222
description: '',
2323
}
2424

25-
export function CreateProjectSideModalForm() {
25+
Component.displayName = 'ProjectCreateSideModalForm'
26+
export function Component() {
2627
const navigate = useNavigate()
2728
const queryClient = useApiQueryClient()
2829

app/forms/snapshot-create.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ const defaultValues: SnapshotCreate = {
4242
name: '',
4343
}
4444

45-
export function CreateSnapshotSideModalForm() {
45+
Component.displayName = 'SnapshotCreate'
46+
export function Component() {
4647
const queryClient = useApiQueryClient()
4748
const projectSelector = useProjectSelector()
4849
const navigate = useNavigate()

app/forms/ssh-key-create.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ type Props = {
2929
message?: React.ReactNode
3030
}
3131

32-
export function CreateSSHKeySideModalForm({ onDismiss, message }: Props) {
32+
Component.displayName = 'SSHKeyCreate'
33+
export function Component({ onDismiss, message }: Props) {
3334
const queryClient = useApiQueryClient()
3435
const navigate = useNavigate()
3536

app/forms/vpc-router-create.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ const defaultValues: VpcRouterCreate = {
2323
description: '',
2424
}
2525

26-
export function CreateRouterSideModalForm() {
26+
Component.displayName = 'RouterCreate'
27+
export function Component() {
2728
const queryClient = useApiQueryClient()
2829
const vpcSelector = useVpcSelector()
2930
const navigate = useNavigate()

app/hooks/use-crumbs.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ type MatchWithCrumb = UIMatch<unknown, Crumb>
3434
type MakeStr = string | ((p: Params) => string)
3535

3636
/** Helper to make crumb definitions less verbose */
37-
export const makeCrumb = (crumb: MakeStr, path?: MakeStr) => ({ crumb, path })
37+
export const makeCrumb = (crumb: MakeStr, path?: MakeStr): Crumb => ({ crumb, path })
38+
export const titleCrumb = (crumb: string): Crumb => ({ crumb, titleOnly: true })
3839

3940
function hasCrumb(m: UIMatch): m is MatchWithCrumb {
4041
return !!(m.handle && typeof m.handle === 'object' && 'crumb' in m.handle)

0 commit comments

Comments
 (0)