<script lang="ts">
	import '../app.postcss';

	import { Modal, autoModeWatcher, type ModalComponent, getModalStore, type ModalSettings, initializeStores } from '@skeletonlabs/skeleton';
	import { apiBaseUrl } from '$lib/components/consts';
	import { LeanChellarisDataStore } from '$lib/stores/ChellarisData';
	import Header from './Header.svelte';
	import { AppShell } from '@skeletonlabs/skeleton';
	import Settings from './Settings.svelte';
	import AdminSelectedGameStore from '$lib/stores/admin-page/GameStore';
	import type { ChellarisGameInfo } from '$lib/types/chellaris';

	initializeStores();

	$: {
		fetch(apiBaseUrl + '/v3/ethics').then((res) => {
			res.json().then((data) => {
				$LeanChellarisDataStore.ethics = data.ethics;
			});
		});

		fetch(apiBaseUrl + '/v3/phenotypes').then((res) => {
			res.json().then((data) => {
				$LeanChellarisDataStore.phenotypes = data.phenotypes;
			});
		});

		fetch(apiBaseUrl + '/v3/games').then((res) => {
			res.json().then((data: { [key: number]: ChellarisGameInfo }) => {
				if ($AdminSelectedGameStore == 1) {
					$AdminSelectedGameStore = Object.values(data)[0].id;
				}	
				
			});
		});
	}



	const modalComponentRegistry: Record<string, ModalComponent> = {
		settingsModal: {
			ref: Settings,
			props: { background: 'bg-red-500'}
		}
	}

</script>

<svelte:head>{@html `<script>${autoModeWatcher.toString()} autoModeWatcher();</script>`}</svelte:head>

<Modal components={modalComponentRegistry}/>

<AppShell regionPage="relative">
	<svelte:fragment slot="header">
		<Header/>
	</svelte:fragment>
	<!-- (sidebarLeft) -->
	<!-- (sidebarRight) -->
	<!-- <svelte:fragment slot="pageHeader">Page Header</svelte:fragment> -->
	<!-- Router Slot -->
	<slot />
	<!-- ---- / ---- -->
	<!-- (pageFooter) -->
	<!-- (footer) -->
</AppShell>