fix(market): per-event bet loss+win

This commit is contained in:
2026-10-07 21:44:33 +02:00
parent 6a5a224d3b
commit 382ba01f3e
8 changed files with 107 additions and 26 deletions
+19 -3
View File
@@ -1,6 +1,6 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { polylanSubmitterApiGetUserInfo, marketApiListMarkets, marketApiListUserBets } from '@/api'
import { polylanSubmitterApiGetUserInfo, marketApiListMarkets, marketApiListUserBets, marketApiGetUserPoints } from '@/api'
import type { Market } from '@/types'
import type { UserInfoOut, UserBetSchema } from '@/api/types.gen'
@@ -9,6 +9,7 @@ export const useMarketStore = defineStore('market', () => {
const markets = ref<Market[]>([])
const userInfo = ref<UserInfoOut | undefined>()
const userBets = ref<UserBetSchema[]>([])
const userPoints = ref<number>(0)
const isLoading = ref(true)
const error = ref<string>('')
@@ -49,6 +50,18 @@ export const useMarketStore = defineStore('market', () => {
}
}
const loadUserPoints = async (eventPath: string) => {
try {
const response = await marketApiGetUserPoints({ path: { event_path: eventPath } })
if (response.data) {
userPoints.value = response.data.points
}
} catch (err) {
error.value = 'Failed to load user points'
console.error('Error loading user points:', err)
}
}
const initializeMarketPage = async (eventPath: string) => {
isLoading.value = true
error.value = ''
@@ -59,9 +72,9 @@ export const useMarketStore = defineStore('market', () => {
loadMarkets(eventPath),
])
// Load user bets if authenticated
// Load user bets and points if authenticated
if (userInfo.value?.is_authenticated) {
await loadUserBets(eventPath)
await Promise.all([loadUserBets(eventPath), loadUserPoints(eventPath)])
}
} finally {
isLoading.value = false
@@ -73,6 +86,7 @@ export const useMarketStore = defineStore('market', () => {
loadUserInfo(),
loadMarkets(eventPath),
userInfo.value?.is_authenticated ? loadUserBets(eventPath) : Promise.resolve(),
userInfo.value?.is_authenticated ? loadUserPoints(eventPath) : Promise.resolve(),
])
}
@@ -81,6 +95,7 @@ export const useMarketStore = defineStore('market', () => {
markets,
userInfo,
userBets,
userPoints,
isLoading,
error,
@@ -88,6 +103,7 @@ export const useMarketStore = defineStore('market', () => {
loadUserInfo,
loadMarkets,
loadUserBets,
loadUserPoints,
initializeMarketPage,
refreshPage,
}