aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Footer.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/Footer.svelte')
0 files changed, 0 insertions, 0 deletions
id='n54' href='#n54'>54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
<script>
	import { goto } from '$app/navigation';
	import { scroll } from '$lib/utils';
	import { Icon } from '$comp';
	import { t } from '$lib/translations';
	import { page } from '$app/stores';

	export let howItWorks;
	export let faq;
	export let about;
	export let user;

	let showMobileMenu = false;
	let header;
	const mobileMenuButtonClick = (section) => {
		showMobileMenu = false;
		scroll(section);
	};
</script>

<header
	class="w-full lg:w-5/6 py-5 mx-auto fixed md:sticky z-10 top-0 bg-white/90"
	bind:this={header}
>
	<nav class="block xl:flex flex-wrap justify-between items-center">
		<div class="flex justify-start md:justify-center items-center md:space-x-10">
			<a href="/" on:click={() => scroll(header)}>
				<Icon icon="logo" style="hidden md:block mb-5 xl:mb-0" />
				<Icon icon="logo" style="block md:hidden ml-5 w-48" />
			</a>
		</div>

		<!-- desktop nav -->
		<div class="hidden space-x-10 md:flex flex-wrap justify-center items-center font-bold">
			{#if $page.url.pathname === '/'}
				<button class="hover:opacity-80" on:click={() => scroll(howItWorks)}
					>{$t('howItWorks.header')}</button
				>
				<button class="hover:opacity-80" on:click={() => scroll(faq)}>{$t('faq.header')}</button>
				<button class="hover:opacity-80" on:click={() => scroll(about)}>{$t('about.header')}</button
				>
			{/if}
			{#if user}
				<button
					class="border rounded-full px-6 py-2 font-bold"
					on:click={() => goto(`/${user.username}`)}
					>Home
				</button>
				<button
					class="bg-black text-white border rounded-full px-6 py-2 font-bold"
					on:click={() => goto('/logout')}
				>
					{$t('nav.signOut')}
				</button>
			{:else}
				<button
					class="border rounded-full px-6 py-2 font-bold hover:opacity-80"
					on:click={() => goto('/register')}
					>{$t('nav.startInSeconds')}
				</button>
				<button
					class="bg-black text-white border rounded-full px-6 py-2 font-bold hover:opacity-80"
					on:click={() => goto('/login')}
				>
					{$t('nav.signIn')}
				</button>
			{/if}
		</div>

		<!-- mobile nav -->
		<button
			class="block md:hidden absolute top-[34.5px] right-10 z"
			on:click={() => (showMobileMenu = !showMobileMenu)}
			><Icon icon={!showMobileMenu ? 'menu' : 'close'} />
		</button>

		<div
			class="container w-full px-10 md:hidden absolute top-0 {showMobileMenu
				? 'right-0'
				: 'right-[-100%]'} transition-all ease-in-out duration-300 h-[100vh] w-full bg-white"
		>
			<div class="space-y-8 mt-24 font-bold text-xl">
				<button on:click={() => mobileMenuButtonClick(howItWorks)} class="block"
					>{$t('howItWorks.header')}</button
				>
				<button on:click={() => mobileMenuButtonClick(faq)} class="block">{$t('faq.header')}</button
				>
				<button on:click={() => mobileMenuButtonClick(about)} class="block"
					>{$t('about.header')}</button
				>
				{#if !user}
					<button
						class="border rounded-full px-6 py-2 font-bold block w-full"
						on:click={() => goto('/register')}
						>{$t('nav.startInSeconds')}
					</button>
					<button
						class="bg-black text-white border rounded-full px-6 py-2 font-bold block w-full"
						on:click={() => goto('/login')}
					>
						{$t('nav.signIn')}
					</button>
				{:else}
					<button
						class="border rounded-full px-6 py-2 font-bold block"
						on:click={() => goto(`/${user.username}`)}
						>{$t('nav.account')}
					</button>
					<button
						class="bg-black text-white border rounded-full px-6 py-2 font-bold block"
						on:click={() => goto('/logout')}
					>
						{$t('nav.signOut')}
					</button>
				{/if}
			</div>
		</div>
	</nav>
</header>

<style>
	.z {
		z-index: 100;
	}
</style>