a143bc4662
## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [x] Make sure the linting passes
90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
import Head from 'next/head'
|
|
import Image from 'next/image'
|
|
import styles from '../styles/Home.module.css'
|
|
import { connectToElasticsearch } from '../lib/elasticsearch'
|
|
|
|
export default function Home({ isConnected }) {
|
|
return (
|
|
<div className={styles.container}>
|
|
<Head>
|
|
<title>Create Next App</title>
|
|
<meta name="description" content="Generated by create next app" />
|
|
<link rel="icon" href="/favicon.ico" />
|
|
</Head>
|
|
|
|
<main className={styles.main}>
|
|
<h1 className={styles.title}>
|
|
Welcome to{' '}
|
|
<a href="https://nextjs.org">Next.js with Elasticsearch!</a>
|
|
</h1>
|
|
{isConnected ? (
|
|
<h5 className="subtitle">You are connected to Elasticsearch</h5>
|
|
) : (
|
|
<h5 className="subtitle">
|
|
You are NOT connected to Elasticsearch. Check the{' '}
|
|
<code>README.md</code> for instructions.
|
|
</h5>
|
|
)}
|
|
|
|
<p className={styles.description}>
|
|
Get started by editing{' '}
|
|
<code className={styles.code}>pages/index.js</code>
|
|
</p>
|
|
|
|
<div className={styles.grid}>
|
|
<a href="https://nextjs.org/docs" className={styles.card}>
|
|
<h2>Documentation →</h2>
|
|
<p>Find in-depth information about Next.js features and API.</p>
|
|
</a>
|
|
|
|
<a href="https://nextjs.org/learn" className={styles.card}>
|
|
<h2>Learn →</h2>
|
|
<p>Learn about Next.js in an interactive course with quizzes!</p>
|
|
</a>
|
|
|
|
<a
|
|
href="https://github.com/vercel/next.js/tree/master/examples"
|
|
className={styles.card}
|
|
>
|
|
<h2>Examples →</h2>
|
|
<p>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}
|
|
>
|
|
<h2>Deploy →</h2>
|
|
<p>
|
|
Instantly deploy your Next.js site to a public URL with Vercel.
|
|
</p>
|
|
</a>
|
|
</div>
|
|
</main>
|
|
|
|
<footer className={styles.footer}>
|
|
<a
|
|
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
Powered by{' '}
|
|
<span className={styles.logo}>
|
|
<Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} />
|
|
</span>
|
|
</a>
|
|
</footer>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export async function getServerSideProps(context) {
|
|
let isConnected = false
|
|
const client = await connectToElasticsearch()
|
|
if (client !== 'ERR_ENV_NOT_DEFINED') {
|
|
isConnected = true
|
|
}
|
|
return {
|
|
props: { isConnected },
|
|
}
|
|
}
|