forked from coracle/flotilla
Split app/core up into domain-oriented files
This commit is contained in:
+65
-12
@@ -10,9 +10,13 @@
|
||||
import {goto} from "$app/navigation"
|
||||
import {page} from "$app/stores"
|
||||
import {sync, throttled} from "@welshman/store"
|
||||
import {call} from "@welshman/lib"
|
||||
import {defaultSocketPolicies} from "@welshman/net"
|
||||
import {pubkey, sessions, signerLog, shouldUnwrap} from "@welshman/app"
|
||||
import {always, call} from "@welshman/lib"
|
||||
import {defaultSocketPolicies, netContext} from "@welshman/net"
|
||||
import {appContext, pubkey, sessions, signerLog, shouldUnwrap} from "@welshman/app"
|
||||
import {routerContext} from "@welshman/router"
|
||||
import {verifyEvent} from "@welshman/util"
|
||||
import type {TrustedEvent} from "@welshman/util"
|
||||
import {context as pomadeContext} from "@pomade/core"
|
||||
import * as lib from "@welshman/lib"
|
||||
import * as util from "@welshman/util"
|
||||
import * as feeds from "@welshman/feeds"
|
||||
@@ -29,12 +33,34 @@
|
||||
import {setupHistory} from "@app/routes"
|
||||
import {setupAnalytics} from "@app/analytics"
|
||||
import {authPolicy, blockPolicy, trustPolicy, mostlyRestrictedPolicy} from "@app/policies"
|
||||
import {db, kv, ss} from "@app/core/storage"
|
||||
import {device, userSettingsValues, notificationSettings, pushState} from "@app/core/state"
|
||||
import {syncApplicationData} from "@app/core/sync"
|
||||
import * as commands from "@app/core/commands"
|
||||
import * as requests from "@app/core/requests"
|
||||
import * as appState from "@app/core/state"
|
||||
import {db, kv, ss} from "@app/storage"
|
||||
import {device} from "@app/device"
|
||||
import {getSetting, userSettingsValues, notificationSettings} from "@app/settings"
|
||||
import {DUFFLEPUD_URL, INDEXER_RELAYS, POMADE_SIGNERS} from "@app/env"
|
||||
import {pushState} from "@app/push/adapters/common"
|
||||
import {syncApplicationData} from "@app/sync"
|
||||
import * as groups from "@app/groups"
|
||||
import * as comments from "@app/comments"
|
||||
import * as deletes from "@app/deletes"
|
||||
import * as reactions from "@app/reactions"
|
||||
import * as profiles from "@app/profiles"
|
||||
import * as lightning from "@app/lightning"
|
||||
import * as uploads from "@app/uploads"
|
||||
import * as appPolls from "@app/polls"
|
||||
import * as reports from "@app/reports"
|
||||
import * as relays from "@app/relays"
|
||||
import * as settings from "@app/settings"
|
||||
import * as members from "@app/members"
|
||||
import * as chats from "@app/chats"
|
||||
import * as content from "@app/content"
|
||||
import * as env from "@app/env"
|
||||
import * as repository from "@app/repository"
|
||||
import * as social from "@app/social"
|
||||
import * as appDevice from "@app/device"
|
||||
import * as actionItems from "@app/actionItems"
|
||||
import * as appFeeds from "@app/feeds"
|
||||
import * as invites from "@app/invites"
|
||||
import * as healthChecks from "@app/healthChecks"
|
||||
import {theme} from "@app/theme"
|
||||
import {toast, pushToast} from "@app/toast"
|
||||
import * as notifications from "@app/notifications"
|
||||
@@ -69,12 +95,39 @@
|
||||
...feeds,
|
||||
...net,
|
||||
...app,
|
||||
...appState,
|
||||
...commands,
|
||||
...requests,
|
||||
...groups,
|
||||
...relays,
|
||||
...settings,
|
||||
...members,
|
||||
...chats,
|
||||
...content,
|
||||
...env,
|
||||
...repository,
|
||||
...social,
|
||||
...appDevice,
|
||||
...actionItems,
|
||||
...appFeeds,
|
||||
...invites,
|
||||
...healthChecks,
|
||||
...comments,
|
||||
...deletes,
|
||||
...reactions,
|
||||
...profiles,
|
||||
...lightning,
|
||||
...uploads,
|
||||
...appPolls,
|
||||
...reports,
|
||||
...notifications,
|
||||
})
|
||||
|
||||
// Set up context for various modules
|
||||
pomadeContext.setSignerUrls(POMADE_SIGNERS)
|
||||
pomadeContext.setArgonWorker(import("@pomade/core/argon-worker.js?worker"))
|
||||
appContext.dufflepudUrl = DUFFLEPUD_URL
|
||||
routerContext.getIndexerRelays = always(INDEXER_RELAYS)
|
||||
netContext.isEventValid = (event: TrustedEvent, url: string) =>
|
||||
getSetting<string[]>("trusted_relays").includes(url) || verifyEvent(event)
|
||||
|
||||
// Listen for deep link events
|
||||
App.addListener("appUrlOpen", async (event: URLOpenListenerEvent) => {
|
||||
const url = new URL(event.url)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import {onMount} from "svelte"
|
||||
import {goto} from "$app/navigation"
|
||||
import {goToSpace} from "@app/routes"
|
||||
import {PLATFORM_RELAYS} from "@app/core/state"
|
||||
import {PLATFORM_RELAYS} from "@app/env"
|
||||
|
||||
onMount(async () => {
|
||||
if (PLATFORM_RELAYS.length > 0) {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
import ChatMenu from "@app/components/ChatMenu.svelte"
|
||||
import ChatStart from "@app/components/ChatStart.svelte"
|
||||
import ChatItem from "@app/components/ChatItem.svelte"
|
||||
import {chatSearch} from "@app/core/state"
|
||||
import {chatSearch} from "@app/chats"
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
import ChatItem from "@app/components/ChatItem.svelte"
|
||||
import ChatStart from "@app/components/ChatStart.svelte"
|
||||
import ChatMenu from "@app/components/ChatMenu.svelte"
|
||||
import {chatSearch} from "@app/core/state"
|
||||
import {chatSearch} from "@app/chats"
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
let term = $state("")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script context="module" lang="ts">
|
||||
import {synced} from "@welshman/store"
|
||||
import {kv} from "@app/core/storage"
|
||||
import {kv} from "@app/storage"
|
||||
|
||||
const dmNotificationsPrompted = synced({
|
||||
key: "dmNotificationsPrompted",
|
||||
@@ -16,8 +16,8 @@
|
||||
import {append, uniq} from "@welshman/lib"
|
||||
import {pubkey} from "@welshman/app"
|
||||
import Chat from "@app/components/Chat.svelte"
|
||||
import {splitChatId} from "@app/core/state"
|
||||
import {notificationSettings} from "@app/core/state"
|
||||
import {splitChatId} from "@app/chats"
|
||||
import {notificationSettings} from "@app/settings"
|
||||
import {pushToast} from "@app/toast"
|
||||
import {Push} from "@app/push"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import Button from "@lib/components/Button.svelte"
|
||||
import CardButton from "@lib/components/CardButton.svelte"
|
||||
import {goToSpace} from "@app/routes"
|
||||
import {PLATFORM_NAME, PLATFORM_RELAYS} from "@app/core/state"
|
||||
import {PLATFORM_NAME, PLATFORM_RELAYS} from "@app/env"
|
||||
|
||||
const openChat = () => goto("/chat")
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import Page from "@lib/components/Page.svelte"
|
||||
import ContentSearch from "@lib/components/ContentSearch.svelte"
|
||||
import PeopleItem from "@app/components/PeopleItem.svelte"
|
||||
import {bootstrapPubkeys} from "@app/core/state"
|
||||
import {bootstrapPubkeys} from "@app/social"
|
||||
|
||||
let term = $state("")
|
||||
let limit = $state(10)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import Button from "@lib/components/Button.svelte"
|
||||
import Icon from "@lib/components/Icon.svelte"
|
||||
import ProfileDetail from "@app/components/ProfileDetail.svelte"
|
||||
import {PLATFORM_NAME} from "@app/core/state"
|
||||
import {PLATFORM_NAME} from "@app/env"
|
||||
import {pushModal} from "@app/modal"
|
||||
import Code from "@assets/icons/code-2.svg?dataurl"
|
||||
import Global from "@assets/icons/global.svg?dataurl"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
import {pushToast} from "@app/toast"
|
||||
import {clearBadges} from "@app/notifications"
|
||||
import {Push} from "@app/push"
|
||||
import {notificationSettings} from "@app/core/state"
|
||||
import {notificationSettings} from "@app/settings"
|
||||
|
||||
const reset = () => {
|
||||
settings = {...notificationSettings.get()}
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
import Button from "@lib/components/Button.svelte"
|
||||
import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte"
|
||||
import {pushToast} from "@app/toast"
|
||||
import {PLATFORM_NAME, userSettingsValues} from "@app/core/state"
|
||||
import {publishSettings} from "@app/core/commands"
|
||||
import {PLATFORM_NAME} from "@app/env"
|
||||
import {userSettingsValues, publishSettings} from "@app/settings"
|
||||
|
||||
const reset = () => {
|
||||
settings = {...$userSettingsValues}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
import Icon from "@lib/components/Icon.svelte"
|
||||
import Button from "@lib/components/Button.svelte"
|
||||
import {pushToast} from "@app/toast"
|
||||
import {PLATFORM_NAME, RelayAuthMode, userSettingsValues} from "@app/core/state"
|
||||
import {publishSettings} from "@app/core/commands"
|
||||
import {PLATFORM_NAME} from "@app/env"
|
||||
import {RelayAuthMode, userSettingsValues, publishSettings} from "@app/settings"
|
||||
|
||||
const reset = () => {
|
||||
settings = {...$userSettingsValues}
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
import Icon from "@lib/components/Icon.svelte"
|
||||
import RelaySettingsItem from "@app/components/RelaySettingsItem.svelte"
|
||||
import RelaySettingsHealthChecks from "@app/components/RelaySettingsHealthChecks.svelte"
|
||||
import {hasNip50} from "@app/core/state"
|
||||
import {discoverRelays} from "@app/core/requests"
|
||||
import {hasNip50} from "@app/relays"
|
||||
import {discoverRelays} from "@app/relays"
|
||||
|
||||
const readRelayUrls = derivePubkeyRelays($pubkey!, RelayMode.Read)
|
||||
const writeRelayUrls = derivePubkeyRelays($pubkey!, RelayMode.Write)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
import WalletDisconnect from "@app/components/WalletDisconnect.svelte"
|
||||
import WalletUpdateReceivingAddress from "@app/components/WalletUpdateReceivingAddress.svelte"
|
||||
import {pushModal} from "@app/modal"
|
||||
import {getNwcClient, getWebLn} from "@app/core/commands"
|
||||
import {getNwcClient, getWebLn} from "@app/lightning"
|
||||
import Wallet2 from "@assets/icons/wallet.svg?dataurl"
|
||||
import CheckCircle from "@assets/icons/check-circle.svg?dataurl"
|
||||
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
|
||||
|
||||
@@ -26,16 +26,10 @@
|
||||
import SpaceAdd from "@app/components/SpaceAdd.svelte"
|
||||
import SpaceInviteAccept from "@app/components/SpaceInviteAccept.svelte"
|
||||
import SpaceJoin from "@app/components/SpaceJoin.svelte"
|
||||
import {
|
||||
userSpaceUrls,
|
||||
loadUserGroupList,
|
||||
PLATFORM_RELAYS,
|
||||
DEFAULT_RELAYS,
|
||||
groupListPubkeysByUrl,
|
||||
bootstrapPubkeys,
|
||||
parseInviteLink,
|
||||
} from "@app/core/state"
|
||||
import {setSpaceMembershipOrder} from "@app/core/commands"
|
||||
import {userSpaceUrls, loadUserGroupList, groupListPubkeysByUrl, setSpaceOrder} from "@app/groups"
|
||||
import {PLATFORM_RELAYS, DEFAULT_RELAYS} from "@app/env"
|
||||
import {bootstrapPubkeys} from "@app/social"
|
||||
import {parseInviteLink} from "@app/invites"
|
||||
import {pushModal} from "@app/modal"
|
||||
import {goToSpace, makeSpacePath} from "@app/routes"
|
||||
import {notifications} from "@app/notifications"
|
||||
@@ -134,7 +128,7 @@
|
||||
lastDragTarget = undefined
|
||||
|
||||
if (dragStartOrder && !isSameOrder(dragStartOrder, orderedSpaceUrls)) {
|
||||
void setSpaceMembershipOrder(orderedSpaceUrls).catch(console.error)
|
||||
void setSpaceOrder(orderedSpaceUrls).catch(console.error)
|
||||
}
|
||||
|
||||
dragStartOrder = undefined
|
||||
|
||||
@@ -15,8 +15,9 @@
|
||||
import SpaceJoin from "@app/components/SpaceJoin.svelte"
|
||||
import {pushModal} from "@app/modal"
|
||||
import {makeSpacePath} from "@app/routes"
|
||||
import {decodeRelay, userGroupList, relaysPendingTrust, userSpaceUrls} from "@app/core/state"
|
||||
import {deriveRelayAuthError} from "@app/core/commands"
|
||||
import {decodeRelay, deriveRelayAuthError} from "@app/relays"
|
||||
import {userGroupList, userSpaceUrls} from "@app/groups"
|
||||
import {relaysPendingTrust} from "@app/policies"
|
||||
|
||||
type Props = {
|
||||
children?: Snippet
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import {page} from "$app/stores"
|
||||
import theme from "tailwindcss/defaultTheme"
|
||||
import SecondaryNav from "@lib/components/SecondaryNav.svelte"
|
||||
import {decodeRelay} from "@app/core/state"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {goToSpace} from "@app/routes"
|
||||
import PrimaryNavSpaces from "@app/components/PrimaryNavSpaces.svelte"
|
||||
import SpaceMenu from "@app/components/SpaceMenu.svelte"
|
||||
|
||||
@@ -32,22 +32,17 @@
|
||||
import ThunkToast from "@app/components/ThunkToast.svelte"
|
||||
import RoomItemAddMember from "@src/app/components/RoomItemAddMember.svelte"
|
||||
import RoomComposeEdit from "@src/app/components/RoomComposeEdit.svelte"
|
||||
import {canEnforceNip70, prependParent, publishDelete} from "@app/core/commands"
|
||||
import {
|
||||
decodeRelay,
|
||||
deriveRoom,
|
||||
deriveUserRoomMembershipStatus,
|
||||
getRoomType,
|
||||
MembershipStatus,
|
||||
PROTECTED,
|
||||
RoomType,
|
||||
userSettingsValues,
|
||||
} from "@app/core/state"
|
||||
import {canEnforceNip70} from "@app/relays"
|
||||
import {prependParent, deriveRoom, getRoomType, PROTECTED, RoomType} from "@app/groups"
|
||||
import {publishDelete} from "@app/deletes"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {deriveUserRoomMembershipStatus, MembershipStatus} from "@app/members"
|
||||
import {userSettingsValues} from "@app/settings"
|
||||
import VoiceWidget from "@app/components/VoiceWidget.svelte"
|
||||
import VideoCallContent from "@app/components/VideoCallContent.svelte"
|
||||
import {VoiceState, currentVoiceRoom, voiceState} from "@app/call/stores"
|
||||
import {VideoCallLayout, videoCallLayout, videoTileCount} from "@app/call/video"
|
||||
import {makeFeed} from "@app/core/requests"
|
||||
import {makeFeed} from "@app/feeds"
|
||||
import {popKey} from "@lib/implicit"
|
||||
import {checked, deferredRoomPath, setChecked} from "@app/notifications"
|
||||
import {makeRoomPath} from "@app/routes"
|
||||
|
||||
@@ -18,8 +18,9 @@
|
||||
import CalendarEventItem from "@app/components/CalendarEventItem.svelte"
|
||||
import CalendarEventCreate from "@app/components/CalendarEventCreate.svelte"
|
||||
import {pushModal} from "@app/modal"
|
||||
import {decodeRelay, makeCommentFilter} from "@app/core/state"
|
||||
import {makeCalendarFeed} from "@app/core/requests"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {makeCommentFilter} from "@app/content"
|
||||
import {makeCalendarFeed} from "@app/feeds"
|
||||
|
||||
const url = decodeRelay($page.params.relay!)
|
||||
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
import CalendarEventMeta from "@app/components/CalendarEventMeta.svelte"
|
||||
import CalendarEventDate from "@app/components/CalendarEventDate.svelte"
|
||||
import EventReply from "@app/components/EventReply.svelte"
|
||||
import {deriveEvent, decodeRelay} from "@app/core/state"
|
||||
import {deriveEvent} from "@app/repository"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
|
||||
const {relay, address} = $page.params as MakeNonOptional<typeof $page.params>
|
||||
const url = decodeRelay(relay)
|
||||
|
||||
@@ -26,11 +26,13 @@
|
||||
import RoomCompose from "@app/components/RoomCompose.svelte"
|
||||
import RoomComposeEdit from "@src/app/components/RoomComposeEdit.svelte"
|
||||
import RoomComposeParent from "@app/components/RoomComposeParent.svelte"
|
||||
import {userSettingsValues, decodeRelay, PROTECTED} from "@app/core/state"
|
||||
import {prependParent, canEnforceNip70, publishDelete} from "@app/core/commands"
|
||||
import {userSettingsValues} from "@app/settings"
|
||||
import {decodeRelay, canEnforceNip70} from "@app/relays"
|
||||
import {PROTECTED, prependParent} from "@app/groups"
|
||||
import {publishDelete} from "@app/deletes"
|
||||
import {checked} from "@app/notifications"
|
||||
import {pushToast} from "@app/toast"
|
||||
import {makeFeed} from "@app/core/requests"
|
||||
import {makeFeed} from "@app/feeds"
|
||||
import {popKey} from "@lib/implicit"
|
||||
|
||||
const mounted = now()
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
import SpaceBar from "@app/components/SpaceBar.svelte"
|
||||
import ClassifiedItem from "@app/components/ClassifiedItem.svelte"
|
||||
import ClassifiedCreate from "@app/components/ClassifiedCreate.svelte"
|
||||
import {decodeRelay} from "@app/core/state"
|
||||
import {makeCommentFilter} from "@app/core/state"
|
||||
import {makeFeed} from "@app/core/requests"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {makeCommentFilter} from "@app/content"
|
||||
import {makeFeed} from "@app/feeds"
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
const url = decodeRelay($page.params.relay!)
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
import ClassifiedActions from "@app/components/ClassifiedActions.svelte"
|
||||
import CommentActions from "@app/components/CommentActions.svelte"
|
||||
import EventReply from "@app/components/EventReply.svelte"
|
||||
import {deriveEvent, decodeRelay} from "@app/core/state"
|
||||
import {deriveEvent} from "@app/repository"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
|
||||
const {relay, address} = $page.params as MakeNonOptional<typeof $page.params>
|
||||
const url = decodeRelay(relay)
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
import SpaceBar from "@app/components/SpaceBar.svelte"
|
||||
import GoalItem from "@app/components/GoalItem.svelte"
|
||||
import GoalCreate from "@app/components/GoalCreate.svelte"
|
||||
import {decodeRelay, makeCommentFilter} from "@app/core/state"
|
||||
import {makeFeed} from "@app/core/requests"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {makeCommentFilter} from "@app/content"
|
||||
import {makeFeed} from "@app/feeds"
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
const url = decodeRelay($page.params.relay!)
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
import GoalActions from "@app/components/GoalActions.svelte"
|
||||
import CommentActions from "@app/components/CommentActions.svelte"
|
||||
import EventReply from "@app/components/EventReply.svelte"
|
||||
import {deriveEvent, decodeRelay} from "@app/core/state"
|
||||
import {deriveEvent} from "@app/repository"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
|
||||
const {relay, id} = $page.params as MakeNonOptional<typeof $page.params>
|
||||
const url = decodeRelay(relay)
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
import SpaceBar from "@app/components/SpaceBar.svelte"
|
||||
import PollItem from "@app/components/PollItem.svelte"
|
||||
import PollCreate from "@app/components/PollCreate.svelte"
|
||||
import {decodeRelay, makeCommentFilter} from "@app/core/state"
|
||||
import {makeFeed} from "@app/core/requests"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {makeCommentFilter} from "@app/content"
|
||||
import {makeFeed} from "@app/feeds"
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
const url = decodeRelay($page.params.relay!)
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
import NoteContent from "@app/components/NoteContent.svelte"
|
||||
import CommentActions from "@app/components/CommentActions.svelte"
|
||||
import EventReply from "@app/components/EventReply.svelte"
|
||||
import {deriveEvent, decodeRelay} from "@app/core/state"
|
||||
import {deriveEvent} from "@app/repository"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
|
||||
const {relay, id} = $page.params as MakeNonOptional<typeof $page.params>
|
||||
const url = decodeRelay(relay)
|
||||
|
||||
@@ -49,7 +49,9 @@
|
||||
import CalendarEventItem from "@app/components/CalendarEventItem.svelte"
|
||||
import PollItem from "@app/components/PollItem.svelte"
|
||||
import RecentConversation from "@app/components/RecentConversation.svelte"
|
||||
import {decodeRelay, deriveEventsForUrl, CONTENT_KINDS} from "@app/core/state"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {deriveEventsForUrl} from "@app/repository"
|
||||
import {CONTENT_KINDS} from "@app/content"
|
||||
import {goToEvent} from "@app/routes"
|
||||
|
||||
const url = decodeRelay($page.params.relay!)
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
import SpaceBar from "@app/components/SpaceBar.svelte"
|
||||
import ThreadItem from "@app/components/ThreadItem.svelte"
|
||||
import ThreadCreate from "@app/components/ThreadCreate.svelte"
|
||||
import {decodeRelay} from "@app/core/state"
|
||||
import {makeCommentFilter} from "@app/core/state"
|
||||
import {makeFeed} from "@app/core/requests"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
import {makeCommentFilter} from "@app/content"
|
||||
import {makeFeed} from "@app/feeds"
|
||||
import {pushModal} from "@app/modal"
|
||||
|
||||
const url = decodeRelay($page.params.relay!)
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
import ThreadActions from "@app/components/ThreadActions.svelte"
|
||||
import CommentActions from "@app/components/CommentActions.svelte"
|
||||
import EventReply from "@app/components/EventReply.svelte"
|
||||
import {deriveEvent, decodeRelay} from "@app/core/state"
|
||||
import {deriveEvent} from "@app/repository"
|
||||
import {decodeRelay} from "@app/relays"
|
||||
|
||||
const {relay, id} = $page.params as MakeNonOptional<typeof $page.params>
|
||||
const url = decodeRelay(relay)
|
||||
|
||||
Reference in New Issue
Block a user