export default function defaultPropsHandler()

in src/handlers/defaultPropsHandler.ts [138:169]


export default function defaultPropsHandler(
  documentation: Documentation,
  componentDefinition: NodePath,
  importer: Importer,
): void {
  let statelessProps: NodePath | null = null;
  const defaultPropsPath = getDefaultPropsPath(componentDefinition, importer);
  /**
   * function, lazy, memo, forwardRef etc components can resolve default props as well
   */
  if (!isReactComponentClass(componentDefinition, importer)) {
    statelessProps = getStatelessPropsPath(componentDefinition, importer);
  }

  // Do both statelessProps and defaultProps if both are available so defaultProps can override
  if (statelessProps && t.ObjectPattern.check(statelessProps.node)) {
    getDefaultValuesFromProps(
      statelessProps.get('properties'),
      documentation,
      true,
      importer,
    );
  }
  if (defaultPropsPath && t.ObjectExpression.check(defaultPropsPath.node)) {
    getDefaultValuesFromProps(
      defaultPropsPath.get('properties'),
      documentation,
      false,
      importer,
    );
  }
}