Skip to content

Commit cd62005

Browse files
committed
nextjs 15
1 parent 04c66e3 commit cd62005

File tree

11 files changed

+1021
-1003
lines changed

11 files changed

+1021
-1003
lines changed

Diff for: ui/app/api/v1/[...slug]/route.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { NextRequest } from 'next/server';
33

44
export async function GET(
55
request: NextRequest,
6-
{ params }: { params: { slug: string[] } }
6+
{ params }: { params: Promise<{ slug: string[] }> }
77
) {
88
const flowServiceAddr = GetFlowHttpAddressFromEnv();
9-
let url = `${flowServiceAddr}/v1/${params.slug
9+
let url = `${flowServiceAddr}/v1/${(await params).slug
1010
.map((x) => encodeURIComponent(x))
1111
.join('/')}`;
1212
if (request.nextUrl.searchParams?.size) {
@@ -19,11 +19,11 @@ export async function GET(
1919

2020
export async function POST(
2121
request: NextRequest,
22-
{ params }: { params: { slug: string[] } }
22+
{ params }: { params: Promise<{ slug: string[] }> }
2323
) {
2424
const flowServiceAddr = GetFlowHttpAddressFromEnv();
2525
return fetch(
26-
`${flowServiceAddr}/v1/${params.slug
26+
`${flowServiceAddr}/v1/${(await params).slug
2727
.map((x) => encodeURIComponent(x))
2828
.join('/')}`,
2929
{
@@ -37,10 +37,10 @@ export async function POST(
3737

3838
export async function DELETE(
3939
request: NextRequest,
40-
{ params }: { params: { slug: string[] } }
40+
{ params }: { params: Promise<{ slug: string[] }> }
4141
) {
4242
const flowServiceAddr = GetFlowHttpAddressFromEnv();
43-
let url = `${flowServiceAddr}/v1/${params.slug
43+
let url = `${flowServiceAddr}/v1/${(await params).slug
4444
.map((x) => encodeURIComponent(x))
4545
.join('/')}`;
4646
if (request.nextUrl.searchParams?.size) {

Diff for: ui/app/mirrors/[mirrorId]/edit/page.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { ProgressCircle } from '@/lib/ProgressCircle';
1818
import { TextField } from '@/lib/TextField';
1919
import { Callout } from '@tremor/react';
2020
import { useRouter } from 'next/navigation';
21-
import { useCallback, useEffect, useMemo, useState } from 'react';
21+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
2222
import { ToastContainer } from 'react-toastify';
2323
import TablePicker from '../../create/cdc/tablemapping';
2424
import {
@@ -31,10 +31,11 @@ import * as styles from '../../create/styles';
3131
import { getMirrorState } from '../handlers';
3232

3333
type EditMirrorProps = {
34-
params: { mirrorId: string };
34+
params: Promise<{ mirrorId: string }>;
3535
};
3636

37-
export default function EditMirror({ params: { mirrorId } }: EditMirrorProps) {
37+
export default function EditMirror({ params }: EditMirrorProps) {
38+
const { mirrorId } = React.use(params);
3839
const defaultBatchSize = blankCDCSetting.maxBatchSize;
3940
const defaultIdleTimeout = blankCDCSetting.idleTimeoutSeconds;
4041

Diff for: ui/app/mirrors/[mirrorId]/page.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Badge } from '@/lib/Badge';
88
import { Header } from '@/lib/Header';
99
import { Label } from '@/lib/Label';
1010
import { LayoutMain } from '@/lib/Layout';
11-
import { useCallback, useEffect, useState } from 'react';
11+
import React, { useCallback, useEffect, useState } from 'react';
1212
import { CDCMirror } from './cdc';
1313
import { getMirrorState } from './handlers';
1414
import NoMirror from './nomirror';
@@ -18,10 +18,11 @@ import QRepStatusTable from './qrepStatusTable';
1818
import SyncStatus from './syncStatus';
1919

2020
type EditMirrorProps = {
21-
params: { mirrorId: string };
21+
params: Promise<{ mirrorId: string }>;
2222
};
2323

24-
export default function ViewMirror({ params: { mirrorId } }: EditMirrorProps) {
24+
export default function ViewMirror({ params }: EditMirrorProps) {
25+
const { mirrorId } = React.use(params);
2526
const [mirrorState, setMirrorState] = useState<MirrorStatusResponse>();
2627
const [errorMessage, setErrorMessage] = useState('');
2728
const [mounted, setMounted] = useState(false);

Diff for: ui/app/peers/[peerName]/page.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import { PeerInfo } from '@/components/PeerInfo';
22
import ReloadButton from '@/components/ReloadButton';
3+
import React from 'react';
34
import LagGraph from './lagGraph';
45
import SlotTable from './slottable';
56
import StatTable from './stattable';
67

78
type DataConfigProps = {
8-
params: { peerName: string };
9+
params: Promise<{ peerName: string }>;
910
};
1011

11-
const PeerData = async ({ params: { peerName } }: DataConfigProps) => {
12+
export default function PeerData({ params }: DataConfigProps) {
13+
const { peerName } = React.use(params);
1214
return (
1315
<div
1416
style={{
@@ -41,6 +43,4 @@ const PeerData = async ({ params: { peerName } }: DataConfigProps) => {
4143
</div>
4244
</div>
4345
);
44-
};
45-
46-
export default PeerData;
46+
}

Diff for: ui/app/peers/create/[peerType]/page.tsx

+4-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { TextField } from '@/lib/TextField';
2727
import { Tooltip } from '@/lib/Tooltip';
2828
import Link from 'next/link';
2929
import { useRouter, useSearchParams } from 'next/navigation';
30-
import { useState } from 'react';
30+
import React, { useState } from 'react';
3131
import { ToastContainer } from 'react-toastify';
3232
import { handleCreate, handleValidate } from './handlers';
3333
import { clickhouseSetting } from './helpers/ch';
@@ -38,13 +38,12 @@ import { snowflakeSetting } from './helpers/sf';
3838
import { peerNameSchema } from './schema';
3939

4040
type CreateConfigProps = {
41-
params: { peerType: string };
41+
params: Promise<{ peerType: string }>;
4242
};
4343

4444
// when updating a peer we get ?update=<peer_name>
45-
export default function CreateConfig({
46-
params: { peerType },
47-
}: CreateConfigProps) {
45+
export default function CreateConfig({ params }: CreateConfigProps) {
46+
const { peerType } = React.use(params);
4847
const router = useRouter();
4948
const searchParams = useSearchParams();
5049
const peerName = searchParams.get('update');

Diff for: ui/lib/Color/Color.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export function Color<
4444

4545
const childElement = Children.only(children);
4646
if (asChild && isValidElement<ComponentProps<any>>(childElement)) {
47-
return cloneElement(childElement, {
47+
return cloneElement(childElement as any, {
4848
style: { color: colorValue },
4949
});
5050
}

Diff for: ui/lib/types.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ import type { ReactElement } from 'react';
33
export type RenderObject = ReactElement | string;
44

55
type PropsOf<
6-
E extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<any>,
7-
> = JSX.LibraryManagedAttributes<E, React.ComponentPropsWithRef<E>>;
6+
E extends
7+
| keyof React.JSX.IntrinsicElements
8+
| React.JSXElementConstructor<any>,
9+
> = React.JSX.LibraryManagedAttributes<E, React.ComponentPropsWithRef<E>>;
810

911
export interface AsProps<E extends React.ElementType = React.ElementType> {
1012
as?: E;

Diff for: ui/middleware.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default async function middleware(req: NextRequest, resp: NextResponse) {
3737

3838
const res = NextResponse.next();
3939
console.log(
40-
`[${req.method} ${req.url}] [${req.ip} ${xForwardedFor}] (${JSON.stringify(agent.device)} ${JSON.stringify(agent.os)} ${JSON.stringify(agent.browser)}) ${res.status}`
40+
`[${req.method} ${req.url}] [${xForwardedFor}] (${JSON.stringify(agent.device)} ${JSON.stringify(agent.os)} ${JSON.stringify(agent.browser)}) ${res.status}`
4141
);
4242
return res;
4343
}

Diff for: ui/next.config.js

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ const nextConfig = {
1313
];
1414
},
1515
reactStrictMode: true,
16-
swcMinify: true,
1716
output: 'standalone',
1817
images: {
1918
unoptimized: true,

0 commit comments

Comments
 (0)