forked from coracle/flotilla
Fix modal history
This commit is contained in:
@@ -18,8 +18,8 @@
|
||||
as a user.
|
||||
</p>
|
||||
<div class="card flex-row justify-between">
|
||||
relay.whatever.com
|
||||
<button on:click={() => clip('relay.whatever.com')}>
|
||||
devrelay.highlighter.com
|
||||
<button on:click={() => clip('devrelay.highlighter.com')}>
|
||||
<Icon icon="copy" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
</style>
|
||||
|
||||
<script lang="ts">
|
||||
import {goto} from '$app/navigation'
|
||||
import Icon from "@lib/components/Icon.svelte"
|
||||
import PrimaryNavItem from "@lib/components/PrimaryNavItem.svelte"
|
||||
import SpaceAdd from '@app/components/SpaceAdd.svelte'
|
||||
@@ -14,6 +15,8 @@
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
export const addSpace = () => pushModal(SpaceAdd)
|
||||
|
||||
export const browseSpaces = () => goto("/browse")
|
||||
</script>
|
||||
|
||||
<div class="relative w-14 bg-base-100">
|
||||
@@ -41,7 +44,7 @@
|
||||
<Icon size={7} icon="add-circle" />
|
||||
</div>
|
||||
</PrimaryNavItem>
|
||||
<PrimaryNavItem title="Browse Spaces">
|
||||
<PrimaryNavItem title="Browse Spaces" on:click={browseSpaces}>
|
||||
<div class="!flex w-10 items-center justify-center">
|
||||
<Icon size={6} icon="compass-big" />
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
<script lang="ts">
|
||||
import CardButton from '@lib/components/CardButton.svelte'
|
||||
import SpaceCreate from '@app/components/SpaceCreate.svelte'
|
||||
import SpaceJoin from '@app/components/SpaceJoin.svelte'
|
||||
import {pushModal} from '@app/modal'
|
||||
|
||||
const startCreate = () => pushModal(SpaceCreate)
|
||||
|
||||
const startJoin = () => pushModal(SpaceJoin)
|
||||
</script>
|
||||
|
||||
<div class="column gap-4">
|
||||
@@ -14,7 +17,7 @@
|
||||
</CardButton>
|
||||
<div class="card column gap-4">
|
||||
<h2 class="subheading">Have an invite?</h2>
|
||||
<button class="btn btn-primary">
|
||||
<button class="btn btn-primary" on:click={startJoin}>
|
||||
Join a Space
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
import Field from '@lib/components/Field.svelte'
|
||||
import Icon from '@lib/components/Icon.svelte'
|
||||
import InfoNip29 from '@app/components/InfoNip29.svelte'
|
||||
import SpaceCreateFinish from '@app/components/SpaceCreateFinish.svelte'
|
||||
import {pushModal} from '@app/modal'
|
||||
|
||||
const back = () => history.back()
|
||||
|
||||
const next = () => pushModal()
|
||||
const next = () => pushModal(SpaceCreateFinish)
|
||||
|
||||
const showNip29Info = () => pushModal(InfoNip29)
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
hi
|
||||
@@ -0,0 +1,45 @@
|
||||
<script lang="ts">
|
||||
import {goto} from '$app/navigation'
|
||||
import CardButton from '@lib/components/CardButton.svelte'
|
||||
import Field from '@lib/components/Field.svelte'
|
||||
import Icon from '@lib/components/Icon.svelte'
|
||||
import SpaceCreateFinish from '@app/components/SpaceCreateFinish.svelte'
|
||||
import {pushModal} from '@app/modal'
|
||||
|
||||
const back = () => history.back()
|
||||
|
||||
const browse = () => goto("/browse", {state: {}})
|
||||
|
||||
const join = () => {}
|
||||
|
||||
let link = ""
|
||||
|
||||
$: linkIsValid = Boolean(link.match(/.+\..+'.+/))
|
||||
</script>
|
||||
|
||||
<div class="column gap-4">
|
||||
<h1 class="heading">Join a Space</h1>
|
||||
<p class="text-center">
|
||||
Enter an invite link below to join an existing space.
|
||||
</p>
|
||||
<Field>
|
||||
<p slot="label">Invite Link*</p>
|
||||
<label class="input input-bordered w-full flex items-center gap-2" slot="input">
|
||||
<Icon icon="link-round" />
|
||||
<input bind:value={link} class="grow" type="text" />
|
||||
</label>
|
||||
</Field>
|
||||
<CardButton icon="compass" title="Don't have an invite?" on:click={browse}>
|
||||
Browse other spaces on the discover page.
|
||||
</CardButton>
|
||||
<div class="flex flex-row justify-between items-center gap-4">
|
||||
<button class="btn btn-link" on:click={back}>
|
||||
<Icon icon="alt-arrow-left" />
|
||||
Go back
|
||||
</button>
|
||||
<button class="btn btn-primary" on:click={join} disabled={!linkIsValid}>
|
||||
Join Space
|
||||
<Icon icon="alt-arrow-right" class="!bg-base-300" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
+3
-6
@@ -1,6 +1,6 @@
|
||||
import type {ComponentType} from "svelte"
|
||||
import {randomId} from "@welshman/lib"
|
||||
import {pushState} from "$app/navigation"
|
||||
import {goto} from "$app/navigation"
|
||||
|
||||
export const modals = new Map()
|
||||
|
||||
@@ -9,12 +9,9 @@ export const pushModal = (component: ComponentType, props: Record<string, any> =
|
||||
|
||||
// TODO: fix memory leak here by listening to history somehow
|
||||
modals.set(id, {component, props})
|
||||
pushState("", {modal: id})
|
||||
goto("#" + id)
|
||||
|
||||
return id
|
||||
}
|
||||
|
||||
export const popModal = (id: string) => {
|
||||
modals.delete(id)
|
||||
history.back()
|
||||
}
|
||||
export const clearModal = () => goto('#')
|
||||
|
||||
Reference in New Issue
Block a user