Finish svelte 5 migration

This commit is contained in:
Jon Staab
2025-02-03 19:28:29 -08:00
parent 24045a7e2a
commit a0e97d5e5b
38 changed files with 52 additions and 105 deletions
+1 -3
View File
@@ -1,10 +1,8 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {onMount} from "svelte" import {onMount} from "svelte"
import {writable} from "svelte/store" import {writable} from "svelte/store"
import {EditorContent} from "svelte-tiptap" import {EditorContent} from "svelte-tiptap"
import {isMobile} from "@lib/html" import {isMobile, preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import {makeEditor} from "@app/editor" import {makeEditor} from "@app/editor"
+1 -5
View File
@@ -1,7 +1,4 @@
<script lang="ts"> <script lang="ts">
import {createBubbler, stopPropagation} from "svelte/legacy"
const bubble = createBubbler()
import {hash} from "@welshman/lib" import {hash} from "@welshman/lib"
import {now} from "@welshman/lib" import {now} from "@welshman/lib"
import type {TrustedEvent} from "@welshman/util" import type {TrustedEvent} from "@welshman/util"
@@ -104,8 +101,7 @@
</div> </div>
<button <button
class="join absolute right-1 top-1 border border-solid border-neutral text-xs opacity-0 transition-all" class="join absolute right-1 top-1 border border-solid border-neutral text-xs opacity-0 transition-all"
class:group-hover:opacity-100={!isMobile} class:group-hover:opacity-100={!isMobile}>
onclick={stopPropagation(bubble("click"))}>
<ChannelMessageEmojiButton {url} {room} {event} /> <ChannelMessageEmojiButton {url} {room} {event} />
{#if replyTo} {#if replyTo}
<Button class="btn join-item btn-xs" onclick={reply}> <Button class="btn join-item btn-xs" onclick={reply}>
+1 -2
View File
@@ -1,9 +1,8 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {WRAP} from "@welshman/util" import {WRAP} from "@welshman/util"
import {repository} from "@welshman/app" import {repository} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
+1 -2
View File
@@ -1,8 +1,7 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {pubkey} from "@welshman/app" import {pubkey} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
+2 -3
View File
@@ -1,7 +1,4 @@
<script lang="ts"> <script lang="ts">
import Content from "./Content.svelte"
import {preventDefault, stopPropagation} from "svelte/legacy"
import type {TrustedEvent} from "@welshman/util" import type {TrustedEvent} from "@welshman/util"
import {fromNostrURI} from "@welshman/util" import {fromNostrURI} from "@welshman/util"
import {nthEq} from "@welshman/lib" import {nthEq} from "@welshman/lib"
@@ -21,9 +18,11 @@
isAddress, isAddress,
isNewline, isNewline,
} from "@welshman/content" } from "@welshman/content"
import {preventDefault, stopPropagation} from "@lib/html"
import Link from "@lib/components/Link.svelte" import Link from "@lib/components/Link.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Content from "@app/components/Content.svelte"
import ContentToken from "@app/components/ContentToken.svelte" import ContentToken from "@app/components/ContentToken.svelte"
import ContentCode from "@app/components/ContentCode.svelte" import ContentCode from "@app/components/ContentCode.svelte"
import ContentLinkInline from "@app/components/ContentLinkInline.svelte" import ContentLinkInline from "@app/components/ContentLinkInline.svelte"
+1 -2
View File
@@ -1,8 +1,7 @@
<script lang="ts"> <script lang="ts">
import {preventDefault, stopPropagation} from "svelte/legacy"
import {ellipsize, postJson} from "@welshman/lib" import {ellipsize, postJson} from "@welshman/lib"
import {dufflepud, imgproxy} from "@app/state" import {dufflepud, imgproxy} from "@app/state"
import {preventDefault, stopPropagation} from "@lib/html"
import Link from "@lib/components/Link.svelte" import Link from "@lib/components/Link.svelte"
import ContentLinkDetail from "@app/components/ContentLinkDetail.svelte" import ContentLinkDetail from "@app/components/ContentLinkDetail.svelte"
import {pushModal} from "@app/modal" import {pushModal} from "@app/modal"
+1 -2
View File
@@ -1,7 +1,6 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {displayUrl} from "@welshman/lib" import {displayUrl} from "@welshman/lib"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Link from "@lib/components/Link.svelte" import Link from "@lib/components/Link.svelte"
import ContentLinkDetail from "@app/components/ContentLinkDetail.svelte" import ContentLinkDetail from "@app/components/ContentLinkDetail.svelte"
+1 -2
View File
@@ -1,11 +1,10 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {EditorContent} from "svelte-tiptap" import {EditorContent} from "svelte-tiptap"
import {writable} from "svelte/store" import {writable} from "svelte/store"
import {randomId} from "@welshman/lib" import {randomId} from "@welshman/lib"
import {createEvent, EVENT_TIME} from "@welshman/util" import {createEvent, EVENT_TIME} from "@welshman/util"
import {publishThunk, dateToSeconds} from "@welshman/app" import {publishThunk, dateToSeconds} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
+1 -2
View File
@@ -1,6 +1,5 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy" import {preventDefault} from "@lib/html"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
+2 -3
View File
@@ -1,9 +1,8 @@
<script lang="ts"> <script lang="ts">
import {run, preventDefault} from "svelte/legacy"
import {onMount, onDestroy} from "svelte" import {onMount, onDestroy} from "svelte"
import {Nip46Broker, getPubkey, makeSecret} from "@welshman/signer" import {Nip46Broker, getPubkey, makeSecret} from "@welshman/signer"
import {addSession} from "@welshman/app" import {addSession} from "@welshman/app"
import {preventDefault} from "@lib/html"
import {slideAndFade} from "@lib/transition" import {slideAndFade} from "@lib/transition"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
@@ -65,7 +64,7 @@
let bunker = $state("") let bunker = $state("")
let loading = $state(false) let loading = $state(false)
run(() => { $effect(() => {
// For testing and for play store reviewers // For testing and for play store reviewers
if (bunker === "reviewkey") { if (bunker === "reviewkey") {
const secret = makeSecret() const secret = makeSecret()
+1 -2
View File
@@ -1,11 +1,10 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {onMount, onDestroy} from "svelte" import {onMount, onDestroy} from "svelte"
import {postJson, stripProtocol} from "@welshman/lib" import {postJson, stripProtocol} from "@welshman/lib"
import {Nip46Broker, makeSecret} from "@welshman/signer" import {Nip46Broker, makeSecret} from "@welshman/signer"
import {normalizeRelayUrl} from "@welshman/util" import {normalizeRelayUrl} from "@welshman/util"
import {addSession} from "@welshman/app" import {addSession} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import FieldInline from "@lib/components/FieldInline.svelte" import FieldInline from "@lib/components/FieldInline.svelte"
+1 -2
View File
@@ -1,6 +1,5 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy" import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
+1 -2
View File
@@ -1,7 +1,6 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {postJson, sleep} from "@welshman/lib" import {postJson, sleep} from "@welshman/lib"
import {preventDefault} from "@lib/html"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
@@ -1,7 +1,6 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {postJson, sleep} from "@welshman/lib" import {postJson, sleep} from "@welshman/lib"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import FieldInline from "@lib/components/FieldInline.svelte" import FieldInline from "@lib/components/FieldInline.svelte"
+1 -2
View File
@@ -1,6 +1,4 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {ctx} from "@welshman/lib" import {ctx} from "@welshman/lib"
import { import {
createEvent, createEvent,
@@ -10,6 +8,7 @@
isPublishedProfile, isPublishedProfile,
} from "@welshman/util" } from "@welshman/util"
import {pubkey, profilesByPubkey, publishThunk} from "@welshman/app" import {pubkey, profilesByPubkey, publishThunk} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
+1 -3
View File
@@ -1,6 +1,4 @@
<script lang="ts"> <script lang="ts">
import {preventDefault, stopPropagation} from "svelte/legacy"
import {onMount} from "svelte" import {onMount} from "svelte"
import {groupBy, uniq, uniqBy, batch} from "@welshman/lib" import {groupBy, uniq, uniqBy, batch} from "@welshman/lib"
import {REACTION, getTag, REPORT, DELETE} from "@welshman/util" import {REACTION, getTag, REPORT, DELETE} from "@welshman/util"
@@ -8,7 +6,7 @@
import {deriveEvents} from "@welshman/store" import {deriveEvents} from "@welshman/store"
import {pubkey, repository, load, displayProfileByPubkey} from "@welshman/app" import {pubkey, repository, load, displayProfileByPubkey} from "@welshman/app"
import {displayList} from "@lib/util" import {displayList} from "@lib/util"
import {isMobile} from "@lib/html" import {isMobile, preventDefault, stopPropagation} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import EventReportDetails from "@app/components/EventReportDetails.svelte" import EventReportDetails from "@app/components/EventReportDetails.svelte"
import {displayReaction} from "@app/state" import {displayReaction} from "@app/state"
+1 -2
View File
@@ -1,10 +1,9 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {randomId} from "@welshman/lib" import {randomId} from "@welshman/lib"
import {displayRelayUrl} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import {deriveRelay} from "@welshman/app" import {deriveRelay} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
+1 -3
View File
@@ -1,8 +1,6 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {postJson} from "@welshman/lib" import {postJson} from "@welshman/lib"
import {isMobile} from "@lib/html" import {isMobile, preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import FieldInline from "@lib/components/FieldInline.svelte" import FieldInline from "@lib/components/FieldInline.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
+1 -2
View File
@@ -1,11 +1,10 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {displayRelayUrl} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import {preventDefault} from "@lib/html"
import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte"
import {pushToast} from "@app/toast" import {pushToast} from "@app/toast"
+1 -2
View File
@@ -1,10 +1,9 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {onMount} from "svelte" import {onMount} from "svelte"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {ctx, sleep} from "@welshman/lib" import {ctx, sleep} from "@welshman/lib"
import {displayRelayUrl} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
+1 -2
View File
@@ -1,6 +1,5 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy" import {preventDefault} from "@lib/html"
import InputProfilePicture from "@lib/components/InputProfilePicture.svelte" import InputProfilePicture from "@lib/components/InputProfilePicture.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
@@ -1,6 +1,5 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy" import {preventDefault} from "@lib/html"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Link from "@lib/components/Link.svelte" import Link from "@lib/components/Link.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
+1 -2
View File
@@ -1,8 +1,7 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {displayRelayUrl} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import {preventDefault} from "@lib/html"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
+1 -2
View File
@@ -1,9 +1,8 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {ctx, tryCatch} from "@welshman/lib" import {ctx, tryCatch} from "@welshman/lib"
import {isRelayUrl, normalizeRelayUrl} from "@welshman/util" import {isRelayUrl, normalizeRelayUrl} from "@welshman/util"
import {preventDefault} from "@lib/html"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
+1 -2
View File
@@ -1,7 +1,6 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {displayRelayUrl} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import {preventDefault} from "@lib/html"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
+1 -3
View File
@@ -1,11 +1,9 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {writable} from "svelte/store" import {writable} from "svelte/store"
import {EditorContent} from "svelte-tiptap" import {EditorContent} from "svelte-tiptap"
import {createEvent, THREAD} from "@welshman/util" import {createEvent, THREAD} from "@welshman/util"
import {publishThunk} from "@welshman/app" import {publishThunk} from "@welshman/app"
import {isMobile} from "@lib/html" import {isMobile, preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
+1 -2
View File
@@ -1,8 +1,7 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {nthEq} from "@welshman/lib" import {nthEq} from "@welshman/lib"
import {formatTimestamp} from "@welshman/app" import {formatTimestamp} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Link from "@lib/components/Link.svelte" import Link from "@lib/components/Link.svelte"
import Content from "@app/components/Content.svelte" import Content from "@app/components/Content.svelte"
import ProfileName from "@app/components/ProfileName.svelte" import ProfileName from "@app/components/ProfileName.svelte"
+1 -3
View File
@@ -1,9 +1,7 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {writable} from "svelte/store" import {writable} from "svelte/store"
import {EditorContent} from "svelte-tiptap" import {EditorContent} from "svelte-tiptap"
import {isMobile} from "@lib/html" import {isMobile, preventDefault} from "@lib/html"
import {fly, slideAndFade} from "@lib/transition" import {fly, slideAndFade} from "@lib/transition"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
+1 -2
View File
@@ -1,10 +1,9 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {nip19} from "nostr-tools" import {nip19} from "nostr-tools"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {ctx} from "@welshman/lib" import {ctx} from "@welshman/lib"
import {toNostrURI} from "@welshman/util" import {toNostrURI} from "@welshman/util"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalHeader from "@lib/components/ModalHeader.svelte"
+1 -3
View File
@@ -1,6 +1,4 @@
<script lang="ts"> <script lang="ts">
import {run} from "svelte/legacy"
import {PublishStatus} from "@welshman/net" import {PublishStatus} from "@welshman/net"
import {displayRelayUrl} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
@@ -14,7 +12,7 @@
let {url, status, message = $bindable(), retry}: Props = $props() let {url, status, message = $bindable(), retry}: Props = $props()
run(() => { $effect(() => {
if (!message && status === PublishStatus.Timeout) { if (!message && status === PublishStatus.Timeout) {
message = "request timed out" message = "request timed out"
} }
+1 -2
View File
@@ -1,6 +1,5 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy" import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte" import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
+3 -3
View File
@@ -1,7 +1,6 @@
<script lang="ts"> <script lang="ts">
import {run, preventDefault, stopPropagation} from "svelte/legacy"
import {randomId} from "@welshman/lib" import {randomId} from "@welshman/lib"
import {preventDefault, stopPropagation} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
interface Props { interface Props {
@@ -44,7 +43,7 @@
let active = $state(false) let active = $state(false)
let initialUrl = $state(url) let initialUrl = $state(url)
run(() => { $effect(() => {
if (file) { if (file) {
const reader = new FileReader() const reader = new FileReader()
@@ -55,6 +54,7 @@
}, },
false, false,
) )
reader.readAsDataURL(file) reader.readAsDataURL(file)
} else { } else {
url = initialUrl url = initialUrl
@@ -1,7 +1,6 @@
<script lang="ts"> <script lang="ts">
import {run, preventDefault, stopPropagation} from "svelte/legacy"
import {randomId} from "@welshman/lib" import {randomId} from "@welshman/lib"
import {preventDefault, stopPropagation} from "@lib/html"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
interface Props { interface Props {
@@ -44,7 +43,7 @@
let active = $state(false) let active = $state(false)
let initialUrl = $state(url) let initialUrl = $state(url)
run(() => { $effect(() => {
if (file) { if (file) {
const reader = new FileReader() const reader = new FileReader()
+1 -1
View File
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import type {Snippet} from "svelte" import type {Snippet} from "svelte"
import {stopPropagation} from "svelte/legacy"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {stopPropagation} from "@lib/html"
const { const {
children, children,
+7 -17
View File
@@ -1,15 +1,12 @@
<script lang="ts"> <script lang="ts">
import {createBubbler} from "svelte/legacy" const {children, onLongPress, ...restProps} = $props()
const bubble = createBubbler() const ontouchstart = (event: any) => {
const {...props} = $props()
const onTouchStart = (event: any) => {
touch = event.touches[0] touch = event.touches[0]
timeout = setTimeout(props.onLongPress, 500) timeout = setTimeout(onLongPress, 500)
} }
const onTouchMove = (event: any) => { const ontouchmove = (event: any) => {
const curTouch = event.touches[0] const curTouch = event.touches[0]
if (Math.abs(curTouch.clientX - touch.clientX) > 30) { if (Math.abs(curTouch.clientX - touch.clientX) > 30) {
@@ -21,19 +18,12 @@
} }
} }
const onTouchEnd = () => clearTimeout(timeout) const ontouchend = () => clearTimeout(timeout)
let touch: Touch let touch: Touch
let timeout: any let timeout: any
</script> </script>
<div <div role="button" tabindex="0" {ontouchstart} {ontouchmove} {ontouchend} {...restProps}>
role="button" {@render children()}
tabindex="0"
onclick={bubble("click")}
ontouchstart={onTouchStart}
ontouchmove={onTouchMove}
ontouchend={onTouchEnd}
{...props}>
{@render props.children?.()}
</div> </div>
+1
View File
@@ -1,4 +1,5 @@
import {sleep} from "@welshman/lib" import {sleep} from "@welshman/lib"
export {preventDefault, stopPropagation} from "svelte/legacy"
export const copyToClipboard = (text: string) => { export const copyToClipboard = (text: string) => {
const {activeElement} = document const {activeElement} = document
+4 -5
View File
@@ -1,9 +1,8 @@
<script lang="ts"> <script lang="ts">
import {preventDefault} from "svelte/legacy"
import {ctx} from "@welshman/lib" import {ctx} from "@welshman/lib"
import {getListTags, createEvent, getPubkeyTagValues, MUTES} from "@welshman/util" import {getListTags, createEvent, getPubkeyTagValues, MUTES} from "@welshman/util"
import {pubkey, signer, userMutes, tagPubkey, publishThunk} from "@welshman/app" import {pubkey, signer, userMutes, tagPubkey, publishThunk} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Field from "@lib/components/Field.svelte" import Field from "@lib/components/Field.svelte"
import FieldInline from "@lib/components/FieldInline.svelte" import FieldInline from "@lib/components/FieldInline.svelte"
import Icon from "@lib/components/Icon.svelte" import Icon from "@lib/components/Icon.svelte"
@@ -17,7 +16,7 @@
settings = {...$userSettingValues} settings = {...$userSettingValues}
} }
const onSubmit = async () => { const onsubmit = preventDefault(async () => {
publishThunk({ publishThunk({
event: createEvent(SETTINGS, { event: createEvent(SETTINGS, {
content: await $signer!.nip04.encrypt($pubkey!, JSON.stringify(settings)), content: await $signer!.nip04.encrypt($pubkey!, JSON.stringify(settings)),
@@ -31,13 +30,13 @@
}) })
pushToast({message: "Your settings have been saved!"}) pushToast({message: "Your settings have been saved!"})
} })
let settings = $state({...$userSettingValues}) let settings = $state({...$userSettingValues})
let mutedPubkeys = $state(getPubkeyTagValues(getListTags($userMutes))) let mutedPubkeys = $state(getPubkeyTagValues(getListTags($userMutes)))
</script> </script>
<form class="content column gap-4" onsubmit={preventDefault(onSubmit)}> <form class="content column gap-4" {onsubmit}>
<div class="card2 bg-alt col-4 shadow-xl"> <div class="card2 bg-alt col-4 shadow-xl">
<p class="text-lg">Content Settings</p> <p class="text-lg">Content Settings</p>
<FieldInline> <FieldInline>
+1 -3
View File
@@ -1,6 +1,4 @@
<script lang="ts"> <script lang="ts">
import {run} from "svelte/legacy"
import {onMount} from "svelte" import {onMount} from "svelte"
import {page} from "$app/stores" import {page} from "$app/stores"
import {ago, MONTH} from "@welshman/lib" import {ago, MONTH} from "@welshman/lib"
@@ -44,7 +42,7 @@
} }
// We have to watch this one, since on mobile the badge will be visible when active // We have to watch this one, since on mobile the badge will be visible when active
run(() => { $effect(() => {
if ($notifications.has($page.url.pathname)) { if ($notifications.has($page.url.pathname)) {
setChecked($page.url.pathname) setChecked($page.url.pathname)
} }