Skip to content

Commit

Permalink
Fixes about prices and luckiest winners
Browse files Browse the repository at this point in the history
  • Loading branch information
ThibaultJRD committed Feb 28, 2024
1 parent cbe4879 commit 2e4bc01
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 38 deletions.
2 changes: 0 additions & 2 deletions src/api/lumApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ class LumApi extends HttpClient {
return this.instance;
}

fetchBiggestPrizes = async () => this.request<PrizeModel[]>({ url: '/millions/prizes/biggest?limit=4', method: 'GET' }, PrizeModel);

fetchBiggestAprPrizes = async () => this.request<BiggestAprPrizeModel[]>({ url: '/millions/prizes/biggest-apr?limit=30', method: 'GET' }, BiggestAprPrizeModel);

fetchPrizes = async (page = 0) => this.request<PrizeModel[]>({ url: `/millions/prizes?limit=5&page=${page}`, method: 'GET' }, PrizeModel);
Expand Down
4 changes: 2 additions & 2 deletions src/models/PrizeStats.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ class PrizeStatsModel {
@Expose({ name: 'total_pool_prizes' })
totalPoolPrizes!: number;

@Expose({ name: 'total_prizes_usd_amount' })
totalPrizesUsdAmount!: number;
@Expose({ name: 'total_prizes_amount' })
totalPrizesAmount!: number;
}

export default PrizeStatsModel;
13 changes: 4 additions & 9 deletions src/pages/PoolDetails/PoolDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const PoolDetails = () => {
const usersDepositsAmount = NumbersUtils.convertUnitNumber(pool.tvlAmount || '0') - sponsorshipAmount;

const userDeposits = lumWallet?.deposits.find((deposit) => (poolId ? Number(deposit.poolId) === Number(poolId) : deposit.amount?.denom === 'u' + denom));
const avgDeposit = (usersDepositsAmount / Number(pool.depositorsCount)) * prices[denom] || 0;
const avgDeposit = (usersDepositsAmount / Number(pool.depositorsCount)) * (prices[denom] ?? 0);

return (
<div className='pool-details-container mt-5'>
Expand Down Expand Up @@ -416,7 +416,7 @@ const PoolDetails = () => {
<Card flat withoutPadding className='d-flex flex-column flex-lg-row justify-content-between align-items-lg-center p-4'>
<div className='w-100'>
<small className='sub-title'>{I18n.t('poolDetails.winners.totalPrizes')}</small>
<div className='stat-bg-white mb-0 mt-2'>{numeral(prizesStats.totalPrizesUsdAmount).format('$0,0')}</div>
<div className='stat-bg-white mb-0 mt-2'>{numeral(prizesStats.totalPrizesAmount).format('$0,0')}</div>
</div>
<div className='w-100 my-4 my-lg-0 mx-0 mx-lg-3'>
<small className='sub-title'>{I18n.t('poolDetails.winners.totalPoolPrizes')}</small>
Expand All @@ -425,13 +425,8 @@ const PoolDetails = () => {
<div className='w-100'>
<small className='sub-title'>{I18n.t('poolDetails.winners.bestPrizeWon')}</small>
<div className='stat-bg-white mb-0 mt-2'>
$
{numeral(
NumbersUtils.convertUnitNumber(
biggestPrizes && biggestPrizes.length && biggestPrizes[0].usdTokenValue ? biggestPrizes[0].amount.amount * biggestPrizes[0].usdTokenValue : 0,
),
)
.format('0,0')
{numeral(NumbersUtils.convertUnitNumber(prizesStats.biggestPrizeAmount) * (prices[denom] ?? 0))
.format('$0,0.00')
.toUpperCase()}
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import React from 'react';

import dayjs from 'dayjs';
import numeral from 'numeral';
import { useSelector } from 'react-redux';

import { Pagination, SmallerDecimal, Table } from 'components';
import { Breakpoints } from 'constant';
import { useWindowSize } from 'hooks';
import { DenomsUtils, I18n, NumbersUtils, StringsUtils } from 'utils';
import { MetadataModel, PrizeModel } from 'models';
import { RootState } from 'redux/store';

import './LatestWinnersTable.scss';

Expand All @@ -21,6 +24,8 @@ interface IProps {
const LatestWinnersTable = ({ prizes, metadata, visibleItem, onPageChange, onItemChange }: IProps) => {
const winSizes = useWindowSize();

const prices = useSelector((state: RootState) => state.stats.prices);

const headers = I18n.t('luckiestWinners.winnersHeaders', { returnObjects: true });

const renderRow = (prize: PrizeModel) => {
Expand All @@ -43,7 +48,9 @@ const LatestWinnersTable = ({ prizes, metadata, visibleItem, onPageChange, onIte
<SmallerDecimal nb={numeral(NumbersUtils.convertUnitNumber(prize.amount.amount)).format('0,0.000000')} />{' '}
<span className='denom'>{DenomsUtils.getNormalDenom(prize.amount.denom).toUpperCase()}</span>
</div>
<small className='usd-price'>${numeral(NumbersUtils.convertUnitNumber(prize.amount.amount) * (prize.usdTokenValue || 0)).format('0,0.00')}</small>
<small className='usd-price'>
{numeral(NumbersUtils.convertUnitNumber(prize.amount.amount) * (prices[DenomsUtils.getNormalDenom(prize.amount.denom)] ?? 0)).format('$0,0.00')}
</small>
</div>
</td>
</tr>
Expand Down Expand Up @@ -89,7 +96,9 @@ const LatestWinnersTable = ({ prizes, metadata, visibleItem, onPageChange, onIte
<SmallerDecimal nb={numeral(NumbersUtils.convertUnitNumber(prize.amount.amount)).format('0,0.000000')} />{' '}
<span className='denom'>{DenomsUtils.getNormalDenom(prize.amount.denom).toUpperCase()}</span>
</div>
<small className='usd-price'>${numeral(NumbersUtils.convertUnitNumber(prize.amount.amount) * (prize.usdTokenValue || 0)).format('0,0.00')}</small>
<small className='usd-price'>
{numeral(NumbersUtils.convertUnitNumber(prize.amount.amount) * (prices[DenomsUtils.getNormalDenom(prize.amount.denom)] ?? 0)).format('$0,0.00')}
</small>
</div>
</div>
</div>
Expand Down
8 changes: 1 addition & 7 deletions src/redux/models/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,7 @@ export const app = createModel<RootModel>()({
await LumClient.connect();

try {
await Promise.allSettled([
dispatch.stats.fetchStats(),
dispatch.pools.fetchPools(null),
dispatch.pools.getDepositDelta(),
dispatch.prizes.fetchBiggestPrizes(),
dispatch.prizes.fetchBiggestAprPrizes(),
]);
await Promise.allSettled([dispatch.stats.fetchStats(), dispatch.pools.fetchPools(null), dispatch.pools.getDepositDelta(), dispatch.prizes.fetchBiggestAprPrizes()]);
} catch (e) {
console.error(e);
dispatch.app.SET_INIT_MUTEX(false);
Expand Down
16 changes: 0 additions & 16 deletions src/redux/models/prizes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { createModel } from '@rematch/core';
import { LumApi } from 'api';

interface PrizesState {
biggestPrizes: PrizeModel[];
biggestAprPrizes: BiggestAprPrizeModel[];
prizes: PrizeModel[];
metadata?: MetadataModel;
Expand All @@ -15,19 +14,12 @@ interface PrizesState {
export const prizes = createModel<RootModel>()({
name: 'prizes',
state: {
biggestPrizes: [],
biggestAprPrizes: [],
prizes: [],
stats: null,
alreadySeenConfetti: false,
} as PrizesState,
reducers: {
setBiggestPrizes: (state: PrizesState, biggestPrizes: PrizeModel[]): PrizesState => {
return {
...state,
biggestPrizes,
};
},
setBiggestAprPrizes: (state: PrizesState, biggestAprPrizes: BiggestAprPrizeModel[]): PrizesState => {
return {
...state,
Expand Down Expand Up @@ -68,14 +60,6 @@ export const prizes = createModel<RootModel>()({
},
},
effects: (dispatch) => ({
fetchBiggestPrizes: async () => {
try {
const [biggestPrizes] = await LumApi.fetchBiggestPrizes();

dispatch.prizes.setBiggestPrizes(biggestPrizes);
} catch {}
},

fetchBiggestAprPrizes: async () => {
const [biggestAprPrizes] = await LumApi.fetchBiggestAprPrizes();

Expand Down

0 comments on commit 2e4bc01

Please sign in to comment.