1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
Commit graph

2366 commits

Author SHA1 Message Date
Tim Neutkens 6a087c6a5d
Rename commons directory to runtime (#4853) 2018-07-27 19:29:25 +02:00
Stefan Ivic fc05c9c273 Update readme with alternative hostname option (#4829)
Tackles the issue in #4025.
2018-07-26 12:42:35 +02:00
Tim Neutkens 8e2c199ea7
Fix dynamic import page navigation (#4842)
Fixes #3775
2018-07-26 12:38:45 +02:00
Tomek f4988e7fa3 update with-markdown example (#4839)
Changes:

* replaced the `markdown-in-js` with nextjs plugin for `MDX`

Highly inspired by the example from [MDX repository](https://github.com/mdx-js/mdx/tree/master/examples/next)
2018-07-25 20:06:40 +02:00
Tim Neutkens 475b426ed1
Compile pages to .next/static directory (#4828)
* Compile pages to .next/static/<buildid>/pages/<page>

* Fix test

* Export class instead of using exports

* Use constant for static directory

* Add comment about what the middleware does
2018-07-25 13:45:42 +02:00
Tomek c090a57e77 update with-flow example (#4835)
Changes:
* updated packages
* moved the content of `layout` to `_app.js` and created simple `Page` component
* replaced `import * as React` because it is not necessary to import everything
* moved `next.js.flow` to `flow-typed` as it is default directory for library definitions
* updated the gif
2018-07-25 13:42:40 +02:00
Tomek d1fbcfe5de update with-asset-import example (#4830)
Changes:
- use `next-images` plugin for handling static files import
2018-07-24 19:11:21 +02:00
S. Suzuki 6bd24fd9e2 Fix micro readme example (#4827)
I found mistake on readme
2018-07-24 13:55:13 +02:00
Tim Neutkens 75476a9136
[WIP] Webpack 4, react-error-overlay, react-loadable (#4639)
Webpack 4, react-error-overlay, react-loadable (major)
2018-07-24 11:24:40 +02:00
Rustam Gilyaziev e2b518525c Update with-react-intl example (#4825)
Changes:
- added withIntl HOC because injectIntl do no hoist static methods
- fixed `Cannot read property 'locale' of undefined`
2018-07-24 00:43:57 +02:00
Tomek b1222962f0 update client-only-render-external-dependency example (#4822)
Changes:
* use `dynamic` imports instead of `require`
* update `recharts` dependency
2018-07-22 20:53:22 +02:00
Tomek 53853d3fa9 update with-redux-observable example (#4818) 2018-07-22 01:37:59 +02:00
Tomek 822cc3c863 update with-react-intl example (#4817) 2018-07-22 01:37:25 +02:00
Tomek 0d93d42640 update with-react-ga example (#4816)
Changes:
* updated `react-ga` package
* updated README.md
* Removed `Layout` component and used custom App component
* used `routeChangeComplete` to log route changes.
2018-07-21 19:27:48 +02:00
Adrian Li 6ef7625ba6 Update example: Semantic-UI (#4815)
The existing example currently does not work because of outdated usage patterns. This PR seeks to update these patterns to the latest recommended best practice while bumping versions.

# Summary

- Bumped version numbers in `package.json`;
- Moved `<link />` tag from `pages/index.js` to `pages/_document.js` as is [recommended](https://github.com/zeit/next-plugins/tree/master/packages/next-css#usage);
- Replace individual css/font imports with import of minified CSS as is [recommended](https://react.semantic-ui.com/usage#semantic-ui-css-package);
- Removed prop (no longer used) from `<List />` element.
2018-07-21 12:42:38 +02:00
Brian Kim 0298c722b1 improve custom-server-fastify example (#4805)
I’ve been experimenting with Next.js and Fastify and I made the following changes to the Fastify example based on what I found:

### Use Fastify’s plugin API
IMO putting Fastify’s listen call in a promise callback is an anti-pattern, b/c the Fastify plugin API is meant to solve the problem of async server bootstrapping.

[From Fastify’s Getting Started docs](https://www.fastify.io/docs/latest/Getting-Started/):
> Fastify provides a foundation that assists with the asynchronous bootstrapping of your application.

### Set reply.sent in handlers which return promises

[From Fastify’s Routes docs](https://www.fastify.io/docs/latest/Routes/#promise-resolution):
> If your handler is an `async` function or returns a promise, you should be aware of a special behaviour which is necessary to support the callback and promise control-flow. If the handler's promise is resolved with `undefined`, it will be ignored causing the request to hang and an *error* log to be emitted.
>
> 1. If you want to use `async/await` or promises but respond a value with `reply.send`:
>     - **Don't** `return` any value.
>     - **Don't** forget to call `reply.send`.
> 2. If you want to use `async/await` or promises:
>     - **Don't** use `reply.send`.
>     - **Don't** return `undefined`.

`app.render` returns a promise which contains undefined, so returning it in a Fastify handler will log an error. However, returning anything besides undefined will cause Fastify to try to write to the response which Next.js has already ended. The solution is to manually set the `reply.sent` flag to true when any Next.js rendering promise is fulfilled as an alternative to calling `reply.send`.

### Make Next.js handle 404 errors
This allows any route to throw a NotFound error and let Next.js handle the rendering of the 404 page.

### Make Next.js handle any route which starts with `_next` in dev
This prevents dev routes from being caught by user-defined routes.
2018-07-19 21:27:22 +02:00
Tim Neutkens d83207cd4b 6.1.1-canary.2 2018-07-19 14:39:44 +02:00
Tim Neutkens 6415d5f4ee
Upgrade fastify in custom-server-fastify (#4801) 2018-07-19 00:18:15 +02:00
Tim Neutkens 76657f8451
Upgrade serve in with-static-export example (#4800) 2018-07-18 22:16:06 +02:00
Lukasz Ostrowski 6e5bab1a1d Ensured process exits after static export (#4747) (#4749)
Fixes [this issue](https://github.com/zeit/next.js/issues/4747)

I don't know what is the reason why the process does not finish, because it can be reproduced in this repo in many environments (my local mac os and Netlify pipeline).

However, it fixes the problem and it's 100% safe.
2018-07-17 17:11:19 +02:00
David Calhoun 6f4925c193 [change] Update RNW example (#4787) 2018-07-15 20:59:20 +02:00
Leo Lamprecht 0f87368da2 Renewed npm token (#4780)
As per [this post](https://blog.npmjs.org/post/175824896885/incident-report-npm-inc-operations-incident-of).

**This needs to be cherry-picked to master as well.**
2018-07-13 19:57:46 +02:00
Tim Neutkens 921084fc4e 6.1.1-canary.1 2018-07-13 18:18:05 +02:00
Albin Ekblom 992ea2e875 Allow app component to be wrapped with custom enhancer when rendering (#4762)
* Add support for custom App and Component enhancers

* Add ctx.renderPage test

* Add tests for single enhancer function

* Cleanup renderPage options check

* Cleanup

* Add comment about backwards compatibility for renderPage

* Add more test cases
2018-07-13 11:22:45 +02:00
Kenneth Luján Rosas dca2ca6f2b [with-apollo] simplify apolloState prop (#4755)
As seen on `with-apollo-auth` there are some things that need to be addressed here too.

* #4554 remove useless `apolloState` from App props on `getDataFromTree`
* #4563 simplify `apolloState` prop

Let me know if further changes/fixes are needed. 
Thank you 🎉
2018-07-12 18:59:28 +02:00
James Reggio 1a3f950777 Respect target on <a/> tags under Link (#4763)
There are occasions where it is useful to have `target='_blank'` on hyperlinks within your own app. (For example, if your app is being loaded in an iframe and you'd like for the links to break out in to new windows.)

With this PR, the `onClick` logic in Link now checks for an external target on the nested <a/> tag, and will fall back to the default behavior if it's present, similar to the logic for shift-/cmd-clicking the link.
2018-07-12 00:03:25 +02:00
James Reggio 4cc691c0b8 Fix #4574: getInitialProps is not called on _error page for client-side errors (#4764)
## What's wrong

This problem is specific to errors that happen on the client _after_ the initial mounting of the component. (The router has special logic to handle exceptions thrown in `getInitialProps` during a client-side navigation, and I've confirmed this logic is correct.)

Specifically, if the page is mounted, and you raise an exception on the page, the exception will cause  the error page to be mounted without ever invoking `getInitialProps` on the new App/Error page pairing.

This has been illustrated with multiple repros in #4574.

## Why is it broken

This regression was introduced two months ago in #4156, where the invocation of `getInitialProps` was removed from the app's top-level error handler. Specifically, [this line](https://github.com/zeit/next.js/pull/4156/files#diff-895656aeaccff5d7c0f56a113ede9662L147) was removed and [replaced by a comment](https://github.com/zeit/next.js/pull/4156/files#diff-895656aeaccff5d7c0f56a113ede9662R167) that says that "`App` will handle the calling of `getInitialProps`".

I believe the sentiment about "`App` will handle calling `getInitialProps`" is mistaken. In fact, it really doesn't make sense on its face, since it would require an instance lifecycle method of `App` (which is mounted immediately after the comment) to invoke the `static getInitialProps` method on the error page.

## How I fixed it

I've fixed this in a fork by restoring Lines 146 – 148 that were removed in #4156. I think this is the right fix, but Next.js's handling of `getInitialProps` could certainly be improved. (The code in [this conditional](86d01706a6/client/index.js (L173)) speaks to the unnecessary complexity around this.)
2018-07-11 23:58:42 +02:00
Michael Herold 5b3578e58f #4751 - Explicitly mention install when cloning examples (#4758)
Preferably this installation wouldn't be necessary, but in lieu of a fix...

#4751
2018-07-11 23:56:15 +02:00
Albin Ekblom d8be2a0379 Add example of process.env runtimeConfig (#4759) 2018-07-11 12:48:14 +02:00
Jacob Page d51245b877 Improve documentation on runtime configuration (#4756)
* Remove nesting of runtime configuration under the babel section, since it's not related to babel.
* Clean up confusing verbiage relating to "keys."
2018-07-10 23:02:45 +02:00
jhartley218 ad2d4432e7 Update @types/next to latest in typescript example. (#4750)
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>
```
2018-07-09 13:32:52 +02:00
Tim Neutkens a42a969e07 6.1.1-canary.0 2018-07-06 20:08:04 +02:00
Tim Neutkens 183ed6b748 Merge branch 'master' into canary 2018-07-06 20:07:21 +02:00
Brendan Houle d7d61d3d4a Prepend polyfills only once (#4643) (#4738) 2018-07-06 11:54:16 +02:00
NikitaVlaznev 728871b005 Apollo example: avoid double render in browser (#4734)
Apollo's getDataFromTree is supposed to be called during the server side rendering.
Being called in browser it fires an unnecessary fake render process and blocks components from rendering with loading=true.

Also there was a mistake in this code:

    // `getDataFromTree` renders the component first, the client is passed off as a property.
    // After that rendering is done using Next's normal rendering pipeline
    this.apolloClient = props.apolloClient || initApollo(props.apolloState.data)

**Apollo** component is not rendered by getDataFromTree actually, it renders the **App** directly, thus props.apolloClient will always be undefined.

This example was discussed here: https://github.com/zeit/next.js/issues/387.
2018-07-05 20:49:23 +02:00
Jacob Page 498f37e33f Support events emitter for router (#4726)
Fixes #4679 
* Document usage of `events` router property
* Expose `events` in the `router` context object
2018-07-05 14:41:18 +02:00
Michael Hsu a1f5f35c2e fix(with-pkg): Rename dist to server (#4727)
This PR is a follow-up to 6.1 breaking #4506: Rename `dist` to `server`
2018-07-04 15:12:36 +02:00
Luc 71fe4984bf Upgrade styled-jsx to 2.2.7 (#4714)
Fixes #4713

I ran into this issue, when re-installing :
```
error upath@1.0.4: The engine "node" is incompatible with this module. Expected version ">=4 <=9".
error Found incompatible module
```

I used `yarn install --ignore-engines` as a workaround.
2018-07-02 23:00:18 +02:00
Junyoung Choi (Sai) a25359bf3f Improve with-mobx example (#4705)
in flavor of https://github.com/zeit/next.js/pull/4377
2018-06-30 22:29:24 +02:00
Vinicius Pacheco Furtado de6bf4e75f Fix typescript examples (#4704)
Update @zeit/next-typescript version on examples using it
2018-06-30 22:23:38 +02:00
Gary Meehan 0da53a1444 Add [with-storybook] example (#4588)
The purpose of the PR is to add the simplest possible integration with Storybook. 

It leaves the default Storybook and also adds a custom component to show how it would be used in both the app and Storybook.

Update: 
Tested with latest 👉  6.1.1
2018-06-29 22:24:44 +02:00
Gary Meehan 6a489efc1a [hello-world example] remove unused file (patch)
Removes unused file
Adds note on `day` subdirectory.
2018-06-29 22:23:39 +02:00
dengyunxie 4744fbd096 Make the file beautiful (#4694)
unified format😀😋
2018-06-29 17:02:00 +02:00
Tim Neutkens 0bcee3c23f 6.1.1 2018-06-29 10:27:42 +02:00
Niklas Wagner dde20fc841 Added note for AWSAppSyncClient (#4611)
I had some trouble to get server side rendering with the AWSAppSyncClient working. I finally found a solution in https://github.com/awslabs/aws-mobile-appsync-sdk-js/issues/82 but it might be worth to share it here as well. Instead of adding a big code block to each file I'll just refer to this Pull Request.

______

In case you want to use the `AWSAppSyncClient` you just need to replace the `create()` function with this function:
```jsx
import AWSAppSyncClient from 'aws-appsync';
import { AUTH_TYPE } from 'aws-appsync/lib/link/auth-link';

function create(initialState) {
  const client = new AWSAppSyncClient({
    url: AWS_AppSync.graphqlEndpoint,
    region: AWS_AppSync.region,
    auth: {
      type: AUTH_TYPE.API_KEY,
      apiKey: AWS_AppSync.apiKey,

      // Amazon Cognito Federated Identities using AWS Amplify
      //credentials: () => Auth.currentCredentials(),

      // Amazon Cognito user pools using AWS Amplify
      // type: AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,
      // jwtToken: async () => (await Auth.currentSession()).getIdToken().getJwtToken(),
    },
    disableOffline: true,
  }, {
    cache: new InMemoryCache().restore(initialState || {}),
    ssrMode: true
  });

  return client;
}
```
2018-06-29 10:08:26 +02:00
Tim Neutkens 9d52268604 6.1.0-canary.0 2018-06-28 20:58:33 +02:00
Tim Neutkens da0c7a9ce6 Merge branch 'master' into canary 2018-06-28 20:57:39 +02:00
Tim Neutkens 57d8af857a
Make sure hashchanges get triggered (#4676)
When clicking a next/link with a hash (#something) multiple times, it wouldn't keep the scrolling behavior browsers have. This makes sure we correctly trigger it.
2018-06-28 20:56:18 +02:00
Thomas Hermann 1c817d2bbf Use nonce attribute for all scripts and preloads if provided (#4539)
When implementing a strict CSP with nonces and `strict-dynamic`, every script and preload requires a nonce.

https://csp.withgoogle.com/docs/strict-csp.html
2018-06-28 20:16:30 +02:00
Tim Neutkens 17e410a1d0
Fix Typescript HMR (#4689)
Fixes #4686

Adds tests for @zeit/next-typescript so that we don't regress on this again.

I've fixed an issue in the `next` CLI too which caused lingering processes when the process gets force killed, which is what we do in the test suite, so it kept running if there was no manual quit.
2018-06-28 20:07:41 +02:00