feat(theme-4): fix dark backgrounds, quick bet, inbox spacing, customer service theme

This commit is contained in:
mars
2026-07-09 18:03:57 +08:00
parent dcf9afacd6
commit ecfea51545
124 changed files with 26710 additions and 8578 deletions

View 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),
});
}