Commit graph

6213 commits

Author SHA1 Message Date
JJ Kasper
06ac0adcf8
Add scroll restoration handling after render is complete (#13914)
This adds scroll restoration handling to make sure the correct scroll position is restored after navigating back/forward to a page and the rendering hasn't completed by the time the default browser scroll restoration has taken place. 

An initial failing test case was added which is working with the changes in this PR, if there are any other cases that should be added let me know and I can make sure we have them to ensure we don't regress on this behavior

---

Fixes #12530
2020-06-09 20:53:44 +00:00
Jason Miller
f2e29f6ade
[Examples] using-preact: add Prefresh, DevTools & chunking fix (#13976)
This adds [prefresh](https://github.com/JoviDeCroock/prefresh) and [preact/debug + DevTools](https://preactjs.com/guide/v10/debugging/) during development. It also fixes the chunking/splitting configuration for production builds by creating a `preact` chunk based on the existing framework chunk.

I'm still considering publishing the config here as a plugin, since I worry about the copy-paste effect on this much regex-foo.

/cc @jovidecroock
2020-06-09 20:35:52 +00:00
Jan Potoms
9da99bcb66
Prepare custom routes loading for adding additional routes (#13857)
Extracted from https://github.com/vercel/next.js/pull/13333, the same exact code lives in that PR as well, but we can merge this separately if it makes reviewing https://github.com/vercel/next.js/pull/13333 easier

This PR does 3 things 
- deduplicate code from build and next-dev-server that loads custom routes from next.config.js  (`loadCustomRoutes`)
- in `loadCustomRoutes`, load these rewrites, headers and redirects configs concurrently instead of sequentially.
- in next-server, make `this.customRoutes` always defined, this allows us to remove the big `if` around its initialization code in `generateRoutes`, which in turn makes it possible to reuse this code for other routing than user defined routes, which is how https://github.com/vercel/next.js/pull/13333 adds its redirects.
2020-06-09 20:16:23 +00:00
Joe Haddad
7d648dace1
Change text from "Attention" to "Warning" (#13973)
Fixes #13972
2020-06-09 19:43:15 +00:00
JJ Kasper
b1025995b2
Update to reject when test command fails (#13722)
As noticed in https://github.com/vercel/next.js/pull/13506 when a build or export command fails the tests can just stall. This attempts to address that by rejecting when the command doesn't exit correctly and `stdout` and `stderr` aren't being looked at
2020-06-09 18:28:15 +00:00
Jayden Seric
9fea9dbe6d
Update the with-graphql-react example (#13928)
- Removed the manual `fetch` polyfill as that is handled automatically by Next.js now.
- Updated dependencies, including [`graphql-react`](https://github.com/jaydenseric/graphql-react) and [`next-graphql-react`](https://github.com/jaydenseric/next-graphql-react).
- Removed `next.config.js` as it’s no longer required for [`next-graphql-react`](https://github.com/jaydenseric/next-graphql-react).
- Renamed the index page component from `Home` to `IndexPage`.
- Tweaked the [`graphql-react`](https://github.com/jaydenseric/graphql-react) bundle size mentioned in the readme.
2020-06-09 18:06:19 +00:00
Sebastian Benz
adf1a24ccb
Update AMP Optimizer to 2.5.1 (#13925)
Most notable new feature: automated hero image preloading.

Release notes: https://github.com/ampproject/amp-toolbox/releases/tag/v2.5.1
2020-06-09 09:08:29 +00:00
Wilbert Abreu
d3f0aee0ee
Adding Example: with-recoil (#13380)
Co-authored-by: Wilbert Abreu <wilbert.a.abreu@aexp.com>
Co-authored-by: Luis Alvarez <luis@vercel.com>
Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
2020-06-08 21:33:08 -04:00
Todor Totev
47e2beba20
[Example] Deprecate with-sentry in favor of with-sentry-simple (#13904)
Co-authored-by: Luis Alvarez D <luis@vercel.com>
Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
2020-06-08 21:32:23 -04:00
Tim Neutkens
2920af7cd3
Combine taskr next-server tasks into one (#13842)
Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
2020-06-08 21:32:09 -04:00
Shyam Gupta
506116c7d0
chore: remove-redundant-example-react-import (#13907)
Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
2020-06-08 21:31:56 -04:00
Luis Alvarez D
258f8c0e4e
[Examples] Move with-react-relay-network-modern to SSG (#13878)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
2020-06-08 21:31:22 -04:00
Joe Haddad
72ddfeb6a1
v9.4.5-canary.8 2020-06-08 14:12:17 -04:00
Tim Neutkens
2169c0ce97
Use buildManifest to load page JS (#13870)
Initial work to use chunkhashes instead of buildid for the page files in production. This does not change the calculation of the filename itself initially.
2020-06-08 18:11:00 +00:00
Luis Alvarez D
b4ec992815
[Examples] Move with-graphql-hooks to SSG (#13858)
Related to https://github.com/vercel/next.js/issues/11014

The setup is very similar to the one used for Apollo examples.

@Joezo I've removed the demo example that you added to the readme (https://github.com/vercel/next.js/pull/6482) as it will be outdated after this PR is merged.
2020-06-08 16:23:34 +00:00
JJ Kasper
8dd3d2a8e2
Update handling for basePath to only automatically add (#13817)
As discussed, this streamlines the handling for `basePath` to not automatically strip and add the `basePath` when provided to `next/link` or `router.push/replace` and only automatically adds the `basePath` and when it is manually provided it will cause a 404 which ensures `href` still matches to the pages directory 1-to-1.

This also adds additional test cases that we discussed to ensure this behavior is working as intended

---

Fixes #13902
2020-06-08 15:59:50 +00:00
Luis Alvarez D
154c4958b0
[Examples] Move with-relay-modern to SSG (#13882)
Related to https://github.com/vercel/next.js/issues/11014
2020-06-08 15:41:47 +00:00
Todor Totev
1c91a46c3c
Fix message on getStaticPaths conflict with getServerSideProps (#13874)
* initial

* Update tests

Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-06-08 10:25:37 -04:00
Jan Potoms
08b2e9b3ba
Remove some leftovers after index page updates (#13876) 2020-06-08 16:17:03 +02:00
Akindolie Oluwatayo
b922fe8abf
Update README.md (#13899)
Few text corrections.
2020-06-08 14:12:38 +00:00
not
319b858e77
fix typo in comment (#13883) 2020-06-08 01:03:38 +00:00
Simon Goldin
c61fd50419
update test snapshot in with-typescript-eslint-jest (#13847)
Updating snapshot for https://github.com/vercel/next.js/pull/13732 where the `toMatchSnapshot` expectation moved to another test.
2020-06-07 23:54:16 +00:00
Jan Potoms
989b6ad145
Preserve url better in exportTrailingSlash (#13840)
Discovered while doing https://github.com/vercel/next.js/pull/13333. `#` or `?` used to be stripped if there wasn't a value behind
2020-06-07 17:15:06 +00:00
Tim Neutkens
e125d905a0
Clean up render.tsx options (#13759)
Went through and removed a bunch of internal options which are just pass-through values of buildManifest

Closes #13851
2020-06-06 23:00:03 +00:00
Rafael Almeida
a89afc2ec6
Add FAQ section to Built-in CSS Support (#13846)
I added a FAQ section to answer questions I see frequently. Motivation: https://github.com/vercel/next.js/discussions/13625#discussioncomment-23186
2020-06-06 22:40:04 +00:00
Todor Totev
2ede86ffa9
[Examples] Remove getInitialProps from with-rematch (#13834)
Related to [11014](https://github.com/vercel/next.js/issues/11014)
2020-06-06 16:57:16 +00:00
matamatanot
38519c626e
refactor: Use native fs instead of fs-extra and promisify (#13841)
**add-comment.js**
`writeFile` is not unique to `fs-extra`. 

**lib/find-page-file.ts**
ref: #12026
2020-06-06 15:40:06 +00:00
Luis Alvarez D
792a113d48
[Examples] Move api-routes-apollo-server-and-client to SSG (#13782)
Ref: https://github.com/vercel/next.js/pull/13742
2020-06-06 13:04:52 +00:00
Shu Uesugi
1935196e5e
Prefer docs site for documentation links in CMS examples (#13826)
[ch579]

Some README files in `examples/cms-*` were linking to a documentation markdown file inside the repo (e.g. `/docs/basic-features/pages.md`) instead of the documentation website. We should always link to the documentation website from an example README file because (1) the website has better UX and (2) as we’re creating the examples pages on `next-site` (https://github.com/vercel/next-site/pull/672), we’d like to avoid extra processing of markdown content.
2020-06-06 00:23:20 +00:00
Rafael Almeida
813b1e62c5
Add App.getInitialProps example to the TypeScript page (#13785)
I added the commented code with the `AppContext` type to match the example from the [Custom App](https://nextjs.org/docs/advanced-features/custom-app) page. But since this is the TS page I think we could remove these comments and use a clean example, what do you think? 🤔
2020-06-05 18:03:31 +00:00
Ty Mick
c33757f1ad
Fix base path handling with URL queries in dev server (#13560)
So I can't *entirely* explain why, but I believe this fixes #13132. 🙈 I basically ended up looking around at other `_next` URLs (are those asset URLs?) around the project and seeing that they tended to use `delBasePath()` to remove the base path from the current page's path whenever it was used.

When testing locally with the [repo submitted with the issue](https://github.com/robertovg/next-base-path-example), I no longer experience the constant page-reloading in dev mode when adding a query string to the URL.
2020-06-05 17:47:16 +00:00
Joe Haddad
064fcb6c3d
Stabilize CSS HMR Tests (#13811)
Fixes failure seen here:
https://github.com/vercel/next.js/pull/13782#issuecomment-639563107
2020-06-05 17:28:56 +00:00
Dan Williams
2c8ab89e37
Fixed graphql-hooks example data prefetch (#13799)
- Fixes the Next.js `with-graphql-hooks` example so that data is prefetched during SSR:
    - The example was using an old version of `graphql-hooks` where SSR was broken
    - It had a bug where the `graphql-hooks` client passed in to the `AppTree` as a prop was not being used (instead was creating a new client every time)

This resolves https://github.com/nearform/graphql-hooks/issues/439 for `graphql-hooks`.
2020-06-05 17:11:40 +00:00
Todor Totev
b12f5a2669
[Examples] Remove React.FC from with-stripe-typescript (#13803)
Related to [this](https://github.com/facebook/create-react-app/pull/8177).

Let me know if you want me to change something.
2020-06-05 16:17:36 +00:00
Todor Totev
097287489f
[Examples] Refactor with-electron-typescript (#13802)
Related to [11014](https://github.com/vercel/next.js/issues/11014).

Removed getInitialProps in favor of getStaticProps and getServerSideProps. Refactored one of the components from class to functional. Removed redundant imports. Removed React.FC/FunctionComponent. Added two build files to gitignore.

Let me know if you want something to be changed.
2020-06-05 16:00:10 +00:00
Luis Alvarez D
2d2c7626e3
[Examples] Move with-apollo to SSG (#13742)
Based on https://github.com/vercel/next.js/pull/13607 - I created a new PR as I can't push changes to the initial PR.

Migrated the Apollo client to use SSG, also removed the link to the live demo because I don't know who the owner is or how to update the deployment.

The implementation is pretty simple and will be added to all the other Apollo examples
2020-06-05 15:41:42 +00:00
Todor Totev
22b2920aac
enhance-with-redux-saga (#13764)
[11014](https://github.com/vercel/next.js/issues/11014)

Removed getInitialProps from _app
2020-06-05 14:59:13 +00:00
Todor Totev
4d7b3fdf98
[Examples] Refactor with-electron (#13800)
Not much happening, the main page was converted from class to functional component.
2020-06-05 14:41:03 +00:00
Todor Totev
88fd6cf31d
[Examples] Removed React.FC/FunctionComponent from with-typescript (#13798)
Related to [this](https://github.com/facebook/create-react-app/pull/8177).

Let me know if you want me to change something.
2020-06-05 10:40:37 +00:00
Todor Totev
0175b98928
[Examples] Removed React.FC from blog-starter-typescript (#13797)
Related to [this](https://github.com/facebook/create-react-app/pull/8177).

Let me know if you want me to change something.
2020-06-05 10:15:55 +00:00
JJ Kasper
aa7e15c1de
Add initial labeler WebHook config (#13772)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-06-05 11:44:38 +02:00
Shu Uesugi
4e6c326a56
Docs: Fix links to Agility CMS Examples (#13794)
 `cms-agility-cms`
 `cms-agilitycms`

See: https://github.com/vercel/next.js/tree/canary/examples/cms-agilitycms
2020-06-05 09:14:43 +00:00
Jan Potoms
1c8f1b50e3
Add a note about optional catch-all and rootmost route (#13791)
Fixes https://github.com/vercel/next.js/issues/13467
2020-06-05 06:19:01 +00:00
Adam Zacharski
f37c00279b
Fix sample command (#13789)
dev doesn't seem to exist
2020-06-05 03:18:48 +00:00
Allen Hai
87f9f91187
Update to modern env handling for userbase example (#13774)
This PR removes the `next.config.js` file and renames the environment variable in `vercel.json` to use the new `NEXT_PUBLIC` prefix.
2020-06-05 00:50:56 +00:00
Joe Haddad
4a12fb0a5f
Normalize example gitignores (#13768)
This removes a bunch of unnecessary `.gitignore`s and fixes some CMS examples that don't ignore `node_modules` etc.
2020-06-04 20:39:52 +00:00
Jazib Sawar
6ce7a0378e
CMS Cosmic Example (#13499)
* Add Cosmic CMS Example

* with native .env support, this file isn't needed anymore

* FIX use path alias

* Add cosmicjs package

* Fix alias import in pages/api/preview

* Added: react-imgix & lazysizes package

* Load lazysizes in layout

* Used imgix image with lazyloading

* Added avatar imgix optimizations

* EDITED: steps to install content, preview

* EDITED: demo link

* EDITED: Install step

* EDITED: preview link steps

* Edited: demo link

* FIXED: object_slug

* Screenshots

* Fixed object_slug link

* Update README.md

* Fix: formatting issue

* Updated readme and renamed .env to env.local

* Sanity checks

* Handle fallback data when expected

* Added link to the example in other examples

* Updated demo deployment

* Added example to docs

* minor lint fix

* Remove manual download step

* use vercel.json

Co-authored-by: Tony Spiro <tspiro@tonyspiro.com>
Co-authored-by: Luis Alvarez <luis@vercel.com>
2020-06-04 15:18:11 -05:00
Joe Haddad
8287ed233d
Replace dotenv example (#13770)
This removes the `with-dotenv` example in favor of a README that directs users to the docs.
2020-06-04 18:18:09 +00:00
JJ Kasper
4e6eb5b3a7
Update rewrite dynamic SSG error (#13724)
This error isn't specific to just fallback SSG pages since any dynamic SSG page that is rewritten to can cause the `/_next/data` request to fail also since it currently derived from the the URL. 

This can also fail for `getServerSideProps` since it derives the `/_next/data` URL the same way so might need to be updated to show in that case also
2020-06-04 17:49:53 +00:00
Jan Potoms
1b36f0c029
Fix pages/index.js and pages/index/index.js behavior (#13699)
Disambiguate between pages/index.js and pages/index/index.js so that they resolve differently.
It all started with a bug in pagesmanifest that propagated throughout the codebase. After fixing pagesmanifest I was able to remove a few hacks here and there and more logic is shared now. especially the logic that resolves an entrypoint back into a route path. To sum up what happened:

- `getRouteFromEntrypoint` is the inverse operation of `getPageFile` that's under `pages/_document.tsx`
- `denormalizePagePath` is the inverse operation of `normalizePagePath`.

Everything is refactored in terms of these operations, that makes their behavior uniform and easier to update/patch in a central place. Before there were subtle differences between those that made `index/index.js` hard to handle.

Some potential follow up on this PR:
- [`hot-reloader`](https://github.com/vercel/next.js/pull/13699/files#diff-6161346d2c5f4b7abc87059d8768c44bR207) still has one place that does very similar behavior to `getRouteFromEntrypoint`. It can probably be rewritten in terms of `getRouteFromEntrypoint`.
- There are a few places where `denormalizePagePath(normalizePagePath(...))` is happening. This is a sign that `normalizePagePath` is doing some validation that is independent of its rewriting logic. That should probably be factored out in its own function. after that I should probably investigate whether `normalizePagePath` is even still needed at all.
- a lot of code is doing `.replace(/\\/g, '')`. If wanted, that could be replaced with `normalizePathSep`.
- It looks to me like some logic that's spread across the project can be centralized in 4 functions 
  - `getRouteFromEntrypoint` (part of this PR)
  - its inverse `getEntrypointFromRoute` (already exists in `_document.tsx` as `getPageFile`)
  - `getRouteFromPageFile` 
  - its inverse `getPageFileFromRoute` (already exists as `findPageFile ` in `server/lib/find-page-file.ts`)

  It could be beneficial to structure the code to keep these fuctionalities close together and name them similarly.
 - revise `index.amp` handling in pagesmanifest. I left it alone in this PR to keep it scoped, but it may be broken wrt nested index files as well. It might even make sense to reshape the pagesmanifest altogether to handle html/json/amp/... better
2020-06-04 17:32:45 +00:00