<script> import { logout, refresh } from '../utils/loginSignup.js' import { getUserInfo, RECIPE_NUMS } from '../utils/utils.js' let userinfo = getUserInfo() var checkCookie = (function () { return function () { return // TODO: make refresh work let currentCookie = getUserInfo() // something useful like parse cookie, run a callback fn, etc. let now = Math.round(new Date().getTime() / 1000) let fiveMinutes = 60 * 5 if (currentCookie && now > currentCookie.exp - fiveMinutes) { refresh(currentCookie).then((res) => { console.log('refreshed', getUserInfo()) }) } } })() window.setInterval(checkCookie, 1000) let onLogin = userinfo == null ? false : true const handleLogout = () => { logout().then((res) => { console.log('logout successfully') window.location.href = '#/login' window.location.reload() }) } const getRandom = () => { const id = 1 + Math.floor(Math.random() * RECIPE_NUMS) window.location.href = `#/recipes/id/${id}` window.location.reload() } </script> <div class="navbar bg-base-100 justify-between flex"> <div class="flex"> <a class="btn btn-ghost normal-case text-xl" href="#/" ><img src="https://cdn-icons-png.flaticon.com/512/526/526190.png" class="w-6 h-6 p-1" alt="chefhat" />Find My Recipe</a > <a class="btn btn-ghost normal-case" href="#/recipes"> <svg class="w-6 h-6 p-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><rect x="3" y="3" width="7" height="7" /><rect x="14" y="3" width="7" height="7" /><rect x="14" y="14" width="7" height="7" /><rect x="3" y="14" width="7" height="7" /></svg > Recipes</a > <a class="btn btn-ghost normal-case" href="#/recipes/weekly"> <svg class="w-6 h-6 p-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><path d="M20.2 7.8l-7.7 7.7-4-4-5.7 5.7" /><path d="M15 7h6v6" /></svg > Trending</a > <!-- Top Weekly Recipes --> {#if onLogin} <a class="btn btn-ghost normal-case" href="#/recipes/favorite"> <svg class="w-6 h-6 p-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" /></svg > Favorites</a > <a class="btn btn-ghost normal-case" href="#/recipes/recommended"> <svg class="w-6 h-6 p-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3" /></svg > Recommended</a > <a class="btn btn-ghost normal-case" href="#/recipes/add"> <svg class="w-6 h-6 p-1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><path d="M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34" /><polygon points="18 2 22 6 12 16 8 16 8 12 18 2" /></svg > Add</a > {/if} </div> <div class="flex"> <div tabindex="0" class="btn btn-ghost btn-circle" on:click={getRandom}> <div class="rounded-full"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><path d="M16 3h5v5M4 20L20.2 3.8M21 16v5h-5M15 15l5.1 5.1M4 4l5 5" /></svg > </div> </div> {#if onLogin} <div class="dropdown dropdown-end"> <div tabindex="0" class="btn btn-ghost btn-circle"> <div class="rounded-full"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="butt" stroke-linejoin="bevel" ><line x1="3" y1="12" x2="21" y2="12" /><line x1="3" y1="6" x2="21" y2="6" /><line x1="3" y1="18" x2="21" y2="18" /></svg > </div> </div> <ul tabindex="0" class="menu menu-compact dropdown-content mt-3 p-2 shadow bg-base-100 rounded-box w-52" > <li class="prose">{userinfo.username}</li> <li> <a class="btn btn-ghost normal-case" href='#/recipes/author/{userinfo.userid}' >Your Recipes</a > <button class="btn btn-ghost normal-case" on:click={handleLogout} >Logout</button > </li> </ul> </div> {:else} <a class="btn" href="#/signup">Get Started</a> {/if} </div> </div>