mirror of
https://github.com/vercel/next.js.git
synced 2026-09-20 02:25:18 +08:00
4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
159 lines
4.9 KiB
TypeScript
159 lines
4.9 KiB
TypeScript
import type { InferGetServerSidePropsType } from "next";
|
|
import Head from "next/head";
|
|
import Image from "next/image";
|
|
import styles from "@/styles/Home.module.css";
|
|
import { Inter } from "next/font/google";
|
|
import { connectToElasticsearch } from "@/lib/elasticsearch";
|
|
|
|
const inter = Inter({ subsets: ["latin"] });
|
|
|
|
type HomePageProps = InferGetServerSidePropsType<typeof getServerSideProps>;
|
|
|
|
export default function Home({ isConnected }: HomePageProps) {
|
|
const connectionStatus = isConnected ? (
|
|
<p>You are connected to Elasticsearch</p>
|
|
) : (
|
|
<p>
|
|
You are NOT connected to Elasticsearch. Check the{" "}
|
|
<code className={styles.code}>README.md</code> for instructions.
|
|
</p>
|
|
);
|
|
|
|
return (
|
|
<>
|
|
<Head>
|
|
<title>Create Next App</title>
|
|
<meta name="description" content="Generated by create next app" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<link rel="icon" href="/favicon.ico" />
|
|
</Head>
|
|
<main className={styles.main}>
|
|
<div className={styles.description}>
|
|
<p>
|
|
Get started by editing
|
|
<code className={styles.code}>pages/index.tsx</code>
|
|
</p>
|
|
<div>
|
|
<a
|
|
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
By{" "}
|
|
<Image
|
|
src="/vercel.svg"
|
|
alt="Vercel Logo"
|
|
className={styles.vercelLogo}
|
|
width={100}
|
|
height={24}
|
|
priority
|
|
/>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div className={styles.center} style={{ paddingBottom: 0 }}>
|
|
<Image
|
|
className={styles.logo}
|
|
src="/next.svg"
|
|
alt="Next.js Logo"
|
|
width={180}
|
|
height={37}
|
|
priority
|
|
/>
|
|
<div className={styles.thirteen}>
|
|
<Image
|
|
src="/thirteen.svg"
|
|
alt="13"
|
|
width={40}
|
|
height={31}
|
|
priority
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
className={`${styles.center} ${inter.className}`}
|
|
style={{ paddingBlock: 20 }}
|
|
>
|
|
<h2>with Elasticsearch</h2>
|
|
</div>
|
|
|
|
<div className={`${styles.center} ${styles.status}`}>
|
|
{connectionStatus}
|
|
</div>
|
|
|
|
<div className={styles.grid}>
|
|
<a
|
|
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
className={styles.card}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<h2 className={inter.className}>
|
|
Docs <span>-></span>
|
|
</h2>
|
|
<p className={inter.className}>
|
|
Find in-depth information about Next.js features and API.
|
|
</p>
|
|
</a>
|
|
|
|
<a
|
|
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
className={styles.card}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<h2 className={inter.className}>
|
|
Learn <span>-></span>
|
|
</h2>
|
|
<p className={inter.className}>
|
|
Learn about Next.js in an interactive course with quizzes!
|
|
</p>
|
|
</a>
|
|
|
|
<a
|
|
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
className={styles.card}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<h2 className={inter.className}>
|
|
Templates <span>-></span>
|
|
</h2>
|
|
<p className={inter.className}>
|
|
Discover and deploy boilerplate example Next.js projects.
|
|
</p>
|
|
</a>
|
|
|
|
<a
|
|
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
className={styles.card}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<h2 className={inter.className}>
|
|
Deploy <span>-></span>
|
|
</h2>
|
|
<p className={inter.className}>
|
|
Instantly deploy your Next.js site to a shareable URL
|
|
with Vercel.
|
|
</p>
|
|
</a>
|
|
</div>
|
|
</main>
|
|
</>
|
|
);
|
|
}
|
|
|
|
export const getServerSideProps = async () => {
|
|
let isConnected: boolean = false;
|
|
const client = await connectToElasticsearch();
|
|
if (client !== "ERR_ENV_NOT_DEFINED") {
|
|
isConnected = true;
|
|
}
|
|
return {
|
|
props: { isConnected },
|
|
};
|
|
};
|