All checks were successful
CI / Get Changed Files (pull_request) Successful in 11s
CI / Docker backend validation (pull_request) Successful in 14s
CI / Docker frontend validation (pull_request) Successful in 45s
CI / oxlint (pull_request) Successful in 33s
CI / eslint (pull_request) Successful in 46s
CI / Checkstyle Main (pull_request) Successful in 1m2s
CI / prettier (pull_request) Successful in 24s
CI / test-build (pull_request) Successful in 35s
33 lines
955 B
TypeScript
33 lines
955 B
TypeScript
import { inject, Injectable } from '@angular/core';
|
|
import { AuthService } from '@service/auth.service';
|
|
import { User } from '../model/User';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class UserService {
|
|
private authService = inject(AuthService);
|
|
|
|
/**
|
|
* Updates the user's balance locally for immediate UI feedback
|
|
* This should be called before a server-side balance change is made
|
|
* The server update will be reflected when AuthService.loadCurrentUser() is called
|
|
*/
|
|
public updateLocalBalance(amount: number): void {
|
|
const currentUser = this.authService.currentUserValue;
|
|
if (currentUser) {
|
|
const updatedUser: User = {
|
|
...currentUser,
|
|
balance: currentUser.balance + amount,
|
|
};
|
|
this.authService.userSubject.next(updatedUser);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Refreshes the current user's data from the server
|
|
*/
|
|
public refreshCurrentUser(): void {
|
|
this.authService.loadCurrentUser();
|
|
}
|
|
}
|