Update src/routes/spaces/+page.svelte

This commit is contained in:
2026-04-13 22:31:25 +00:00
parent cf5503c0a2
commit d142eac13f
+26 -5
View File
@@ -101,6 +101,8 @@
const onDragStart = (e: DragEvent, url: string) => {
draggedUrl = url
dragStartOrder = [...orderedSpaceUrls]
lastDragTarget = undefined
didDrop = false
if (e.dataTransfer) {
e.dataTransfer.effectAllowed = "move"
@@ -108,15 +110,25 @@
}
}
const onDragOver = (e: DragEvent, targetUrl: string) => {
const onDragOver = (e: DragEvent) => {
e.preventDefault()
}
const onDragEnter = (e: DragEvent, targetUrl: string) => {
e.preventDefault()
if (lastDragTarget === targetUrl) return
lastDragTarget = targetUrl
reorderSpaceUrls(targetUrl)
}
const onDrop = (e: DragEvent, targetUrl: string) => {
e.preventDefault()
reorderSpaceUrls(targetUrl)
didDrop = true
draggedUrl = undefined
lastDragTarget = undefined
if (dragStartOrder && !isSameOrder(dragStartOrder, orderedSpaceUrls)) {
void setSpaceMembershipOrder(orderedSpaceUrls).catch(console.error)
@@ -126,8 +138,14 @@
}
const onDragEnd = () => {
if (!didDrop && dragStartOrder && !isSameOrder(dragStartOrder, orderedSpaceUrls)) {
orderedSpaceUrls = dragStartOrder
}
draggedUrl = undefined
dragStartOrder = undefined
lastDragTarget = undefined
didDrop = false
}
$effect(() => {
@@ -146,6 +164,8 @@
let orderedSpaceUrls = $state<string[]>([])
let draggedUrl = $state<string | undefined>()
let dragStartOrder = $state<string[] | undefined>()
let lastDragTarget = $state<string | undefined>()
let didDrop = $state(false)
const openSearch = () => {
showSearch = true
@@ -183,8 +203,8 @@
})
</script>
<Page>
<PageBar>
<Page class="cw-full">
<PageBar class="cw-full">
{#if showSearch}
<label class="input input-bordered input-sm flex flex-1 items-center gap-2" in:fly>
<Icon icon={Magnifier} />
@@ -221,7 +241,7 @@
</div>
{/if}
</PageBar>
<PageContent class="flex flex-col gap-2 p-2 pt-4">
<PageContent class="cw-full flex flex-col gap-2 p-2 pt-4">
<div class="flex flex-col gap-2" bind:this={element}>
{#each PLATFORM_RELAYS as url (url)}
<Button
@@ -255,7 +275,8 @@
draggable="true"
role="listitem"
ondragstart={e => onDragStart(e, url)}
ondragover={e => onDragOver(e, url)}
ondragover={onDragOver}
ondragenter={e => onDragEnter(e, url)}
ondrop={e => onDrop(e, url)}
ondragend={onDragEnd}>
<Button