Compare commits

...

5 Commits

Author SHA1 Message Date
dependabot[bot]
5c9e3c7db3
chore(deps): bump react-day-picker from 8.10.1 to 9.5.1
Bumps [react-day-picker](https://github.com/gpbl/react-day-picker) from 8.10.1 to 9.5.1.
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v8.10.1...v9.5.1)

---
updated-dependencies:
- dependency-name: react-day-picker
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 16:34:14 +00:00
dvelo
d679e19b84 chore(next): move to Next.js 15 2025-03-01 10:31:11 -06:00
dvelo
2551dabf82 fix: add 404 page 2025-03-01 10:00:09 -06:00
dvelo
f000cdeaf9 fix: it was a good run, but I don't have the time for this anymore 😭 2025-03-01 08:58:45 -06:00
dvelo
98c834dad5
fix: what is this? 😭 2025-02-26 20:39:50 -06:00
15 changed files with 431 additions and 520 deletions

@ -46,7 +46,7 @@
"next": "15.1.6",
"next-themes": "^0.4.4",
"react": "^19.0.0",
"react-day-picker": "8.10.1",
"react-day-picker": "9.5.1",
"react-dom": "^19.0.0",
"react-hook-form": "^7.54.2",
"react-resizable-panels": "^2.1.7",

@ -46,7 +46,7 @@
"next": "15.1.6",
"next-themes": "^0.4.4",
"react": "^19.0.0",
"react-day-picker": "8.10.1",
"react-day-picker": "9.5.1",
"react-dom": "^19.0.0",
"react-hook-form": "^7.54.2",
"react-resizable-panels": "^2.1.7",

@ -43,11 +43,17 @@ const nextConfig = {
async redirects() {
return [
{
source: '/docs',
destination: '/docs/getting-started',
source: "/docs",
destination: "/docs/getting-started",
permanent: true,
},
]
];
},
eslint: {
ignoreDuringBuilds: true,
},
typescript: {
ignoreBuildErrors: true,
},
};

@ -16,8 +16,9 @@
"dependencies": {
"@babel/parser": "^7.24.7",
"@biomejs/biome": "^1.8.3",
"@clerk/elements": "^0.22.2",
"@clerk/nextjs": "^6.9.2",
"@clerk/elements": "^0.23.0",
"@clerk/nextjs": "^6.12.1",
"@clerk/themes": "^2.2.20",
"@emotion/is-prop-valid": "^1.3.0",
"@linear/sdk": "^31.0.0",
"@monaco-editor/react": "^4.6.0",
@ -46,7 +47,7 @@
"minimessage-2-html": "1.6.0",
"minimessage-js": "^1.1.3",
"mongodb": "^6.8.0",
"next": "14.2.10",
"next": "^15.2.0",
"next-contentlayer": "^0.3.4",
"next-css-obfuscator": "^2.2.16",
"next-sitemap": "^4.2.3",
@ -55,8 +56,8 @@
"nprogress": "^0.2.0",
"postcss-obfuscator": "^1.6.1",
"prettier": "^3.3.1",
"react": "^18",
"react-dom": "^18",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-fade-in": "^2.0.1",
"react-fast-marquee": "^1.6.5",
"react-hot-toast": "^2.4.1",
@ -92,8 +93,8 @@
"@types/canvas-confetti": "^1.6.4",
"@types/node": "^20",
"@types/nprogress": "^0.2.3",
"@types/react": "^18",
"@types/react-dom": "^18",
"@types/react": "19.0.10",
"@types/react-dom": "19.0.4",
"@types/react-twemoji": "^0.4.3",
"@unocss/eslint-config": "^0.61.5",
"@unocss/preset-uno": "^0.61.5",
@ -105,7 +106,7 @@
"clsx": "^2.1.1",
"cmdk": "^1.0.0",
"eslint": "^8",
"eslint-config-next": "14.2.3",
"eslint-config-next": "15.2.0",
"framer-motion": "^11.3.8",
"geist": "^1.3.0",
"mangle-css-class-webpack-plugin": "^5.1.0",
@ -121,5 +122,9 @@
"typescript": "^5",
"vaul": "^0.9.1",
"zod": "^3.23.8"
},
"resolutions": {
"@types/react": "19.0.10",
"@types/react-dom": "19.0.4"
}
}

@ -1,3 +1,4 @@
import { use } from "react";
/*
* MHSF, Minehut Server List
* All external content is rather licensed under the ECA Agreement
@ -41,11 +42,12 @@ import { notFound } from "next/navigation";
export const generateStaticParams = async () =>
allDocs.map((post) => ({ slug: [post._raw.flattenedPath] }));
export const generateMetadata = ({
params,
}: {
params: { slug: string[] };
}) => {
export const generateMetadata = async (
props: {
params: Promise<{ slug: string[] }>;
}
) => {
const params = await props.params;
const post = allDocs.find(
(post) => post._raw.flattenedPath === params.slug.join("/"),
);
@ -53,7 +55,8 @@ export const generateMetadata = ({
return { title: post.title + " | MHSF Docs", themeColor: "#000000" };
};
const PostLayout = ({ params }: { params: { slug: string[] } }) => {
const PostLayout = (props0: { params: Promise<{ slug: string[] }> }) => {
const params = use(props0.params);
const doc = allDocs.find(
(post) => post._raw.flattenedPath === params.slug.join("/"),
);

@ -30,10 +30,11 @@
import Embed from "@/components/feat/Embed";
export default function EmbedPage({
params,
}: {
params: { server: string };
}) {
export default async function EmbedPage(
props: {
params: Promise<{ server: string }>;
}
) {
const params = await props.params;
return <Embed params={params} />;
}

@ -32,13 +32,11 @@ import type { Metadata, ResolvingMetadata } from "next";
import CustomizeRoot from "@/components/CustomizeRoot";
type Props = {
params: { server: string };
params: Promise<{ server: string }>;
};
export async function generateMetadata(
{ params }: Props,
parent: ResolvingMetadata
): Promise<Metadata> {
export async function generateMetadata(props: Props, parent: ResolvingMetadata): Promise<Metadata> {
const params = await props.params;
// read route params
const { server } = params;
const json = await (
@ -89,7 +87,8 @@ export async function generateMetadata(
};
}
export default function ServerPage({ params }: { params: { server: string } }) {
export default async function ServerPage(props: { params: Promise<{ server: string }> }) {
const params = await props.params;
return (
<main>
<CustomizeRoot params={params} />

@ -28,19 +28,25 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
"use client";
"use client";;
import { use } from "react";
import { LoadingSpinner } from "@/components/ui/loading-spinner";
import { useServerExists } from "@/lib/hooks/use-server-exists";
import { notFound } from "next/navigation";
export default function ServerLayout({
params,
children,
}: {
params: { server: string };
export default function ServerLayout(
props: {
params: Promise<{ server: string }>;
children: React.ReactNode;
}) {
}
) {
const params = use(props.params);
const {
children
} = props;
const { serverExists, loading } = useServerExists(params.server);
if (loading) return <LoadingSpinner />;

@ -37,13 +37,11 @@ import TabServer from "@/components/misc/TabServer";
import type { Metadata, ResolvingMetadata } from "next";
type Props = {
params: { server: string };
params: Promise<{ server: string }>;
};
export async function generateMetadata(
{ params }: Props,
parent: ResolvingMetadata
): Promise<Metadata> {
export async function generateMetadata(props: Props, parent: ResolvingMetadata): Promise<Metadata> {
const params = await props.params;
// read route params
const { server } = params;
const json = await (
@ -126,7 +124,8 @@ export async function generateMetadata(
};
}
export default function ServerPage({ params }: { params: { server: string } }) {
export default async function ServerPage(props: { params: Promise<{ server: string }> }) {
const params = await props.params;
return (
<main style={{ "color-scheme": "dark" } as React.CSSProperties}>
<ColorProvider server={params.server}>

@ -40,13 +40,11 @@ import { MonthlyChart } from "@/components/charts/MonthlyChart";
import { DailyChart } from "@/components/charts/DailyChart";
type Props = {
params: { server: string };
params: Promise<{ server: string }>;
};
export async function generateMetadata(
{ params }: Props,
parent: ResolvingMetadata
): Promise<Metadata> {
export async function generateMetadata(props: Props, parent: ResolvingMetadata): Promise<Metadata> {
const params = await props.params;
// read route params
const { server } = params;
const json = await (
@ -97,7 +95,8 @@ export async function generateMetadata(
};
}
export default function ServerPage({ params }: { params: { server: string } }) {
export default async function ServerPage(props: { params: Promise<{ server: string }> }) {
const params = await props.params;
return (
<main style={{ "color-scheme": "dark" } as React.CSSProperties}>
<ColorProvider server={params.server}>

@ -28,53 +28,18 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
import { Sidebar } from "@/components/docs/Sidebar";
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@/components/ui/breadcrumb";
import { Separator } from "@/components/ui/separator";
import {
SidebarInset,
SidebarProvider,
SidebarTrigger,
} from "@/components/ui/sidebar";
import "./globals.css";
export default function Page() {
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<SidebarProvider>
<Sidebar />
<SidebarInset>
<header className="flex sticky top-0 bg-background h-16 shrink-0 items-center gap-2 border-b px-4">
<SidebarTrigger className="-ml-1" />
<Separator orientation="vertical" className="mr-2 h-4" />
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem className="hidden md:block">
<BreadcrumbLink href="#">
Building Your Application
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator className="hidden md:block" />
<BreadcrumbItem>
<BreadcrumbPage>Data Fetching</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</header>
<div className="flex flex-1 flex-col gap-4 p-4">
{Array.from({ length: 24 }).map((_, index) => (
<div
key={index}
className="aspect-video h-12 w-full rounded-lg bg-muted/50"
/>
))}
</div>
</SidebarInset>
</SidebarProvider>
<html lang="en">
<body>
<main>{children}</main>
</body>
</html>
);
}

@ -0,0 +1,16 @@
import Footer from "@/components/misc/Footer";
import Link from "next/link";
export default function NotFound() {
return (
<>
<span className="flex justify-center items-center text-center min-h-screen h-max">
<div className="block">
That page couldn't be found <br />
<Link href="/">Go home</Link>
</div>
</span>
<Footer />
</>
);
}

@ -1,6 +1,10 @@
{
"compilerOptions": {
"lib": ["dom", "dom.iterable", "esnext"],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@ -18,9 +22,14 @@
}
],
"paths": {
"contentlayer/generated": ["./.contentlayer/generated"],
"@/*": ["./src/*"]
}
"contentlayer/generated": [
"./.contentlayer/generated"
],
"@/*": [
"./src/*"
]
},
"target": "ES2017"
},
"include": [
"next-env.d.ts",
@ -30,5 +39,7 @@
".contentlayer/generated",
"docs/legal/external-content-agreement.mdx"
],
"exclude": ["node_modules"]
"exclude": [
"node_modules"
]
}

@ -9,7 +9,7 @@
},
"devDependencies": {
"prettier": "^3.5.0",
"turbo": "^2.4.2",
"turbo": "^2.4.4",
"typescript": "5.7.3"
},
"engines": {

593
yarn.lock

File diff suppressed because it is too large Load Diff