Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / view-container / deps / withSchema.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.withSchema = withSchema;
exports.renderSchemaMethod = renderSchemaMethod;
exports.renderWithSchemaSiblingMethodFactory = renderWithSchemaSiblingMethodFactory;
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _JSONLD = _interopRequireDefault(require("atoms/JSON-LD"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// @tutorial https://developers.google.com/search/docs/data-types/breadcrumbs
// simply rendering data coming from props from data layer as props
function renderSchemaMethod(data) {
  data = data === undefined ? this.props.store ? this.props.store.schemaData : this.props.data : data; // const asSchema = toSchemaOrgForName(name, data)
  // const asSchema = data

  return _react.default.createElement(_JSONLD.default, data);
}

function renderWithSchemaSiblingMethodFactory(reference) {
  return function (children) {
    return [this.renderSchema(), children];
  };
}
/**
 * @tutorial https://developers.google.com/search/docs/data-types/breadcrumbs
 * @param {*} name
 * @type {Decorator}
 */


function withSchema(name) {
  return function (TargetComponent) {
    const reference = TargetComponent.prototype.render;
    TargetComponent.prototype.renderSchema = renderSchemaMethod;
    TargetComponent.prototype.render = renderWithSchemaSiblingMethodFactory(reference);
    return TargetComponent;
  };
}

var _default = withSchema;
exports.default = _default;