Clean up package.json files in the `examples` directory:
- Add `private: true`
- Remove `version` (because they are irrelevant for packages that are not meant to be published)
- Remove `name` (because they are optional for packages that are not meant to be published, and when someone clones an example, they often rename it and the property becomes stale)
- Remove `author`
- Remove `description`
- Remove `license`
Also remove `with-dynamic-app-layout` example completely, since it does the same as `layout-component` (https://github.com/vercel/next.js/pull/27121#discussion_r668178408).
## Documentation / Examples
- [x] Make sure the linting passes
[With next 11 requiring react 17](https://nextjs.org/blog/next-11#upgrade-guide), most of the examples
need to be updated, so the following snippet updated all the examples to
a compatible react version.
```bash
cd examples/
fd -g 'package.json' | xargs sed -r -i 's/"react": ".*"/"react": "^17.0.2"/
fd -g 'package.json' | xargs sed -r -i 's/"react-dom": ".*"/"react-dom": "^17.0.2"/'
# exclude experimental react version
git checkout with-reason-relay/package.json
```
This avoids the warning when you init a new Next.js app with the example:
```
warn - React 17.0.1 or newer will be required to leverage all of the upcoming features in Next.js 11. Read more: https://err.sh/next.js/react-version
```
* [with-typescript] Updated TypeScript example to use API routes
Next.js 9.0.0 has been out for a while, which supports API routes, but
the examples were never updated to make use of it. This PR adds a simple
example of an API route which also makes use of dynamic routing.
A simple `fetch()` wrapper is also added for example purposes, and the
pages structure have also been updated to dynamic routing.
* Properly link to the dynamic page
I've updated the TypeScript dependency to the latest version. Also
removed some dependencies that may not be needed.
I've also fixed tslint errors which may have appeared because of
previous updates to this starter kit, as well as added comments
to explain some parts of the code.
The current `examples/with-typescript` is not using the latest type definitions currently available on DefinitelyTyped project for next.
Added new list page examples that demonstrate how to use the new Types for both stateless functional components and classes. Also modified examples for list to demonstrate typings for `getInitialProps`.
I wrote a [script](https://github.com/j0lv3r4/dependency-version-updater) to update dependencies recursively in `package.json` files, e.g.:
```
$ node index.js --path="./examples" --dependencies="react=^16.7.0,react-dom=^16.7.0"
```
This PR contains the result against the examples folder.
Updating to a more recent version of `@types/next` fixes an error I encountered while building a new app on top of the "with-typescript" example:
`Property `push` not found in SingletonRouter`
Additional context: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/26665
To test, add a simple Router.push operation to the `pages/index.tsx`
```
import Router from 'next/router'
// ...
<span onClick={() => Router.push({ pathname: '/about' })}>TEST</span>
```
This example gave me 404s on `pages/*.tsx` when using it with the latest nextjs (`5.1.0`) and `@zeit/next-typescript@0.0.11`. The latest next-typescript plugin version fixes it.
* Added react and react-dom dependencies
Added missing `react` and `react-dom` dependencies which are required by next.js
* Moved react & react-dom to dependencies
Moved react & react-dom to dependencies from devDependencies
* TypeScript example proposal
* removed unused loader
Removed typings
Moved TypeScript to dev dependencies
removed unused typings
changed react typings version
removed react dependency
set next dependency version to latest
removed not needed babel preset
enabled sourcemaps
simplified tsconfig
modified component to be a functional one
* Ignore build
* Making npm script Windows-friendly
* Clean up
* Added readme
* fixed typo