react-overrides
Version:
Helper for create reusable components through Overrides Pattern
213 lines (179 loc) • 5.1 kB
JavaScript
"use strict";
var React = _interopRequireWildcard(require("react"));
var _ = _interopRequireDefault(require(".."));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var Option = function Option(props) {
return React.createElement("div", null, props.b + 2 * props.a);
};
var Container = function Container(props) {
return React.createElement("div", null, props.children);
};
var OverridableProps = {
Option: Option,
Container: Container
};
var Select = function Select(props) {
return React.createElement(Container, _.default, React.createElement(Option, _extends({}, _.default, {
a: 1,
b: (0, _.default)().b || "x"
})));
};
/**
* $ExpectError
* Pass prop wrong prop value
*/
var SelectWrongProp = function SelectWrongProp(props) {
return React.createElement(Option, _extends({}, _.default, {
a: 3,
b: "x"
}));
};
var OverridedSelect = function OverridedSelect() {
return React.createElement(Select, {
overrides: {
Option: {
props: {
a: 1,
b: "1"
}
},
Container: {
props: {}
}
}
});
};
var OverridedSelectPartialProps = function OverridedSelectPartialProps() {
return React.createElement(Select, {
overrides: {
Option: {
props: {
a: 1
}
},
Container: {
props: {}
}
}
});
};
var OverridedSelectPartialComponents = function OverridedSelectPartialComponents() {
return React.createElement(Select, {
overrides: {
Option: {
props: {
a: 1
}
}
}
});
};
/**
* $ExpectError
* prettier-ignore
* Pass prop wrong prop value
*/
var OverridedWrongProp = function OverridedWrongProp() {
return React.createElement(Select, {
overrides: {
Option: {
props: {
a: 3,
b: "1"
}
}
}
});
};
var NewOption = function NewOption(props) {
return React.createElement("div", null, "new" + props.b + 4 * props.a);
};
var OverridedSelectNewComponent = function OverridedSelectNewComponent() {
return React.createElement(Select, {
overrides: {
Option: {
component: NewOption
}
}
});
};
var NewOptionPartial = function NewOptionPartial(props) {
return React.createElement("div", null, "new" + props.b);
};
var OverridedNewComponentPartial = function OverridedNewComponentPartial() {
return React.createElement(Select, {
overrides: {
Option: {
component: NewOptionPartial
}
}
});
};
/**
* $ExpectError
* prettier-ignore
* Pass incompatible component
*/
var Option11 = function Option11(props) {
return React.createElement("div", null, props.b + 2 * props.a);
};
var Container11 = function Container11(props) {
return React.createElement("div", null, props.children);
};
var OverridableProps11 = {
Option11: Option11,
Container11: Container11
};
var Select11 = function Select11(props) {
return React.createElement(Container, null, React.createElement(Option, {
a: 1,
b: "x"
}));
};
var NewOptionWrong = function NewOptionWrong(props) {
return React.createElement("div", null, "new" + props.b);
};
var OverridedNewComponentWrong = function OverridedNewComponentWrong() {
return React.createElement(Select11, {
overrides: {
Option11: {
component: NewOptionWrong
}
}
});
};
/**
* $ExpectError
* prettier-ignore
* Pass incompatible component
*/
var Option22 = function Option22(props) {
return React.createElement("div", null, props.b + 2 * props.a);
};
var Container22 = function Container22(props) {
return React.createElement("div", null, props.children);
};
var OverridableProps22 = {
Option22: Option22,
Container22: Container22
};
var Select22 = function Select22(props) {
return React.createElement(Container, null, React.createElement(Option, {
a: 1,
b: "x"
}));
};
var NewOptionWrongExtra = function NewOptionWrongExtra(props) {
return React.createElement("div", null, "new" + props.b);
};
var OverridedNewComponentWrongExtra = function OverridedNewComponentWrongExtra() {
return React.createElement(Select22, {
overrides: {
Option22: {
component: NewOptionWrong
}
}
});
};