problem: on mobile, menu doesn't close when clicking on item

resolve https://github.com/nostrocket/hypergolic/issues/96
This commit is contained in:
Bob
2024-08-19 17:40:15 +08:00
parent afe606dcfa
commit 590d8dd42c
2 changed files with 19 additions and 21 deletions

View File

@@ -4,19 +4,12 @@
import { Badge } from '@/components/ui/badge'; import { Badge } from '@/components/ui/badge';
import Separator from '@/components/ui/separator/separator.svelte'; import Separator from '@/components/ui/separator/separator.svelte';
import { currentUser, devmode } from '@/stores/session'; import { currentUser, devmode } from '@/stores/session';
import { import { Code, HelpCircle, Mail, Package, Pyramid, Rocket } from 'lucide-svelte';
Code,
GitBranch,
HelpCircle,
Mail,
Package,
Pyramid,
Rocket,
Users
} from 'lucide-svelte';
import { GitAltBrand, TelegramBrand } from 'svelte-awesome-icons'; import { GitAltBrand, TelegramBrand } from 'svelte-awesome-icons';
import NotifyMe from './NotifyMe.svelte'; import NotifyMe from './NotifyMe.svelte';
export let closeSheet = () => {};
let iconClass = 'h-5 w-5 md:h-4 md:w-4'; let iconClass = 'h-5 w-5 md:h-4 md:w-4';
$: getClass = (menuItem: string) => { $: getClass = (menuItem: string) => {
@@ -29,22 +22,22 @@
</script> </script>
{#if $currentUser} {#if $currentUser}
<a href="{base}/inbox" class={getClass('inbox')}> <a href="{base}/inbox" class={getClass('inbox')} on:click={closeSheet}>
<Mail class={iconClass} /> <Mail class={iconClass} />
Inbox Inbox
<Badge class="ml-auto flex h-6 w-6 shrink-0 items-center justify-center rounded-full">1</Badge> <Badge class="ml-auto flex h-6 w-6 shrink-0 items-center justify-center rounded-full">1</Badge>
</a> </a>
<Separator class="dark:bg-slate-700" /> <Separator class="dark:bg-slate-700" />
{/if} {/if}
<a href="{base}/rockets" class={getClass('rockets')}> <a href="{base}/rockets" class={getClass('rockets')} on:click={closeSheet}>
<Rocket class={iconClass} /> <Rocket class={iconClass} />
Rockets Rockets
</a> </a>
<a href="{base}/products" class={getClass('products')}> <a href="{base}/products" class={getClass('products')} on:click={closeSheet}>
<Package class={iconClass} /> <Package class={iconClass} />
Products Products
</a> </a>
<a href="{base}/problems" class={getClass('problems')}> <a href="{base}/problems" class={getClass('problems')} on:click={closeSheet}>
<Pyramid class={iconClass} /> <Pyramid class={iconClass} />
Problem Tracker Problem Tracker
<!-- <Badge class="ml-auto flex h-6 w-6 shrink-0 items-center justify-center rounded-full">6</Badge> --> <!-- <Badge class="ml-auto flex h-6 w-6 shrink-0 items-center justify-center rounded-full">6</Badge> -->
@@ -55,16 +48,16 @@
People People
</a> --> </a> -->
<Separator class="dark:bg-slate-700" /> <Separator class="dark:bg-slate-700" />
<a href="https://github.com/nostrocket/hypergolic" class={getClass('_')}> <a href="https://github.com/nostrocket/hypergolic" target="_blank" class={getClass('_')}>
<GitAltBrand class={iconClass} /> <GitAltBrand class={iconClass} />
Source Source
</a> </a>
<a href="https://t.me/nostrocket" class={getClass('_')}> <a href="https://t.me/nostrocket" target="_blank" class={getClass('_')}>
<TelegramBrand class={iconClass} /> <TelegramBrand class={iconClass} />
Telegram Group Telegram Group
</a> </a>
<NotifyMe menu /> <NotifyMe menu />
<a href="{base}/help" class={getClass('help')}> <a href="{base}/help" class={getClass('help')} on:click={closeSheet}>
<HelpCircle class={iconClass} /> <HelpCircle class={iconClass} />
Help Help
</a> </a>

View File

@@ -13,7 +13,8 @@
import { bitcoinTip } from '@/stores/bitcoin'; import { bitcoinTip } from '@/stores/bitcoin';
import NotifyMe from '../components/NotifyMe.svelte'; import NotifyMe from '../components/NotifyMe.svelte';
export let title = ''; // export let title = '';
let open = false;
</script> </script>
<div class="grid min-h-screen w-full md:grid-cols-[220px_1fr] lg:grid-cols-[260px_1fr]"> <div class="grid min-h-screen w-full md:grid-cols-[220px_1fr] lg:grid-cols-[260px_1fr]">
@@ -38,7 +39,7 @@
<header <header
class="flex h-14 items-center justify-center gap-4 border-b bg-muted/40 px-4 lg:h-[60px] lg:px-6" class="flex h-14 items-center justify-center gap-4 border-b bg-muted/40 px-4 lg:h-[60px] lg:px-6"
> >
<Sheet.Root> <Sheet.Root bind:open>
<Sheet.Trigger asChild let:builder> <Sheet.Trigger asChild let:builder>
<Button variant="outline" size="icon" class="shrink-0 md:hidden" builders={[builder]}> <Button variant="outline" size="icon" class="shrink-0 md:hidden" builders={[builder]}>
<Menu class="h-5 w-5" /> <Menu class="h-5 w-5" />
@@ -47,10 +48,14 @@
</Sheet.Trigger> </Sheet.Trigger>
<Sheet.Content side="left" class="flex flex-col"> <Sheet.Content side="left" class="flex flex-col">
<nav class="grid gap-2 text-lg font-medium"> <nav class="grid gap-2 text-lg font-medium">
<a href="##" class="flex items-center gap-2 text-lg font-semibold"> <a
href="{base}/"
class="flex items-center gap-2 text-lg font-semibold"
on:click={() => (open = false)}
>
<span><img src={`${base}/_logo.png`} /></span> <span><img src={`${base}/_logo.png`} /></span>
</a> </a>
<NewMenu /> <NewMenu closeSheet={() => (open = false)} />
</nav> </nav>
<div class="mt-auto"> <div class="mt-auto">
<RocketPillCard /> <RocketPillCard />