Skip to content

Commit c09cbd7

Browse files
authored
chore: flatten app/pages/project (#2713)
* convert more routes * flatten app/pages/projects/instances * flatten app/pages/vpcs * oxlint consistent-type-imports
1 parent 8626af2 commit c09cbd7

29 files changed

+93
-85
lines changed

.oxlintrc.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
"typescript",
99
"oxc"
1010
],
11+
"categories": {
12+
"correctness": "error"
13+
},
1114
"rules": {
1215
// only worry about console.log
1316
"no-console": ["error", { "allow": ["warn", "error", "info", "table"] }],
@@ -25,7 +28,8 @@
2528

2629
"react-hooks/exhaustive-deps": "error",
2730
"react-hooks/rules-of-hooks": "error",
28-
"import/no-default-export": "error"
31+
"import/no-default-export": "error",
32+
"consistent-type-imports": "error"
2933
},
3034
"overrides": [
3135
{

app/components/form/fields/RadioField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Copyright Oxide Computer Company
77
*/
88
import cn from 'classnames'
9-
import React, { useId } from 'react'
9+
import { useId, type default as React } from 'react'
1010
import {
1111
useController,
1212
type Control,

app/components/oxql-metrics/OxqlMetric.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { apiQueryClient, useApiQuery } from '@oxide/api'
1919
import { CopyCodeModal } from '~/components/CopyCode'
2020
import { MoreActionsMenu } from '~/components/MoreActionsMenu'
2121
import { getInstanceSelector } from '~/hooks/use-params'
22-
import { useMetricsContext } from '~/pages/project/instances/instance/tabs/common'
22+
import { useMetricsContext } from '~/pages/project/instances/common'
2323
import { LearnMore } from '~/ui/lib/SettingsGroup'
2424
import { classed } from '~/util/classed'
2525
import { links } from '~/util/links'
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { apiq, queryClient } from '@oxide/api'
1212
import { trigger404 } from '~/components/ErrorBoundary'
1313
import { pb } from '~/util/path-builder'
1414

15-
export async function instanceLookupLoader({ params }: LoaderFunctionArgs) {
15+
export async function clientLoader({ params }: LoaderFunctionArgs) {
1616
try {
1717
const instance = await queryClient.fetchQuery(
1818
apiq('instanceView', { path: { instance: params.instance! } })
@@ -25,3 +25,8 @@ export async function instanceLookupLoader({ params }: LoaderFunctionArgs) {
2525
throw trigger404
2626
}
2727
}
28+
29+
/** This should never render because the loader always redirects or 404s */
30+
export default function InstanceLookup() {
31+
return null
32+
}

app/pages/project/disks/DisksPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import { docLinks } from '~/util/links'
3939
import { pb } from '~/util/path-builder'
4040
import type * as PP from '~/util/path-params'
4141

42-
import { fancifyStates } from '../instances/instance/tabs/common'
42+
import { fancifyStates } from '../instances/common'
4343

4444
export const handle = makeCrumb('Disks', (p) => pb.disks(getProjectSelector(p)))
4545

File renamed without changes.

app/pages/project/instances/instance/tabs/MetricsTab/CpuMetricsTab.tsx renamed to app/pages/project/instances/CpuMetricsTab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import type { OxqlVcpuState } from '~/components/oxql-metrics/util'
2020
import { useInstanceSelector } from '~/hooks/use-params'
2121
import { Listbox } from '~/ui/lib/Listbox'
2222

23-
import { useMetricsContext } from '../common'
23+
import { useMetricsContext } from './common'
2424

2525
export const handle = { crumb: 'CPU' }
2626

app/pages/project/instances/instance/tabs/MetricsTab/DiskMetricsTab.tsx renamed to app/pages/project/instances/DiskMetricsTab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { EmptyMessage } from '~/ui/lib/EmptyMessage'
2424
import { Listbox } from '~/ui/lib/Listbox'
2525
import { TableEmptyBox } from '~/ui/lib/Table'
2626

27-
import { useMetricsContext } from '../common'
27+
import { useMetricsContext } from './common'
2828

2929
export async function clientLoader({ params }: LoaderFunctionArgs) {
3030
const { project, instance } = getInstanceSelector(params)

app/pages/project/instances/instance/InstancePage.tsx renamed to app/pages/project/instances/InstancePage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ import { pb } from '~/util/path-builder'
5555
import { pluralize } from '~/util/str'
5656
import { GiB } from '~/util/units'
5757

58-
import { useMakeInstanceActions } from '../actions'
58+
import { useMakeInstanceActions } from './actions'
5959

6060
function getPrimaryVpcId(nics: InstanceNetworkInterface[]) {
6161
const nic = nics.find((nic) => nic.primary)

app/pages/project/instances/InstancesPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import { pb } from '~/util/path-builder'
4242
import { pluralize } from '~/util/str'
4343

4444
import { useMakeInstanceActions } from './actions'
45-
import { ResizeInstanceModal } from './instance/InstancePage'
45+
import { ResizeInstanceModal } from './InstancePage'
4646

4747
const EmptyState = () => (
4848
<EmptyMessage

0 commit comments

Comments
 (0)