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="flex items-center space-x-4"></div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-4 gap-6"> <div class="grid grid-cols-3">
<div class="lg:col-span-3"> <div class="w-1/3 h-1/4">
<div class="flex justify-between items-center mb-6"> <p>Spiel Vorschau</p>
<h3 class="section-heading text-2xl">Beliebte Spiele</h3> <p>Spiel Name</p>
<div class="flex space-x-2"> <button type="button" class="btn-primary">Jetzt spielen</button>
<button class="nav-button left-0"> </div>
<span class="material-icons">chevron_left</span> <div class="w-1/3 h-1/4">
</button> <p>Spiel Vorschau</p>
<button class="nav-button right-0"> <p>Spiel Name</p>
<span class="material-icons">chevron_right</span> <button type="button" class="btn-primary">Jetzt spielen</button>
</button> </div>
</div> <div class="w-1/3 h-1/4">
</div> <p>Spiel Vorschau</p>
<p>Spiel Name</p>
<div class="slider-container"> <button type="button" class="btn-primary">Jetzt spielen</button>
<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;
} }