feat(theme-4): fix dark backgrounds, quick bet, inbox spacing, customer service theme
This commit is contained in:
49
apps/player/src/utils/betPlaceConfirmMessage.ts
Normal file
49
apps/player/src/utils/betPlaceConfirmMessage.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import type { Composer } from 'vue-i18n';
|
||||
import type { SlipItem, SlipMode } from '../stores/betSlip';
|
||||
|
||||
export interface BetPlaceConfirmContext {
|
||||
mode: SlipMode;
|
||||
items: SlipItem[];
|
||||
totalStake: number;
|
||||
totalReturn: number;
|
||||
totalOdds?: number;
|
||||
formatMoney: (amount: number) => string;
|
||||
getStake: (item: SlipItem) => number;
|
||||
getOdds: (item: SlipItem) => number;
|
||||
}
|
||||
|
||||
export function buildBetPlaceConfirmMessage(
|
||||
t: Composer['t'],
|
||||
ctx: BetPlaceConfirmContext,
|
||||
): string {
|
||||
if (ctx.mode === 'parlay') {
|
||||
const odds =
|
||||
ctx.totalOdds != null
|
||||
? String(ctx.totalOdds)
|
||||
.replace(/0+$/, '')
|
||||
.replace(/\.$/, '')
|
||||
: '';
|
||||
return t('bet.place_confirm_parlay', {
|
||||
count: ctx.items.length,
|
||||
stake: ctx.formatMoney(ctx.totalStake),
|
||||
odds,
|
||||
return: ctx.formatMoney(ctx.totalReturn),
|
||||
});
|
||||
}
|
||||
|
||||
if (ctx.items.length === 1) {
|
||||
const item = ctx.items[0];
|
||||
return t('bet.place_confirm_single', {
|
||||
pick: item.selectionName,
|
||||
odds: ctx.getOdds(item).toFixed(2),
|
||||
stake: ctx.formatMoney(ctx.getStake(item)),
|
||||
return: ctx.formatMoney(ctx.totalReturn),
|
||||
});
|
||||
}
|
||||
|
||||
return t('bet.place_confirm_singles', {
|
||||
count: ctx.items.length,
|
||||
stake: ctx.formatMoney(ctx.totalStake),
|
||||
return: ctx.formatMoney(ctx.totalReturn),
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user