flotilla/src/routes/home/+page.svelte

78 lines
2.7 KiB
Svelte
Raw Normal View History

2024-08-05 21:45:16 +00:00
<script lang="ts">
import {onMount} from "svelte"
import {goto} from "$app/navigation"
import {shouldUnwrap} from "@welshman/app"
2025-09-10 22:26:39 +00:00
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
import Compass from "@assets/icons/compass.svg?dataurl"
import ChatRound from "@assets/icons/chat-round.svg?dataurl"
2024-10-09 21:19:27 +00:00
import Icon from "@lib/components/Icon.svelte"
2024-10-11 21:48:09 +00:00
import Link from "@lib/components/Link.svelte"
2024-10-09 21:19:27 +00:00
import Button from "@lib/components/Button.svelte"
2024-08-08 21:02:46 +00:00
import CardButton from "@lib/components/CardButton.svelte"
2024-10-11 21:48:09 +00:00
import SpaceAdd from "@app/components/SpaceAdd.svelte"
2025-08-19 21:05:02 +00:00
import ChatEnable from "@app/components/ChatEnable.svelte"
import {pushModal} from "@app/util/modal"
import {goToSpace} from "@app/util/routes"
import {PLATFORM_NAME, PLATFORM_RELAYS} from "@app/core/state"
2024-08-14 00:58:26 +00:00
2024-10-11 21:48:09 +00:00
const addSpace = () => pushModal(SpaceAdd)
2024-08-15 19:08:07 +00:00
const openChat = () => ($shouldUnwrap ? goto("/chat") : pushModal(ChatEnable, {next: "/chat"}))
2025-08-19 21:05:02 +00:00
onMount(async () => {
2025-05-29 20:37:23 +00:00
if (PLATFORM_RELAYS.length > 0) {
goToSpace(PLATFORM_RELAYS[0])
}
})
2024-08-05 21:45:16 +00:00
</script>
2025-05-29 20:37:23 +00:00
<div class="hero min-h-screen overflow-auto pb-8">
<div class="hero-content">
<div class="column content gap-4">
<h1 class="text-center text-5xl">Welcome to</h1>
<h1 class="mb-4 text-center text-5xl font-bold uppercase">{PLATFORM_NAME}</h1>
<div class="col-3">
<Button onclick={addSpace}>
<CardButton class="btn-neutral">
2025-05-29 20:37:23 +00:00
{#snippet icon()}
2025-09-10 22:26:39 +00:00
<div><Icon icon={AddCircle} size={7} /></div>
2025-05-29 20:37:23 +00:00
{/snippet}
{#snippet title()}
<div>Add a space</div>
{/snippet}
{#snippet info()}
<div>Use an invite link, or create your own space.</div>
{/snippet}
</CardButton>
</Button>
<Link href="/discover">
<CardButton class="btn-neutral">
2025-05-29 20:37:23 +00:00
{#snippet icon()}
2025-09-10 22:26:39 +00:00
<div><Icon icon={Compass} size={7} /></div>
2025-05-29 20:37:23 +00:00
{/snippet}
{#snippet title()}
<div>Browse the network</div>
{/snippet}
{#snippet info()}
<div>Find communities on the nostr network.</div>
{/snippet}
</CardButton>
</Link>
2025-08-19 21:05:02 +00:00
<Button onclick={openChat}>
<CardButton class="btn-neutral">
2025-05-29 20:37:23 +00:00
{#snippet icon()}
2025-09-10 22:26:39 +00:00
<div><Icon icon={ChatRound} size={7} /></div>
2025-05-29 20:37:23 +00:00
{/snippet}
{#snippet title()}
<div>Start a conversation</div>
{/snippet}
{#snippet info()}
<div>Use nostr's encrypted group chats to stay in touch.</div>
{/snippet}
</CardButton>
2025-08-19 21:05:02 +00:00
</Button>
2024-08-05 21:45:16 +00:00
</div>
</div>
</div>
2025-05-29 20:37:23 +00:00
</div>