only update the changed user's info instead of both

This commit is contained in:
2025-05-10 16:33:05 +02:00
parent 58689e737e
commit 3c40e2ac15

View File

@@ -24,7 +24,7 @@ import { RANKED_CHANNEL } from '@/shared/constants'
import { api } from '@/trpc/react' import { api } from '@/trpc/react'
import { SettingsIcon, X } from 'lucide-react' import { SettingsIcon, X } from 'lucide-react'
import * as React from 'react' import * as React from 'react'
import { useEffect, useState } from 'react' import { useEffect, useMemo, useState } from 'react'
import { useForm } from 'react-hook-form' import { useForm } from 'react-hook-form'
import { toast } from 'sonner' import { toast } from 'sonner'
import { useLocalStorage } from 'usehooks-ts' import { useLocalStorage } from 'usehooks-ts'
@@ -100,14 +100,17 @@ export function ObsControlPanelClient() {
}, },
{ enabled: !!value2 } { enabled: !!value2 }
) )
const player1Data = const player1Data = useMemo(() => {
player1Info && player1Games return player1Info && player1Games
? getPlayerData(player1Info, player1Games) ? getPlayerData(player1Info, player1Games)
: null : null
const player2Data = }, [player1Info, player1Games])
player2Info && player2Games const player2Data = useMemo(() => {
return player2Info && player2Games
? getPlayerData(player2Info, player2Games) ? getPlayerData(player2Info, player2Games)
: null : null
}, [player2Info, player2Games])
let winsVsOpponent = 0 let winsVsOpponent = 0
let lossesVsOpponent = 0 let lossesVsOpponent = 0
if (value1 && player1Games && value2) { if (value1 && player1Games && value2) {
@@ -147,7 +150,6 @@ export function ObsControlPanelClient() {
useEffect(() => { useEffect(() => {
if (!isConnected) return if (!isConnected) return
if (player2Data) {
if (player2Data) { if (player2Data) {
form.setValue('player2Name', player2Data.username) form.setValue('player2Name', player2Data.username)
form.setValue('player2Mmr', player2Data.mmr.toString()) form.setValue('player2Mmr', player2Data.mmr.toString())
@@ -157,7 +159,6 @@ export function ObsControlPanelClient() {
form.setValue('player2Rank', player2Data.rank.toString()) form.setValue('player2Rank', player2Data.rank.toString())
form.setValue('player2WinRate', `${player2Data.winRate.toString()}%`) form.setValue('player2WinRate', `${player2Data.winRate.toString()}%`)
} }
}
}, [player2Data, isConnected]) }, [player2Data, isConnected])
const [mappings] = useLocalStorage<FieldMapping[]>('obs-field-mappings', []) const [mappings] = useLocalStorage<FieldMapping[]>('obs-field-mappings', [])