Files
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

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;