|
1 | 1 | <script lang="ts">
|
| 2 | + import "../styles/main.css"; |
| 3 | +
|
2 | 4 | import { onDestroy } from "svelte";
|
3 | 5 | import { goto, invalidate } from "$app/navigation";
|
4 |
| - import { page } from "$app/stores"; |
5 |
| - import "../styles/main.css"; |
6 | 6 | import { base } from "$app/paths";
|
| 7 | + import { page } from "$app/stores"; |
| 8 | + import { browser } from "$app/environment"; |
| 9 | +
|
7 | 10 | import {
|
8 | 11 | PUBLIC_APP_DESCRIPTION,
|
9 | 12 | PUBLIC_ORIGIN,
|
10 | 13 | PUBLIC_PLAUSIBLE_SCRIPT_URL,
|
11 | 14 | } from "$env/static/public";
|
| 15 | + import { PUBLIC_APP_ASSETS, PUBLIC_APP_NAME } from "$env/static/public"; |
| 16 | +
|
| 17 | + import { error } from "$lib/stores/errors"; |
| 18 | + import { createSettingsStore } from "$lib/stores/settings"; |
12 | 19 |
|
13 | 20 | import { shareConversation } from "$lib/shareConversation";
|
14 | 21 | import { UrlDependency } from "$lib/types/UrlDependency";
|
15 |
| - import { error } from "$lib/stores/errors"; |
16 | 22 |
|
17 |
| - import MobileNav from "$lib/components/MobileNav.svelte"; |
18 |
| - import NavMenu from "$lib/components/NavMenu.svelte"; |
19 | 23 | import Toast from "$lib/components/Toast.svelte";
|
20 |
| - import { PUBLIC_APP_ASSETS, PUBLIC_APP_NAME } from "$env/static/public"; |
| 24 | + import NavMenu from "$lib/components/NavMenu.svelte"; |
| 25 | + import MobileNav from "$lib/components/MobileNav.svelte"; |
21 | 26 | import titleUpdate from "$lib/stores/titleUpdate";
|
22 |
| - import { createSettingsStore } from "$lib/stores/settings"; |
23 |
| - import { browser } from "$app/environment"; |
24 | 27 | import DisclaimerModal from "$lib/components/DisclaimerModal.svelte";
|
| 28 | + import ExpandNavigation from "$lib/components/ExpandNavigation.svelte"; |
25 | 29 |
|
26 | 30 | export let data;
|
27 | 31 |
|
28 | 32 | let isNavOpen = false;
|
| 33 | + let isNavCollapsed = false; |
| 34 | +
|
29 | 35 | let errorToastTimeout: ReturnType<typeof setTimeout>;
|
30 | 36 | let currentError: string | null;
|
31 | 37 |
|
|
176 | 182 | <DisclaimerModal />
|
177 | 183 | {/if}
|
178 | 184 |
|
| 185 | +<ExpandNavigation |
| 186 | + isCollapsed={isNavCollapsed} |
| 187 | + on:click={() => (isNavCollapsed = !isNavCollapsed)} |
| 188 | + classNames="absolute inset-y-0 z-10 my-auto {!isNavCollapsed |
| 189 | + ? 'left-[280px]' |
| 190 | + : 'left-0'} *:transition-transform" |
| 191 | +/> |
| 192 | + |
179 | 193 | <div
|
180 |
| - class="grid h-full w-screen grid-cols-1 grid-rows-[auto,1fr] overflow-hidden text-smd md:grid-cols-[280px,1fr] md:grid-rows-[1fr] dark:text-gray-300" |
| 194 | + class="grid h-full w-screen grid-cols-1 grid-rows-[auto,1fr] overflow-hidden text-smd {!isNavCollapsed |
| 195 | + ? 'md:grid-cols-[280px,1fr]' |
| 196 | + : 'md:grid-cols-[0px,1fr]'} transition-[300ms] [transition-property:grid-template-columns] md:grid-rows-[1fr] dark:text-gray-300" |
181 | 197 | >
|
182 | 198 | <MobileNav isOpen={isNavOpen} on:toggle={(ev) => (isNavOpen = ev.detail)} title={mobileNavTitle}>
|
183 | 199 | <NavMenu
|
|
189 | 205 | on:editConversationTitle={(ev) => editConversationTitle(ev.detail.id, ev.detail.title)}
|
190 | 206 | />
|
191 | 207 | </MobileNav>
|
192 |
| - <nav class="grid max-h-screen grid-cols-1 grid-rows-[auto,1fr,auto] max-md:hidden"> |
| 208 | + <nav |
| 209 | + class=" grid max-h-screen grid-cols-1 grid-rows-[auto,1fr,auto] overflow-hidden *:w-[280px] max-md:hidden" |
| 210 | + > |
193 | 211 | <NavMenu
|
194 | 212 | conversations={data.conversations}
|
195 | 213 | user={data.user}
|
|
0 commit comments