UNPKG

@r3l/app

Version:
80 lines (60 loc) 4.67 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styled = require("../../styled"); var _post = require("../../../utils/post"); var _piechart = require("../../stats/piechart"); var _styles = require("../../../styles"); var _numbers = require("../../../utils/numbers"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } BetStats.propTypes = { post: _propTypes.default.object, earning: _propTypes.default.object, amount: _propTypes.default.number, maxBet: _propTypes.default.number }; var _default = /*#__PURE__*/(0, _react.memo)(BetStats); exports.default = _default; function BetStats(_ref) { var _post$data, _post$data2, _post$data3, _post$data4, _post$data5; var post = _ref.post, amount = _ref.amount, earning = _ref.earning, maxBet = _ref.maxBet; var existingShares = (earning === null || earning === void 0 ? void 0 : earning.shares) || 0; var existingStake = (earning === null || earning === void 0 ? void 0 : earning.stakedTokens) || 0; var bets = (post === null || post === void 0 ? void 0 : (_post$data = post.data) === null || _post$data === void 0 ? void 0 : _post$data.bets) || (post === null || post === void 0 ? void 0 : (_post$data2 = post.data) === null || _post$data2 === void 0 ? void 0 : _post$data2.upVotes); var users = bets > 1 ? 'users' : 'user'; var invText = bets && post !== null && post !== void 0 && (_post$data3 = post.data) !== null && _post$data3 !== void 0 && _post$data3.totalShares ? "".concat(bets, " ").concat(users, " bet a total of ").concat((0, _numbers.abbreviateNumber)((post === null || post === void 0 ? void 0 : (_post$data4 = post.data) === null || _post$data4 === void 0 ? void 0 : _post$data4.totalShares) || 0), " coins on this post") : 'You are the first to bet on this post. This means you win big if it becomes relevant!'; var shares = (0, _post.computeShares)({ post: post, stakedTokens: amount }); // const postRewards = computePostPayout(post.data, community); var shareOfRewards = !bets ? (existingStake + amount) / (maxBet + existingStake) : (shares + existingShares) / (post.data.shares + shares); var shareOfRewardsPercent = shareOfRewards * 100; var shareEl = /*#__PURE__*/_react.default.createElement(_styled.SmallText, null, ' ', /*#__PURE__*/_react.default.createElement(_styled.Text, { sx: { top: 2 } }, /*#__PURE__*/_react.default.createElement(_piechart.PieChart, { w: '12px', h: '12px', percent: 100 - shareOfRewardsPercent, strokeWidth: 30, color: _styles.colors.blue })), ' ', (0, _numbers.abbreviateNumber)(shareOfRewardsPercent), "%"); return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_styled.SmallText, null, invText), post !== null && post !== void 0 && (_post$data5 = post.data) !== null && _post$data5 !== void 0 && _post$data5.totalShares ? /*#__PURE__*/_react.default.createElement(_styled.Row, { sx: { mt: 2.001, alignItems: 'baseline' } }, /*#__PURE__*/_react.default.createElement(_styled.SmallText, null, "Your estimated share of post payout:"), /*#__PURE__*/_react.default.createElement(_styled.SmallText, null, shareEl)) : null); } //# sourceMappingURL=betstats.js.map