Repository URL to install this package:
Version:
0.9.6 ▾
|
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const exotic_1 = require("exotic");
const elements_1 = require("./elements");
let starCount = 0;
class Star extends react_1.default.PureComponent {
/**
* @description simplify factory
*/
static from(attributes, props, addingNumber) {
//
if (exotic_1.isNumberPrimitive(attributes)) {
starCount += 1;
attributes = {
value: attributes,
key: attributes + starCount,
};
}
return Star.renderStar(attributes, props, addingNumber);
}
// I think this is more for overall ratings
// which maybe should be a feature and use renderprops
//
// @todo this should be renderStarWrap...
// probably star should be a stronger component? (folder)
static renderStar(attributes, props, addingNumber) {
const { isNumberPrefix, isNumberSuffix } = props;
if (isNumberPrefix && addingNumber) {
return (react_1.default.createElement(elements_1.StarAndNumberWrap, null,
react_1.default.createElement(elements_1.StarNumber, null, addingNumber),
react_1.default.createElement(Star, Object.assign({}, attributes))));
}
if (isNumberSuffix && addingNumber) {
return (react_1.default.createElement(elements_1.StarAndNumberWrap, null,
react_1.default.createElement(Star, Object.assign({}, attributes)),
react_1.default.createElement(elements_1.StarNumber, null, addingNumber)));
}
return react_1.default.createElement(Star, Object.assign({}, attributes));
}
render() {
const { value } = this.props;
// determine class name based on value for styling
// if (isFloat(value)) {}
// if (isInt(value)) {}
const isFull = value > 0;
const isEmpty = value <= 0;
const attributes = {
isFull,
isEmpty,
'data-percent': value,
};
return react_1.default.createElement(elements_1.StyledStarIcon, Object.assign({}, attributes));
}
}
Star.defaultProps = {
value: 1,
isNumberPrefix: false,
isNumberSuffix: false,
};
exports.Star = Star;
exports.default = Star;
//# sourceMappingURL=Star.js.map