-
-
Spiel Vorschau
-
Spiel Name
-
-
-
-
Spiel Vorschau
-
Spiel Name
-
-
-
-
Spiel Vorschau
-
Spiel Name
-
+
+
+
+
Beliebte Spiele
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
{{ game.name }}
+
+
+
+
+
+
+
+
+
+
Alle Spiele
+
+
+
+
![]()
+
+
+
{{ game.name }}
+
+
+
+
+
+
+
+
+
+
+
+
Konto
+
+
+
+
+
+
+
+
Letzte Transaktionen
+
+
+
+
{{ transaction.type }}
+
{{ transaction.date }}
+
+
0 ? 'text-emerald' : 'text-accent-red'">
+ {{ transaction.amount | currency: 'EUR' }}
+
+
+
+
+
diff --git a/frontend/src/app/feature/home/home.component.ts b/frontend/src/app/feature/home/home.component.ts
index d560eb8..ebb2f02 100644
--- a/frontend/src/app/feature/home/home.component.ts
+++ b/frontend/src/app/feature/home/home.component.ts
@@ -2,12 +2,25 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import { KeycloakService } from 'keycloak-angular';
import { MatDialog } from '@angular/material/dialog';
import { DepositComponent } from '../deposit/deposit.component';
-
import { NavbarComponent } from '../../shared/components/navbar/navbar.component';
+import { CurrencyPipe, NgFor } from '@angular/common';
+
+interface Game {
+ id: string;
+ name: string;
+ image: string;
+}
+interface Transaction {
+ id: string;
+ type: string;
+ amount: number;
+ date: string;
+}
+
@Component({
selector: 'app-homepage',
standalone: true,
- imports: [NavbarComponent],
+ imports: [NavbarComponent, CurrencyPipe, NgFor],
templateUrl: './home.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
})
@@ -15,6 +28,67 @@ export default class HomeComponent {
private keycloakService: KeycloakService = inject(KeycloakService);
public dialog: MatDialog = inject(MatDialog);
+ userAvatar = '/assets/images/default-avatar.png';
+ username = this.keycloakService.getUsername();
+ vipLevel = 1;
+ balance = 1000.0;
+
+ featuredGames: Game[] = [
+ {
+ id: '1',
+ name: 'Poker',
+ image: '/poker.webp',
+ },
+ {
+ id: '2',
+ name: 'Blackjack',
+ image: '/blackjack.webp',
+ },
+ {
+ id: '3',
+ name: 'Slots',
+ image: '/slots.webp',
+ },
+ {
+ id: '4',
+ name: 'Plinko',
+ image: '/plinko.webp',
+ },
+ {
+ id: '5',
+ name: 'Liars Dice',
+ image: '/liars-dice.webp',
+ },
+ {
+ id: '6',
+ name: 'Lootboxen',
+ image: '/lootbox.webp',
+ },
+ ];
+
+ allGames: Game[] = [...this.featuredGames];
+
+ recentTransactions: Transaction[] = [
+ {
+ id: '1',
+ type: 'Deposit',
+ amount: 100.0,
+ date: '2024-03-20',
+ },
+ {
+ id: '2',
+ type: 'Withdrawal',
+ amount: -50.0,
+ date: '2024-03-19',
+ },
+ {
+ id: '3',
+ type: 'Bonus',
+ amount: 25.0,
+ date: '2024-03-18',
+ },
+ ];
+
public logout() {
const baseUrl = window.location.origin;
diff --git a/frontend/src/app/feature/landing/landing.component.html b/frontend/src/app/feature/landing/landing.component.html
index 63c67cd..597c71a 100644
--- a/frontend/src/app/feature/landing/landing.component.html
+++ b/frontend/src/app/feature/landing/landing.component.html
@@ -26,21 +26,21 @@
-
Slots
+
Slots
Klassische Spielautomaten
-
Plinko
+
Plinko
Spannendes Geschicklichkeitsspiel
-
Blackjack
+
Blackjack
Klassisches Kartenspiel
@@ -50,21 +50,21 @@
-
Poker
+
Poker
Texas Hold'em & mehr
-
Liars Dice
+
Liars Dice
Würfelspiel mit Strategie
-
Lootboxen
+
Lootboxen
Überraschungskisten
diff --git a/frontend/src/styles.css b/frontend/src/styles.css
index afc40fa..f78bf74 100644
--- a/frontend/src/styles.css
+++ b/frontend/src/styles.css
@@ -63,10 +63,14 @@ a {
@apply font-bold text-text-primary;
}
-.game-heading {
+.game-heading-sm {
@apply font-bold text-text-primary text-sm mb-2;
}
+.game-heading-xl {
+ @apply font-bold text-text-primary text-xl mb-2;
+}
+
.game-text {
@apply text-text-secondary text-sm mb-4;
}