mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Create displayName util (#2286)
This commit is contained in:
parent
fe77397f26
commit
7b8a4ea234
|
@ -1,4 +1,5 @@
|
|||
import React from 'react'
|
||||
import { getDisplayName } from './utils'
|
||||
|
||||
let currentChunks = new Set()
|
||||
|
||||
|
@ -55,7 +56,7 @@ export default function dynamicComponent (p, o) {
|
|||
loadComponent () {
|
||||
promise.then((AsyncComponent) => {
|
||||
// Set a readable displayName for the wrapper component
|
||||
const asyncCompName = AsyncComponent.displayName || AsyncComponent.name
|
||||
const asyncCompName = getDisplayName(AsyncComponent)
|
||||
if (asyncCompName) {
|
||||
DynamicComponent.displayName = `DynamicComponent for ${asyncCompName}`
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import React, { Component } from 'react'
|
||||
import { getDisplayName } from './utils'
|
||||
|
||||
export default function withSideEffect (reduceComponentsToState, handleStateChangeOnClient, mapStateOnServer) {
|
||||
if (typeof reduceComponentsToState !== 'function') {
|
||||
|
@ -13,10 +14,6 @@ export default function withSideEffect (reduceComponentsToState, handleStateChan
|
|||
throw new Error('Expected mapStateOnServer to either be undefined or a function.')
|
||||
}
|
||||
|
||||
function getDisplayName (WrappedComponent) {
|
||||
return WrappedComponent.displayName || WrappedComponent.name || 'Component'
|
||||
}
|
||||
|
||||
return function wrap (WrappedComponent) {
|
||||
if (typeof WrappedComponent !== 'function') {
|
||||
throw new Error('Expected WrappedComponent to be a React component.')
|
||||
|
|
|
@ -42,12 +42,16 @@ export function printAndExit (message, code = 1) {
|
|||
process.exit(code)
|
||||
}
|
||||
|
||||
export function getDisplayName (Component) {
|
||||
return Component.displayName || Component.name || 'Unknown'
|
||||
}
|
||||
|
||||
export async function loadGetInitialProps (Component, ctx) {
|
||||
if (!Component.getInitialProps) return {}
|
||||
|
||||
const props = await Component.getInitialProps(ctx)
|
||||
if (!props && (!ctx.res || !ctx.res.finished)) {
|
||||
const compName = Component.displayName || Component.name
|
||||
const compName = getDisplayName(Component)
|
||||
const message = `"${compName}.getInitialProps()" should resolve to an object. But found "${props}" instead.`
|
||||
throw new Error(message)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue