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
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
import React from "react";
|
|
import App from "next/app";
|
|
import { createOvermind, createOvermindSSR, rehydrate } from "overmind";
|
|
import { Provider } from "overmind-react";
|
|
import { config } from "../overmind";
|
|
|
|
class MyApp extends App {
|
|
// CLIENT: On initial route
|
|
// SERVER: On initial route
|
|
constructor(props) {
|
|
super(props);
|
|
|
|
const mutations = props.pageProps.mutations || [];
|
|
|
|
if (typeof window !== "undefined") {
|
|
// On the client we just instantiate the Overmind instance and run
|
|
// the "changePage" action
|
|
this.overmind = createOvermind(config);
|
|
this.overmind.actions.changePage(mutations);
|
|
} else {
|
|
// On the server we rehydrate the mutations to an SSR instance of Overmind,
|
|
// as we do not want to run any additional logic here
|
|
this.overmind = createOvermindSSR(config);
|
|
rehydrate(this.overmind.state, mutations);
|
|
}
|
|
}
|
|
// CLIENT: After initial route, on page change
|
|
// SERVER: never
|
|
componentDidUpdate() {
|
|
// This runs whenever the client routes to a new page
|
|
this.overmind.actions.changePage(this.props.pageProps.mutations || []);
|
|
}
|
|
// CLIENT: On every page change
|
|
// SERVER: On initial route
|
|
render() {
|
|
const { Component } = this.props;
|
|
|
|
return (
|
|
<Provider value={this.overmind}>
|
|
<Component />
|
|
</Provider>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default MyApp;
|