39 lines
1.0 KiB
Svelte
39 lines
1.0 KiB
Svelte
<script lang="ts">
|
|
import Router, { location } from 'svelte-spa-router'
|
|
import routes from './routes'
|
|
|
|
import Navbar from './lib/Navbar.svelte'
|
|
import Sidebar from './lib/Sidebar.svelte'
|
|
import Footer from './lib/Footer.svelte'
|
|
|
|
import { apiKeyStorage, chatsStorage } from './lib/Storage.svelte'
|
|
|
|
$: sortedChats = $chatsStorage.sort((a, b) => b.id - a.id)
|
|
$: apiKey = $apiKeyStorage
|
|
|
|
// Check if the API key is passed in as a "key" query parameter - if so, save it
|
|
const urlParams: URLSearchParams = new URLSearchParams(window.location.search)
|
|
if (urlParams.has('key')) {
|
|
apiKeyStorage.set(urlParams.get('key') as string)
|
|
}
|
|
</script>
|
|
|
|
<Navbar />
|
|
|
|
<section class="section">
|
|
<div class="container is-fullhd">
|
|
<div class="columns">
|
|
<div class="column is-one-fifth">
|
|
<Sidebar bind:apiKey bind:sortedChats />
|
|
</div>
|
|
<div class="column is-four-fifths">
|
|
{#key $location}
|
|
<Router {routes} />
|
|
{/key}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<Footer />
|