rsnext/examples/with-apollo-and-redux/pages/index.js
Steven 4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## 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
2024-01-11 16:01:44 -07:00

64 lines
1.3 KiB
JavaScript

import { useDispatch } from "react-redux";
import { initializeStore } from "../lib/redux";
import { initializeApollo } from "../lib/apollo";
import useInterval from "../lib/useInterval";
import Layout from "../components/Layout";
import Clock from "../components/Clock";
import Counter from "../components/Counter";
import Submit from "../components/Submit";
import PostList, {
ALL_POSTS_QUERY,
allPostsQueryVars,
} from "../components/PostList";
const IndexPage = () => {
// Tick the time every second
const dispatch = useDispatch();
useInterval(() => {
dispatch({
type: "TICK",
light: true,
lastUpdate: Date.now(),
});
}, 1000);
return (
<Layout>
{/* Redux */}
<Clock />
<Counter />
<hr />
{/* Apollo */}
<Submit />
<PostList />
</Layout>
);
};
export async function getStaticProps() {
const reduxStore = initializeStore();
const apolloClient = initializeApollo();
const { dispatch } = reduxStore;
dispatch({
type: "TICK",
light: true,
lastUpdate: Date.now(),
});
await apolloClient.query({
query: ALL_POSTS_QUERY,
variables: allPostsQueryVars,
});
return {
props: {
initialReduxState: reduxStore.getState(),
initialApolloState: apolloClient.cache.extract(),
},
revalidate: 1,
};
}
export default IndexPage;