import { Component, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatCardModule } from '@angular/material/card';
import { FormsModule } from '@angular/forms';
import { PlanGameComponent } from './plan-game/plan-game.component';
import { PlanService } from '../../core/services/plan.service';
import { GamePlan } from '../../core/models/plan.model';
import { PlanPokemonComponent } from "./plan-pokemon/plan-pokemon.component";
@Component({
selector: 'app-plan',
standalone: true,
imports: [
CommonModule,
MatCardModule,
FormsModule,
PlanGameComponent,
PlanPokemonComponent
],
template: `
{{ selectedGame.game_name }} - Pokémon to Catch
`,
styles: [`
.plan-container {
display: flex;
flex-direction: column;
height: calc(100vh - 64px); /* Adjust based on your header height */
overflow: hidden;
}
.games-section {
padding: 20px 20px 0 20px;
}
.games-scroll {
width: 100%;
overflow-x: auto;
padding: 8px 0;
}
.games-list {
display: flex;
gap: 16px;
padding: 0 8px;
min-width: min-content;
}
.pokemon-section {
padding: 0 20px;
flex: 1;
min-height: 0; /* Important for Firefox */
display: flex;
flex-direction: column;
}
.pokemon-section h2 {
margin: 16px 0;
color: #333;
}
.pokemon-list {
flex: 1;
overflow-y: auto;
padding: 16px;
background: #f5f5f5;
border-radius: 8px;
margin-bottom: 20px;
}
`]
})
export class PlanComponent implements OnInit {
gamePlans: GamePlan[] = [];
selectedGame: GamePlan | null = null;
constructor(private planService: PlanService) {}
ngOnInit() {
this.loadPlan();
}
private loadPlan() {
this.planService.getPlan().subscribe(
plan => {
this.gamePlans = plan;
if (!this.selectedGame && plan.length > 0) {
this.selectedGame = plan[0];
}
}
);
}
selectGame(game: GamePlan) {
this.selectedGame = game;
}
onPokemonStatusUpdate(event: { pfic: string, caught: boolean }) {
this.loadPlan();
}
}