JSFiddle - React, Tailwind, and code Playground
by ZeNz0r
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script>
<div id="app"></div>
React
const MOUNT_APP = document.querySelector("#app")
const links = {
NB_url: "https://nftrade.com/assets/avalanche/0xd5c6064e09ff127e24900adfb8559c4ee0634729?search=&sort=price_asc",
NB_RS: "https://raritysniper.com/node-bears?nftId=1146&nftId=1145&nftId=1144&nftId=2222",
NB2_url: "https://nftrade.com/assets/avalanche/0xbbc36316a70d6bc2c9822cdd1d0addbec227d472?search=&sort=price_asc",
NB2_NT: "https://nftier.tech/avalanche/nodebears-gen-two"
}
const oddsHelper = (n_prizes, n_supply, n_bears, f_format = a => a) => {
let result = 0;
for (let x = 1; x <= n_prizes; x++) {
result += n_bears / (n_supply - x);
}
return f_format(result);
}
const format = a => (a * 100).toFixed(3)
function OddsCalculator({
currentPrizes,
ownedBears,
supply
}) {
const [bears, setBears] = React.useState(ownedBears || 1)
const [prizes, setPrizes] = React.useState(currentPrizes || 5)
return (
<div className = 'calculator' >
<h2>Calculator for one giveaway</h2>
<div > Prizes:
<input
type="number"
onChange={e => setPrizes(e.target.value)}
value = {prizes} />
</div>
<div> Bears:
<input
type="number"
onChange={e => setBears(e.target.value)}
value = {bears} />
</div>
<div>Odds: {oddsHelper(prizes, supply, bears, format)}%</div>
</div>
)
}
const loopWeeks = (n_prizes, n_supply, n_bears, n_weeks, n_rate, f_format) => {
let result = 0;
for (let x = 1; x <= n_weeks; x++) {
result += oddsHelper(n_prizes, n_supply, n_bears)
n_prizes = n_prizes * (1 + n_rate)
}
return f_format(result)
}
const loopWeeksArray = (n_prizes, n_supply, n_bears, n_weeks, n_rate, f_format) => {
let result = [],
odds = 0
for (let x = 1; x <= n_weeks; x++) {
result.push({
week: x,
prizes: n_prizes,
odds: oddsHelper(n_prizes, n_supply, n_bears)
})
console.log(result[x-1])
odds +=...