Compare commits

..

No commits in common. "main" and "v1.7.0" have entirely different histories.
main ... v1.7.0

10 changed files with 24 additions and 174 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

View File

@ -1,91 +1,19 @@
<app-navbar></app-navbar> <app-navbar></app-navbar>
<div class="container mx-auto px-4 py-6 space-y-8">
<div class="flex justify-between items-center"> <div class="grid grid-cols-3">
<div class="flex items-center space-x-4"></div> <div class="w-1/3 h-1/4">
<p>Spiel Vorschau</p>
<p>Spiel Name</p>
<button type="button" class="btn-primary">Jetzt spielen</button>
</div> </div>
<div class="w-1/3 h-1/4">
<div class="grid grid-cols-1 lg:grid-cols-4 gap-6"> <p>Spiel Vorschau</p>
<div class="lg:col-span-3"> <p>Spiel Name</p>
<div class="flex justify-between items-center mb-6"> <button type="button" class="btn-primary">Jetzt spielen</button>
<h3 class="section-heading text-2xl">Beliebte Spiele</h3> </div>
<div class="flex space-x-2"> <div class="w-1/3 h-1/4">
<button class="nav-button left-0"> <p>Spiel Vorschau</p>
<span class="material-icons">chevron_left</span> <p>Spiel Name</p>
</button> <button type="button" class="btn-primary">Jetzt spielen</button>
<button class="nav-button right-0">
<span class="material-icons">chevron_right</span>
</button>
</div>
</div>
<div class="slider-container">
<div class="slider-grid">
<div class="card group" *ngFor="let game of featuredGames">
<div class="relative">
<img [src]="game.image" [alt]="game.name" class="w-full aspect-[4/3] object-cover" />
<div
class="absolute inset-0 bg-gradient-to-t from-deep-blue/90 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"
>
<div class="absolute bottom-4 left-4 right-4">
<h4 class="game-heading">{{ game.name }}</h4>
<button class="button-base w-full py-2">Jetzt Spielen</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="mt-8">
<h3 class="section-heading text-2xl mb-6">Alle Spiele</h3>
<div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4">
<div class="card group" *ngFor="let game of allGames">
<div class="relative">
<img [src]="game.image" [alt]="game.name" class="w-full aspect-[4/3] object-cover" />
<div
class="absolute inset-0 bg-gradient-to-t from-deep-blue/90 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"
>
<div class="absolute bottom-4 left-4 right-4">
<h4 class="game-heading">{{ game.name }}</h4>
<button class="button-base w-full py-2">Jetzt Spielen</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="lg:col-span-1 space-y-6">
<div class="card p-4">
<h3 class="section-heading text-xl mb-4">Konto</h3>
<div class="space-y-4">
<button class="bg-deep-blue-light hover:bg-deep-blue-contrast w-full py-2 rounded">
Transaktionen
</button>
<button class="bg-deep-blue-light hover:bg-deep-blue-contrast w-full py-2 rounded">
Kontoeinstellungen
</button>
</div>
</div>
<div class="card p-4">
<h3 class="section-heading text-xl mb-4">Letzte Transaktionen</h3>
<div class="space-y-3">
<div
class="flex justify-between items-center"
*ngFor="let transaction of recentTransactions"
>
<div>
<p class="text-sm font-medium">{{ transaction.type }}</p>
<p class="text-xs text-text-secondary">{{ transaction.date }}</p>
</div>
<span [class]="transaction.amount > 0 ? 'text-emerald' : 'text-accent-red'">
{{ transaction.amount | currency: 'EUR' }}
</span>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>

View File

@ -2,25 +2,12 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import { KeycloakService } from 'keycloak-angular'; import { KeycloakService } from 'keycloak-angular';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { DepositComponent } from '../deposit/deposit.component'; import { DepositComponent } from '../deposit/deposit.component';
import { NavbarComponent } from '../../shared/components/navbar/navbar.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({ @Component({
selector: 'app-homepage', selector: 'app-homepage',
standalone: true, standalone: true,
imports: [NavbarComponent, CurrencyPipe, NgFor], imports: [NavbarComponent],
templateUrl: './home.component.html', templateUrl: './home.component.html',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
}) })
@ -28,67 +15,6 @@ export default class HomeComponent {
private keycloakService: KeycloakService = inject(KeycloakService); private keycloakService: KeycloakService = inject(KeycloakService);
public dialog: MatDialog = inject(MatDialog); 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() { public logout() {
const baseUrl = window.location.origin; const baseUrl = window.location.origin;

View File

@ -26,21 +26,21 @@
<div class="slider-grid"> <div class="slider-grid">
<div class="card"> <div class="card">
<div class="game-card-content"> <div class="game-card-content">
<h3 class="game-heading-sm">Slots</h3> <h3 class="game-heading">Slots</h3>
<p class="game-text">Klassische Spielautomaten</p> <p class="game-text">Klassische Spielautomaten</p>
<button class="button-base w-full py-2">Jetzt Spielen</button> <button class="button-base w-full py-2">Jetzt Spielen</button>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="game-card-content"> <div class="game-card-content">
<h3 class="game-heading-sm">Plinko</h3> <h3 class="game-heading">Plinko</h3>
<p class="game-text">Spannendes Geschicklichkeitsspiel</p> <p class="game-text">Spannendes Geschicklichkeitsspiel</p>
<button class="button-base w-full py-2">Jetzt Spielen</button> <button class="button-base w-full py-2">Jetzt Spielen</button>
</div> </div>
</div> </div>
<div class="hidden lg:block card"> <div class="hidden lg:block card">
<div class="game-card-content"> <div class="game-card-content">
<h3 class="game-heading-sm">Blackjack</h3> <h3 class="game-heading">Blackjack</h3>
<p class="game-text">Klassisches Kartenspiel</p> <p class="game-text">Klassisches Kartenspiel</p>
<button class="button-base w-full py-2">Jetzt Spielen</button> <button class="button-base w-full py-2">Jetzt Spielen</button>
</div> </div>
@ -50,21 +50,21 @@
<div class="slider-grid"> <div class="slider-grid">
<div class="card"> <div class="card">
<div class="game-card-content"> <div class="game-card-content">
<h3 class="game-heading-sm">Poker</h3> <h3 class="game-heading">Poker</h3>
<p class="game-text">Texas Hold'em & mehr</p> <p class="game-text">Texas Hold'em & mehr</p>
<button class="button-base w-full py-2">Jetzt Spielen</button> <button class="button-base w-full py-2">Jetzt Spielen</button>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="game-card-content"> <div class="game-card-content">
<h3 class="game-heading-sm">Liars Dice</h3> <h3 class="game-heading">Liars Dice</h3>
<p class="game-text">Würfelspiel mit Strategie</p> <p class="game-text">Würfelspiel mit Strategie</p>
<button class="button-base w-full py-2">Jetzt Spielen</button> <button class="button-base w-full py-2">Jetzt Spielen</button>
</div> </div>
</div> </div>
<div class="hidden lg:block card"> <div class="hidden lg:block card">
<div class="game-card-content"> <div class="game-card-content">
<h3 class="game-heading-sm">Lootboxen</h3> <h3 class="game-heading">Lootboxen</h3>
<p class="game-text">Überraschungskisten</p> <p class="game-text">Überraschungskisten</p>
<button class="button-base w-full py-2">Jetzt Spielen</button> <button class="button-base w-full py-2">Jetzt Spielen</button>
</div> </div>

View File

@ -63,14 +63,10 @@ a {
@apply font-bold text-text-primary; @apply font-bold text-text-primary;
} }
.game-heading-sm { .game-heading {
@apply font-bold text-text-primary text-sm mb-2; @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 { .game-text {
@apply text-text-secondary text-sm mb-4; @apply text-text-secondary text-sm mb-4;
} }