1
0

adjust preview pane upwards on desktop

This commit is contained in:
Nicola Clark 2024-10-12 12:33:05 -05:00
parent cd439e5e06
commit bcea7049da
Signed by: nicola
GPG Key ID: 3E1710E7FF08956C
3 changed files with 31 additions and 2 deletions

View File

@ -1,4 +1,5 @@
<script lang="ts"> <script lang="ts">
import { navHeight } from '$lib/stores/layout';
import { pane as navStore, type Pane } from '$lib/stores/nav'; import { pane as navStore, type Pane } from '$lib/stores/nav';
export let pane: Pane; export let pane: Pane;
@ -12,9 +13,20 @@
// always show preview pane on a two column layout // always show preview pane on a two column layout
let preview: boolean; let preview: boolean;
$: preview = pane === 'preview'; $: preview = pane === 'preview';
// offset preview pane upward on desktop
let offset: number;
$: offset = preview ? $navHeight : 0;
</script> </script>
<div id={`pane-${pane}`} data-testid={testid} role="tabpanel" class:hidden class:preview> <div
id={`pane-${pane}`}
data-testid={testid}
role="tabpanel"
class:hidden
class:preview
style:--offset={`-${offset}px`}
>
<slot /> <slot />
</div> </div>
@ -34,6 +46,9 @@
&.preview { &.preview {
border-right: unset !important; border-right: unset !important;
display: unset !important; display: unset !important;
height: calc(100% - var(--offset));
position: relative;
top: var(--offset);
} }
} }
} }

View File

@ -1,13 +1,24 @@
<script lang="ts"> <script lang="ts">
import { onMount } from 'svelte';
import { navHeight } from '$lib/stores/layout';
import NavToggle from './nav-toggle.svelte'; import NavToggle from './nav-toggle.svelte';
let open: boolean = false; let open: boolean = false;
let hidden: boolean; let hidden: boolean;
$: hidden = !open; $: hidden = !open;
// magic to offset preview pane on desktop
let navRef: HTMLElement;
onMount(() => {
$navHeight = navRef.getBoundingClientRect().height;
});
</script> </script>
<nav> <nav bind:this={navRef}>
<NavToggle bind:navOpen={open} /> <NavToggle bind:navOpen={open} />
<ul class:hidden role="tablist"> <ul class:hidden role="tablist">
<slot /> <slot />

3
src/lib/stores/layout.ts Normal file
View File

@ -0,0 +1,3 @@
import { writable } from 'svelte/store';
export const navHeight = writable(-1);