Split app/core up into domain-oriented files
This commit is contained in:
@@ -0,0 +1,89 @@
|
|||||||
|
import {
|
||||||
|
REPORT,
|
||||||
|
ROOM_ADD_MEMBER,
|
||||||
|
ROOM_JOIN,
|
||||||
|
ROOM_LEAVE,
|
||||||
|
ROOM_MEMBERS,
|
||||||
|
ROOM_REMOVE_MEMBER,
|
||||||
|
getPubkeyTagValues,
|
||||||
|
getTagValue,
|
||||||
|
sortEventsDesc,
|
||||||
|
} from "@welshman/util"
|
||||||
|
import type {TrustedEvent} from "@welshman/util"
|
||||||
|
import {first, groupBy, removeUndefined} from "@welshman/lib"
|
||||||
|
import {derived} from "svelte/store"
|
||||||
|
import {deriveEventsForUrl} from "@app/repository"
|
||||||
|
import {getRoomMembers} from "@app/members"
|
||||||
|
// Action items (admin review queue)
|
||||||
|
|
||||||
|
export const deriveSpaceActionItems = (url: string) =>
|
||||||
|
derived(
|
||||||
|
deriveEventsForUrl(url, [
|
||||||
|
{
|
||||||
|
kinds: [REPORT, ROOM_JOIN, ROOM_LEAVE, ROOM_MEMBERS, ROOM_ADD_MEMBER, ROOM_REMOVE_MEMBER],
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
$events => {
|
||||||
|
const getRoomId = (e: TrustedEvent) =>
|
||||||
|
getTagValue(e.kind === ROOM_MEMBERS ? "d" : "h", e.tags)
|
||||||
|
const reports = $events.filter(e => e.kind === REPORT)
|
||||||
|
const pendingJoins: TrustedEvent[] = []
|
||||||
|
|
||||||
|
// Room-level join requests — most recent per pubkey+h
|
||||||
|
for (const [h, roomEvents] of groupBy(getRoomId, $events)) {
|
||||||
|
if (!h) continue
|
||||||
|
|
||||||
|
const roomJoins: TrustedEvent[] = []
|
||||||
|
const roomLeaves: TrustedEvent[] = []
|
||||||
|
const roomMembershipEvents: TrustedEvent[] = []
|
||||||
|
|
||||||
|
for (const event of roomEvents) {
|
||||||
|
switch (event.kind) {
|
||||||
|
case ROOM_JOIN:
|
||||||
|
roomJoins.push(event)
|
||||||
|
break
|
||||||
|
case ROOM_LEAVE:
|
||||||
|
roomLeaves.push(event)
|
||||||
|
break
|
||||||
|
case ROOM_MEMBERS:
|
||||||
|
case ROOM_ADD_MEMBER:
|
||||||
|
case ROOM_REMOVE_MEMBER:
|
||||||
|
roomMembershipEvents.push(event)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const roomMembers = new Set(getRoomMembers(url, h, roomMembershipEvents))
|
||||||
|
|
||||||
|
pendingJoins.push(
|
||||||
|
...removeUndefined(
|
||||||
|
Array.from(groupBy(e => e.pubkey, roomJoins).values()).map(events =>
|
||||||
|
first(sortEventsDesc(events)),
|
||||||
|
),
|
||||||
|
).filter(({pubkey, created_at}) => {
|
||||||
|
if (roomMembers.has(pubkey)) return false
|
||||||
|
if (
|
||||||
|
roomMembershipEvents.some(event => {
|
||||||
|
if (event.created_at <= created_at) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.kind === ROOM_MEMBERS) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return getPubkeyTagValues(event.tags).includes(pubkey)
|
||||||
|
})
|
||||||
|
) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (roomLeaves.some(e => e.pubkey === pubkey && e.created_at > created_at)) return false
|
||||||
|
|
||||||
|
return true
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return sortEventsDesc([...reports, ...pendingJoins])
|
||||||
|
},
|
||||||
|
)
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/* eslint prefer-rest-params: 0 */
|
/* eslint prefer-rest-params: 0 */
|
||||||
|
|
||||||
import {page} from "$app/stores"
|
import {page} from "$app/stores"
|
||||||
import {getSetting} from "@app/core/state"
|
import {getSetting} from "@app/settings"
|
||||||
|
|
||||||
const w = window as any
|
const w = window as any
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import {Room as LiveKitRoom} from "livekit-client"
|
import {Room as LiveKitRoom} from "livekit-client"
|
||||||
import {derived, writable} from "svelte/store"
|
import {derived, writable} from "svelte/store"
|
||||||
import {type Room} from "@app/core/state"
|
import type {Room} from "@app/groups"
|
||||||
|
|
||||||
export type VoiceSession = {
|
export type VoiceSession = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ import {
|
|||||||
voiceState,
|
voiceState,
|
||||||
} from "@app/call/stores"
|
} from "@app/call/stores"
|
||||||
import {resetVideoCallLayout, triggerVideoFeedCount, videoPrimaryTileKey} from "@app/call/video"
|
import {resetVideoCallLayout, triggerVideoFeedCount, videoPrimaryTileKey} from "@app/call/video"
|
||||||
import {deriveLatestEventForUrl, deriveRoom, makeRoomId} from "@app/core/state"
|
import {deriveLatestEventForUrl} from "@app/repository"
|
||||||
|
import {deriveRoom, makeRoomId} from "@app/groups"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
export const LIVEKIT_PARTICIPANTS = 39004
|
export const LIVEKIT_PARTICIPANTS = 39004
|
||||||
|
|||||||
@@ -0,0 +1,139 @@
|
|||||||
|
import {DELETE, PROFILE, getPubkeyTagValues} from "@welshman/util"
|
||||||
|
import type {TrustedEvent} from "@welshman/util"
|
||||||
|
import {append, call, on, reject, remove, sort, sortBy, spec, uniq, uniqBy} from "@welshman/lib"
|
||||||
|
import type {Override} from "@welshman/lib"
|
||||||
|
import {createSearch, displayProfileByPubkey, pubkey, repository} from "@welshman/app"
|
||||||
|
import {derived, readable} from "svelte/store"
|
||||||
|
import {DM_KINDS} from "@app/content"
|
||||||
|
import type {RepositoryUpdate} from "@welshman/net"
|
||||||
|
import {makeDeriveItem, throttled} from "@welshman/store"
|
||||||
|
export type Chat = {
|
||||||
|
id: string
|
||||||
|
pubkeys: string[]
|
||||||
|
messages: TrustedEvent[]
|
||||||
|
last_activity: number
|
||||||
|
search_text: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getChatPubkeys = (pubkeys: string[]) => sort(uniq(append(pubkey.get()!, pubkeys)))
|
||||||
|
|
||||||
|
export const getChatPubkeysFromEvent = (event: TrustedEvent) =>
|
||||||
|
getChatPubkeys(getPubkeyTagValues(event.tags).concat(event.pubkey))
|
||||||
|
|
||||||
|
export const makeChatId = (pubkeys: string[]) => {
|
||||||
|
const userPubkey = pubkey.get()!
|
||||||
|
const otherPubkeys = remove(userPubkey, uniq(pubkeys))
|
||||||
|
const visiblePubkeys = otherPubkeys.length === 0 ? [userPubkey] : otherPubkeys
|
||||||
|
|
||||||
|
return sort(visiblePubkeys).join(",")
|
||||||
|
}
|
||||||
|
|
||||||
|
export const splitChatId = (id: string) => getChatPubkeys(id.split(","))
|
||||||
|
|
||||||
|
export const chatsById = call(() => {
|
||||||
|
const chatsById = new Map<string, Chat>()
|
||||||
|
const chatsByPubkey = new Map<string, string[]>()
|
||||||
|
|
||||||
|
const addSearchText = (chat: Override<Chat, {search_text?: string}>) => {
|
||||||
|
chat.search_text =
|
||||||
|
chat.pubkeys.length === 1
|
||||||
|
? displayProfileByPubkey(chat.pubkeys[0]) + " note to self"
|
||||||
|
: remove(pubkey.get()!, chat.pubkeys).map(displayProfileByPubkey).join(" ")
|
||||||
|
|
||||||
|
return chat as Chat
|
||||||
|
}
|
||||||
|
|
||||||
|
return readable(chatsById, set => {
|
||||||
|
const indexChatByPubkeys = (chat: Chat) => {
|
||||||
|
for (const pubkey of chat.pubkeys) {
|
||||||
|
chatsByPubkey.set(pubkey, uniq(append(chat.id, chatsByPubkey.get(pubkey) || [])))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const addEvents = (events: TrustedEvent[]) => {
|
||||||
|
let dirty = false
|
||||||
|
for (const event of events) {
|
||||||
|
if (DM_KINDS.includes(event.kind)) {
|
||||||
|
const pubkeys = getChatPubkeysFromEvent(event)
|
||||||
|
const id = makeChatId(pubkeys)
|
||||||
|
const chat = chatsById.get(id)
|
||||||
|
const messages = sortBy(
|
||||||
|
e => -e.created_at,
|
||||||
|
uniqBy(e => e.id, append(event, chat?.messages || [])),
|
||||||
|
)
|
||||||
|
const last_activity = Math.max(chat?.last_activity || 0, event.created_at)
|
||||||
|
const updatedChat = addSearchText({id, pubkeys, messages, last_activity})
|
||||||
|
|
||||||
|
chatsById.set(id, updatedChat)
|
||||||
|
indexChatByPubkeys(updatedChat)
|
||||||
|
|
||||||
|
dirty = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.kind === PROFILE) {
|
||||||
|
for (const chatId of chatsByPubkey.get(event.pubkey) || []) {
|
||||||
|
const chat = chatsById.get(chatId)
|
||||||
|
|
||||||
|
if (chat) {
|
||||||
|
addSearchText(chat)
|
||||||
|
dirty = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dirty) {
|
||||||
|
set(chatsById)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const removeEvents = (removed: Set<string>) => {
|
||||||
|
let dirty = false
|
||||||
|
|
||||||
|
for (const id of removed) {
|
||||||
|
const event = repository.getEvent(id)
|
||||||
|
|
||||||
|
if (event && DM_KINDS.includes(event.kind)) {
|
||||||
|
for (const chatId of chatsByPubkey.get(event.pubkey) || []) {
|
||||||
|
const chat = chatsById.get(chatId)
|
||||||
|
|
||||||
|
if (chat) {
|
||||||
|
chat.messages = reject(spec({id: event.id}), chat.messages)
|
||||||
|
dirty = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dirty) {
|
||||||
|
set(chatsById)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addEvents(repository.query([{kinds: [...DM_KINDS, DELETE, PROFILE]}]))
|
||||||
|
|
||||||
|
const unsubscribers = [
|
||||||
|
on(repository, "update", ({added, removed}: RepositoryUpdate) => {
|
||||||
|
// Do this async so that profiles are populated
|
||||||
|
setTimeout(() => {
|
||||||
|
addEvents(added)
|
||||||
|
removeEvents(removed)
|
||||||
|
}, 200)
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
|
||||||
|
return () => unsubscribers.forEach(call)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
export const deriveChat = makeDeriveItem(chatsById)
|
||||||
|
|
||||||
|
export const chatSearch = derived(throttled(1500, chatsById), $chatsByPubkey => {
|
||||||
|
return createSearch(
|
||||||
|
sortBy(c => -c.last_activity, Array.from($chatsByPubkey.values())),
|
||||||
|
{
|
||||||
|
getValue: (chat: Chat) => chat.id,
|
||||||
|
fuseOptions: {keys: ["search_text"]},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
})
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import type {TrustedEvent} from "@welshman/util"
|
||||||
|
import {COMMENT, makeEvent} from "@welshman/util"
|
||||||
|
import {publishThunk, tagEventForComment} from "@welshman/app"
|
||||||
|
|
||||||
|
export type CommentParams = {
|
||||||
|
event: TrustedEvent
|
||||||
|
content: string
|
||||||
|
tags?: string[][]
|
||||||
|
url?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export const makeComment = ({url, event, content, tags = []}: CommentParams) =>
|
||||||
|
makeEvent(COMMENT, {content, tags: [...tags, ...tagEventForComment(event, url)]})
|
||||||
|
|
||||||
|
export const publishComment = ({relays, ...params}: CommentParams & {relays: string[]}) =>
|
||||||
|
publishThunk({event: makeComment({url: relays[0], ...params}), relays})
|
||||||
@@ -12,7 +12,9 @@
|
|||||||
import EventActivity from "@app/components/EventActivity.svelte"
|
import EventActivity from "@app/components/EventActivity.svelte"
|
||||||
import EventActions from "@app/components/EventActions.svelte"
|
import EventActions from "@app/components/EventActions.svelte"
|
||||||
import CalendarEventEdit from "@app/components/CalendarEventEdit.svelte"
|
import CalendarEventEdit from "@app/components/CalendarEventEdit.svelte"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {makeCalendarPath, makeSpacePath} from "@app/routes"
|
import {makeCalendarPath, makeSpacePath} from "@app/routes"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,11 @@
|
|||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import DateTimeInput from "@lib/components/DateTimeInput.svelte"
|
import DateTimeInput from "@lib/components/DateTimeInput.svelte"
|
||||||
import EditorContent from "@app/editor/EditorContent.svelte"
|
import EditorContent from "@app/editor/EditorContent.svelte"
|
||||||
import {PROTECTED} from "@app/core/state"
|
import {PROTECTED, publishRoomQuote} from "@app/groups"
|
||||||
import {makeEditor} from "@app/editor"
|
import {makeEditor} from "@app/editor"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {canEnforceNip70, publishRoomQuote} from "@app/core/commands"
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
|
||||||
type Values = {
|
type Values = {
|
||||||
d: string
|
d: string
|
||||||
|
|||||||
@@ -53,10 +53,12 @@
|
|||||||
import ChatComposeEdit from "@app/components/ChatComposeEdit.svelte"
|
import ChatComposeEdit from "@app/components/ChatComposeEdit.svelte"
|
||||||
import ChatComposeParent from "@app/components/ChatComposeParent.svelte"
|
import ChatComposeParent from "@app/components/ChatComposeParent.svelte"
|
||||||
import ThunkToast from "@app/components/ThunkToast.svelte"
|
import ThunkToast from "@app/components/ThunkToast.svelte"
|
||||||
import {userSettingsValues, deriveChat, makeChatId} from "@app/core/state"
|
import {userSettingsValues} from "@app/settings"
|
||||||
|
import {deriveChat, makeChatId} from "@app/chats"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import {makeDelete, prependParent} from "@app/core/commands"
|
import {makeDelete} from "@app/deletes"
|
||||||
|
import {prependParent} from "@app/groups"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {DEFAULT_RELAYS, DEFAULT_MESSAGING_RELAYS} from "@app/core/state"
|
import {DEFAULT_RELAYS, DEFAULT_MESSAGING_RELAYS} from "@app/env"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import {setChecked} from "@app/notifications"
|
import {setChecked} from "@app/notifications"
|
||||||
import {notificationSettings} from "@app/core/state"
|
import {notificationSettings} from "@app/settings"
|
||||||
|
|
||||||
const markAsRead = () => {
|
const markAsRead = () => {
|
||||||
setChecked("/chat/*")
|
setChecked("/chat/*")
|
||||||
|
|||||||
@@ -16,8 +16,9 @@
|
|||||||
import ProfileDetail from "@app/components/ProfileDetail.svelte"
|
import ProfileDetail from "@app/components/ProfileDetail.svelte"
|
||||||
import ChatMessageMenu from "@app/components/ChatMessageMenu.svelte"
|
import ChatMessageMenu from "@app/components/ChatMessageMenu.svelte"
|
||||||
import ChatMessageMenuMobile from "@app/components/ChatMessageMenuMobile.svelte"
|
import ChatMessageMenuMobile from "@app/components/ChatMessageMenuMobile.svelte"
|
||||||
import {colors} from "@app/core/state"
|
import {colors} from "@app/theme"
|
||||||
import {makeDelete, makeReaction} from "@app/core/commands"
|
import {makeDelete} from "@app/deletes"
|
||||||
|
import {makeReaction} from "@app/reactions"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import SmileCircle from "@assets/icons/smile-circle.svg?dataurl"
|
import SmileCircle from "@assets/icons/smile-circle.svg?dataurl"
|
||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import EmojiButton from "@lib/components/EmojiButton.svelte"
|
import EmojiButton from "@lib/components/EmojiButton.svelte"
|
||||||
import {makeReaction} from "@app/core/commands"
|
import {makeReaction} from "@app/reactions"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
event: TrustedEvent
|
event: TrustedEvent
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import EmojiPicker from "@lib/components/EmojiPicker.svelte"
|
import EmojiPicker from "@lib/components/EmojiPicker.svelte"
|
||||||
import EventInfo from "@app/components/EventInfo.svelte"
|
import EventInfo from "@app/components/EventInfo.svelte"
|
||||||
import {makeReaction} from "@app/core/commands"
|
import {makeReaction} from "@app/reactions"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {clip} from "@app/toast"
|
import {clip} from "@app/toast"
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,9 @@
|
|||||||
import EventActivity from "@app/components/EventActivity.svelte"
|
import EventActivity from "@app/components/EventActivity.svelte"
|
||||||
import EventActions from "@app/components/EventActions.svelte"
|
import EventActions from "@app/components/EventActions.svelte"
|
||||||
import ClassifiedEdit from "@app/components/ClassifiedEdit.svelte"
|
import ClassifiedEdit from "@app/components/ClassifiedEdit.svelte"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {makeClassifiedPath, makeSpacePath} from "@app/routes"
|
import {makeClassifiedPath, makeSpacePath} from "@app/routes"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,11 @@
|
|||||||
import TopicMultiSelect from "@app/components/TopicMultiSelect.svelte"
|
import TopicMultiSelect from "@app/components/TopicMultiSelect.svelte"
|
||||||
import EditorContent from "@app/editor/EditorContent.svelte"
|
import EditorContent from "@app/editor/EditorContent.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {PROTECTED} from "@app/core/state"
|
import {PROTECTED, publishRoomQuote} from "@app/groups"
|
||||||
import {makeEditor} from "@app/editor"
|
import {makeEditor} from "@app/editor"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import {canEnforceNip70, publishRoomQuote, uploadFile} from "@app/core/commands"
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
import {uploadFile} from "@app/uploads"
|
||||||
|
|
||||||
type Values = {
|
type Values = {
|
||||||
d: string
|
d: string
|
||||||
|
|||||||
@@ -4,7 +4,9 @@
|
|||||||
import ThunkStatusOrDeleted from "@app/components/ThunkStatusOrDeleted.svelte"
|
import ThunkStatusOrDeleted from "@app/components/ThunkStatusOrDeleted.svelte"
|
||||||
import EventActivity from "@app/components/EventActivity.svelte"
|
import EventActivity from "@app/components/EventActivity.svelte"
|
||||||
import EventActions from "@app/components/EventActions.svelte"
|
import EventActions from "@app/components/EventActions.svelte"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -35,7 +35,8 @@
|
|||||||
import ContentQuote from "@app/components/ContentQuote.svelte"
|
import ContentQuote from "@app/components/ContentQuote.svelte"
|
||||||
import ContentTopic from "@app/components/ContentTopic.svelte"
|
import ContentTopic from "@app/components/ContentTopic.svelte"
|
||||||
import ContentMention from "@app/components/ContentMention.svelte"
|
import ContentMention from "@app/components/ContentMention.svelte"
|
||||||
import {entityLink, userSettingsValues} from "@app/core/state"
|
import {entityLink} from "@app/env"
|
||||||
|
import {userSettingsValues} from "@app/settings"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
event: any
|
event: any
|
||||||
|
|||||||
@@ -8,14 +8,9 @@
|
|||||||
import ContentLinkUrl from "@app/components/ContentLinkUrl.svelte"
|
import ContentLinkUrl from "@app/components/ContentLinkUrl.svelte"
|
||||||
import ContentLinkBlockImage from "@app/components/ContentLinkBlockImage.svelte"
|
import ContentLinkBlockImage from "@app/components/ContentLinkBlockImage.svelte"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {
|
import {dufflepud, PLATFORM_URL, THUMBNAIL_URL} from "@app/env"
|
||||||
dufflepud,
|
import {IMAGE_CONTENT_TYPES, VIDEO_CONTENT_TYPES} from "@app/content"
|
||||||
IMAGE_CONTENT_TYPES,
|
import {isRoomId} from "@app/groups"
|
||||||
PLATFORM_URL,
|
|
||||||
VIDEO_CONTENT_TYPES,
|
|
||||||
THUMBNAIL_URL,
|
|
||||||
isRoomId,
|
|
||||||
} from "@app/core/state"
|
|
||||||
|
|
||||||
const {value, event} = $props()
|
const {value, event} = $props()
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
import ContentLinkDetail from "@app/components/ContentLinkDetail.svelte"
|
import ContentLinkDetail from "@app/components/ContentLinkDetail.svelte"
|
||||||
import ContentLinkUrl from "@app/components/ContentLinkUrl.svelte"
|
import ContentLinkUrl from "@app/components/ContentLinkUrl.svelte"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {IMAGE_CONTENT_TYPES} from "@app/core/state"
|
import {IMAGE_CONTENT_TYPES} from "@app/content"
|
||||||
|
|
||||||
const {value, event} = $props()
|
const {value, event} = $props()
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
import LinkRound from "@assets/icons/link-round.svg?dataurl"
|
import LinkRound from "@assets/icons/link-round.svg?dataurl"
|
||||||
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 {PLATFORM_URL, displayRoom, isRoomId, splitRoomId} from "@app/core/state"
|
import {PLATFORM_URL} from "@app/env"
|
||||||
|
import {displayRoom, isRoomId, splitRoomId} from "@app/groups"
|
||||||
import {makeRoomPath, makeSpacePath} from "@app/routes"
|
import {makeRoomPath, makeSpacePath} from "@app/routes"
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|||||||
@@ -31,7 +31,8 @@
|
|||||||
import ContentNewline from "@app/components/ContentNewline.svelte"
|
import ContentNewline from "@app/components/ContentNewline.svelte"
|
||||||
import ContentTopic from "@app/components/ContentTopic.svelte"
|
import ContentTopic from "@app/components/ContentTopic.svelte"
|
||||||
import ContentMention from "@app/components/ContentMention.svelte"
|
import ContentMention from "@app/components/ContentMention.svelte"
|
||||||
import {entityLink, userSettingsValues} from "@app/core/state"
|
import {entityLink} from "@app/env"
|
||||||
|
import {userSettingsValues} from "@app/settings"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
event: any
|
event: any
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
import Spinner from "@lib/components/Spinner.svelte"
|
import Spinner from "@lib/components/Spinner.svelte"
|
||||||
import NoteCard from "@app/components/NoteCard.svelte"
|
import NoteCard from "@app/components/NoteCard.svelte"
|
||||||
import NoteContentMinimal from "@app/components/NoteContentMinimal.svelte"
|
import NoteContentMinimal from "@app/components/NoteContentMinimal.svelte"
|
||||||
import {deriveEvent, entityLink} from "@app/core/state"
|
import {deriveEvent} from "@app/repository"
|
||||||
|
import {entityLink} from "@app/env"
|
||||||
import {goToEvent} from "@app/routes"
|
import {goToEvent} from "@app/routes"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -12,8 +12,9 @@
|
|||||||
import ZapButton from "@app/components/ZapButton.svelte"
|
import ZapButton from "@app/components/ZapButton.svelte"
|
||||||
import EmojiButton from "@lib/components/EmojiButton.svelte"
|
import EmojiButton from "@lib/components/EmojiButton.svelte"
|
||||||
import EventMenu from "@app/components/EventMenu.svelte"
|
import EventMenu from "@app/components/EventMenu.svelte"
|
||||||
import {ENABLE_ZAPS} from "@app/core/state"
|
import {ENABLE_ZAPS} from "@app/env"
|
||||||
import {publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type {TrustedEvent} from "@welshman/util"
|
import type {TrustedEvent} from "@welshman/util"
|
||||||
import Confirm from "@lib/components/Confirm.svelte"
|
import Confirm from "@lib/components/Confirm.svelte"
|
||||||
import {publishDelete, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {clearModals} from "@app/modal"
|
import {clearModals} from "@app/modal"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -17,7 +17,8 @@
|
|||||||
import Report from "@app/components/Report.svelte"
|
import Report from "@app/components/Report.svelte"
|
||||||
import EventShare from "@app/components/EventShare.svelte"
|
import EventShare from "@app/components/EventShare.svelte"
|
||||||
import EventDeleteConfirm from "@app/components/EventDeleteConfirm.svelte"
|
import EventDeleteConfirm from "@app/components/EventDeleteConfirm.svelte"
|
||||||
import {hasNip29, deriveUserIsSpaceAdmin} from "@app/core/state"
|
import {hasNip29} from "@app/relays"
|
||||||
|
import {deriveUserIsSpaceAdmin} from "@app/members"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {makeSpaceChatPath} from "@app/routes"
|
import {makeSpaceChatPath} from "@app/routes"
|
||||||
|
|||||||
@@ -7,8 +7,9 @@
|
|||||||
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 EditorContent from "@app/editor/EditorContent.svelte"
|
import EditorContent from "@app/editor/EditorContent.svelte"
|
||||||
import {publishComment, canEnforceNip70} from "@app/core/commands"
|
import {publishComment} from "@app/comments"
|
||||||
import {PROTECTED} from "@app/core/state"
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
import {PROTECTED} from "@app/groups"
|
||||||
import {makeEditor} from "@app/editor"
|
import {makeEditor} from "@app/editor"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import RoomName from "@app/components/RoomName.svelte"
|
import RoomName from "@app/components/RoomName.svelte"
|
||||||
import {roomsByUrl} from "@app/core/state"
|
import {roomsByUrl} from "@app/groups"
|
||||||
import {makeRoomPath} from "@app/routes"
|
import {makeRoomPath} from "@app/routes"
|
||||||
|
|
||||||
const {url, noun, event}: {url: string; noun: string; event: TrustedEvent} = $props()
|
const {url, noun, event}: {url: string; noun: string; event: TrustedEvent} = $props()
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
import EventActivity from "@app/components/EventActivity.svelte"
|
import EventActivity from "@app/components/EventActivity.svelte"
|
||||||
import EventActions from "@app/components/EventActions.svelte"
|
import EventActions from "@app/components/EventActions.svelte"
|
||||||
import RoomName from "@app/components/RoomName.svelte"
|
import RoomName from "@app/components/RoomName.svelte"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {makeGoalPath, makeSpacePath} from "@app/routes"
|
import {makeGoalPath, makeSpacePath} from "@app/routes"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -19,10 +19,10 @@
|
|||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import EditorContent from "@app/editor/EditorContent.svelte"
|
import EditorContent from "@app/editor/EditorContent.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {PROTECTED} from "@app/core/state"
|
import {PROTECTED, publishRoomQuote} from "@app/groups"
|
||||||
import {makeEditor} from "@app/editor"
|
import {makeEditor} from "@app/editor"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import {canEnforceNip70, publishRoomQuote} from "@app/core/commands"
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
|
||||||
type Values = {
|
type Values = {
|
||||||
title: string
|
title: string
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import {PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_NAME} from "@app/env"
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import {PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_NAME} from "@app/env"
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import KeyRecoveryRequest from "@app/components/KeyRecoveryRequest.svelte"
|
import KeyRecoveryRequest from "@app/components/KeyRecoveryRequest.svelte"
|
||||||
import {PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_NAME} from "@app/env"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
const back = () => history.back()
|
const back = () => history.back()
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import {PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_NAME} from "@app/env"
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Modal>
|
<Modal>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
|
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
|
||||||
import GallerySend from "@assets/icons/gallery-send.svg?dataurl"
|
import GallerySend from "@assets/icons/gallery-send.svg?dataurl"
|
||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import {uploadFile} from "@app/core/commands"
|
import {uploadFile} from "@app/uploads"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
file?: File | undefined
|
file?: File | undefined
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import ProgressBar from "@app/components/ProgressBar.svelte"
|
import ProgressBar from "@app/components/ProgressBar.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_NAME} from "@app/env"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
secret: string
|
secret: string
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import CardButton from "@lib/components/CardButton.svelte"
|
import CardButton from "@lib/components/CardButton.svelte"
|
||||||
import LogIn from "@app/components/LogIn.svelte"
|
import LogIn from "@app/components/LogIn.svelte"
|
||||||
import SignUp from "@app/components/SignUp.svelte"
|
import SignUp from "@app/components/SignUp.svelte"
|
||||||
import {PLATFORM_TERMS, PLATFORM_PRIVACY, PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_TERMS, PLATFORM_PRIVACY, PLATFORM_NAME} from "@app/env"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
const logIn = () => pushModal(LogIn)
|
const logIn = () => pushModal(LogIn)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
import LogInEmail from "@app/components/LogInEmail.svelte"
|
import LogInEmail from "@app/components/LogInEmail.svelte"
|
||||||
import LogInKey from "@app/components/LogInKey.svelte"
|
import LogInKey from "@app/components/LogInKey.svelte"
|
||||||
import {pushModal, clearModals} from "@app/modal"
|
import {pushModal, clearModals} from "@app/modal"
|
||||||
import {PLATFORM_NAME, POMADE_SIGNERS} from "@app/core/state"
|
import {PLATFORM_NAME, POMADE_SIGNERS} from "@app/env"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {setChecked} from "@app/notifications"
|
import {setChecked} from "@app/notifications"
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,8 @@
|
|||||||
import {clearModals} from "@app/modal"
|
import {clearModals} from "@app/modal"
|
||||||
import {setChecked} from "@app/notifications"
|
import {setChecked} from "@app/notifications"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {SIGNER_RELAYS, NIP46_PERMS} from "@app/core/state"
|
import {SIGNER_RELAYS} from "@app/env"
|
||||||
|
import {NIP46_PERMS} from "@app/nip46"
|
||||||
|
|
||||||
const back = () => {
|
const back = () => {
|
||||||
if (mode === "connect") {
|
if (mode === "connect") {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {onMount} from "svelte"
|
import {onMount} from "svelte"
|
||||||
import {notificationSettings} from "@app/core/state"
|
import {notificationSettings} from "@app/settings"
|
||||||
import {onNotification} from "@app/push"
|
import {onNotification} from "@app/push"
|
||||||
|
|
||||||
let audioElement: HTMLAudioElement
|
let audioElement: HTMLAudioElement
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import Profile from "@app/components/Profile.svelte"
|
import Profile from "@app/components/Profile.svelte"
|
||||||
import ProfileName from "@app/components/ProfileName.svelte"
|
import ProfileName from "@app/components/ProfileName.svelte"
|
||||||
import {goToEvent} from "@app/routes"
|
import {goToEvent} from "@app/routes"
|
||||||
import {isEventMuted} from "@app/core/state"
|
import {isEventMuted} from "@app/social"
|
||||||
|
|
||||||
const {
|
const {
|
||||||
event,
|
event,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import {derived} from "svelte/store"
|
import {derived} from "svelte/store"
|
||||||
import {POLL_RESPONSE} from "@welshman/util"
|
import {POLL_RESPONSE} from "@welshman/util"
|
||||||
import ContentMinimal from "@app/components/ContentMinimal.svelte"
|
import ContentMinimal from "@app/components/ContentMinimal.svelte"
|
||||||
import {deriveEvents} from "@app/core/state"
|
import {deriveEvents} from "@app/repository"
|
||||||
import {getPollResults} from "@app/polls"
|
import {getPollResults} from "@app/polls"
|
||||||
|
|
||||||
const props: ComponentProps<typeof ContentMinimal> = $props()
|
const props: ComponentProps<typeof ContentMinimal> = $props()
|
||||||
|
|||||||
@@ -9,7 +9,9 @@
|
|||||||
import NoteContent from "@app/components/NoteContent.svelte"
|
import NoteContent from "@app/components/NoteContent.svelte"
|
||||||
import NoteCard from "@app/components/NoteCard.svelte"
|
import NoteCard from "@app/components/NoteCard.svelte"
|
||||||
import ReactionSummary from "@app/components/ReactionSummary.svelte"
|
import ReactionSummary from "@app/components/ReactionSummary.svelte"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
event: TrustedEvent
|
event: TrustedEvent
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {PROTECTED} from "@app/core/state"
|
import {PROTECTED, publishRoomQuote} from "@app/groups"
|
||||||
import {canEnforceNip70, publishRoomQuote} from "@app/core/commands"
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import type {PollType} from "@app/polls"
|
import type {PollType} from "@app/polls"
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
import {POLL_RESPONSE} from "@welshman/util"
|
import {POLL_RESPONSE} from "@welshman/util"
|
||||||
import {pubkey, publishThunk, abortThunk} from "@welshman/app"
|
import {pubkey, publishThunk, abortThunk} from "@welshman/app"
|
||||||
import {formatTimestampRelative} from "@welshman/lib"
|
import {formatTimestampRelative} from "@welshman/lib"
|
||||||
import {deriveEvents} from "@app/core/state"
|
import {deriveEvents} from "@app/repository"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {makePollResponse} from "@app/core/commands"
|
import {makePollResponse} from "@app/polls"
|
||||||
import PollOption from "@app/components/PollOption.svelte"
|
import PollOption from "@app/components/PollOption.svelte"
|
||||||
import {
|
import {
|
||||||
getPollEndsAt,
|
getPollEndsAt,
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
import MenuSettings from "@app/components/MenuSettings.svelte"
|
import MenuSettings from "@app/components/MenuSettings.svelte"
|
||||||
import PrimaryNavItem from "@lib/components/PrimaryNavItem.svelte"
|
import PrimaryNavItem from "@lib/components/PrimaryNavItem.svelte"
|
||||||
import PrimaryNavSpaces from "@app/components/PrimaryNavSpaces.svelte"
|
import PrimaryNavSpaces from "@app/components/PrimaryNavSpaces.svelte"
|
||||||
import {userSpaceUrls, PLATFORM_RELAYS} from "@app/core/state"
|
import {userSpaceUrls} from "@app/groups"
|
||||||
|
import {PLATFORM_RELAYS} from "@app/env"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {notifications} from "@app/notifications"
|
import {notifications} from "@app/notifications"
|
||||||
import {goToChat, makeSpacePath} from "@app/routes"
|
import {goToChat, makeSpacePath} from "@app/routes"
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
import Divider from "@lib/components/Divider.svelte"
|
import Divider from "@lib/components/Divider.svelte"
|
||||||
import PrimaryNavItem from "@lib/components/PrimaryNavItem.svelte"
|
import PrimaryNavItem from "@lib/components/PrimaryNavItem.svelte"
|
||||||
import PrimaryNavItemSpace from "@app/components/PrimaryNavItemSpace.svelte"
|
import PrimaryNavItemSpace from "@app/components/PrimaryNavItemSpace.svelte"
|
||||||
import {userSpaceUrls, PLATFORM_RELAYS, PLATFORM_LOGO} from "@app/core/state"
|
import {userSpaceUrls} from "@app/groups"
|
||||||
|
import {PLATFORM_RELAYS, PLATFORM_LOGO} from "@app/env"
|
||||||
import {notifications} from "@app/notifications"
|
import {notifications} from "@app/notifications"
|
||||||
|
|
||||||
let windowHeight = $state(0)
|
let windowHeight = $state(0)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import {repository, loadRelayList} from "@welshman/app"
|
import {repository, loadRelayList} from "@welshman/app"
|
||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import ProfileSpaces from "@app/components/ProfileSpaces.svelte"
|
import ProfileSpaces from "@app/components/ProfileSpaces.svelte"
|
||||||
import {deriveGroupList, getSpaceUrlsFromGroupList} from "@app/core/state"
|
import {deriveGroupList, getSpaceUrlsFromGroupList} from "@app/groups"
|
||||||
import {goToEvent} from "@app/routes"
|
import {goToEvent} from "@app/routes"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,8 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import {INDEXER_RELAYS, PLATFORM_NAME, userSpaceUrls} from "@app/core/state"
|
import {INDEXER_RELAYS, PLATFORM_NAME} from "@app/env"
|
||||||
|
import {userSpaceUrls} from "@app/groups"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {logout} from "@app/session"
|
import {logout} from "@app/session"
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
import ProfileInfo from "@app/components/ProfileInfo.svelte"
|
import ProfileInfo from "@app/components/ProfileInfo.svelte"
|
||||||
import EventInfo from "@app/components/EventInfo.svelte"
|
import EventInfo from "@app/components/EventInfo.svelte"
|
||||||
import ProfileBadges from "@app/components/ProfileBadges.svelte"
|
import ProfileBadges from "@app/components/ProfileBadges.svelte"
|
||||||
import {pubkeyLink, deriveUserIsSpaceAdmin, deriveSpaceBannedPubkeyItems} from "@app/core/state"
|
import {pubkeyLink} from "@app/env"
|
||||||
import {addSpaceMembers} from "@app/core/commands"
|
import {deriveUserIsSpaceAdmin, deriveSpaceBannedPubkeyItems, addSpaceMembers} from "@app/members"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {goToChat} from "@app/routes"
|
import {goToChat} from "@app/routes"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
import ProfileEditForm from "@app/components/ProfileEditForm.svelte"
|
import ProfileEditForm from "@app/components/ProfileEditForm.svelte"
|
||||||
import {clearModals} from "@app/modal"
|
import {clearModals} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {updateProfile} from "@app/core/commands"
|
import {updateProfile} from "@app/profiles"
|
||||||
|
|
||||||
const profile = $profilesByPubkey.get($pubkey!) || makeProfile()
|
const profile = $profilesByPubkey.get($pubkey!) || makeProfile()
|
||||||
const initialValues = {profile}
|
const initialValues = {profile}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
import RelayIcon from "@app/components/RelayIcon.svelte"
|
import RelayIcon from "@app/components/RelayIcon.svelte"
|
||||||
import RelayName from "@app/components/RelayName.svelte"
|
import RelayName from "@app/components/RelayName.svelte"
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
import {deriveGroupList, getSpaceUrlsFromGroupList} from "@app/core/state"
|
import {deriveGroupList, getSpaceUrlsFromGroupList} from "@app/groups"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
pubkey: string
|
pubkey: string
|
||||||
|
|||||||
@@ -23,7 +23,8 @@
|
|||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import Reaction from "@app/components/Reaction.svelte"
|
import Reaction from "@app/components/Reaction.svelte"
|
||||||
import ReportDetails from "@app/components/ReportDetails.svelte"
|
import ReportDetails from "@app/components/ReportDetails.svelte"
|
||||||
import {REACTION_KINDS, deriveUserIsSpaceAdmin} from "@app/core/state"
|
import {REACTION_KINDS} from "@app/content"
|
||||||
|
import {deriveUserIsSpaceAdmin} from "@app/members"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
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 RelaySettingsHealthCheck from "@app/components/RelaySettingsHealthCheck.svelte"
|
import RelaySettingsHealthCheck from "@app/components/RelaySettingsHealthCheck.svelte"
|
||||||
import {PLATFORM_NAME} from "@app/core/state"
|
import {PLATFORM_NAME} from "@app/env"
|
||||||
import {pendingHealthChecks, applyHealthCheck} from "@app/healthChecks"
|
import {pendingHealthChecks, applyHealthCheck} from "@app/healthChecks"
|
||||||
|
|
||||||
const applyAll = () => {
|
const applyAll = () => {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import RelayIcon from "@app/components/RelayIcon.svelte"
|
import RelayIcon from "@app/components/RelayIcon.svelte"
|
||||||
import RelayDescription from "@app/components/RelayDescription.svelte"
|
import RelayDescription from "@app/components/RelayDescription.svelte"
|
||||||
import ProfileCircles from "@app/components/ProfileCircles.svelte"
|
import ProfileCircles from "@app/components/ProfileCircles.svelte"
|
||||||
import {deriveGroupListPubkeys, deriveUserRooms} from "@app/core/state"
|
import {deriveGroupListPubkeys, deriveUserRooms} from "@app/groups"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {publishReport} from "@app/core/commands"
|
import {publishReport} from "@app/reports"
|
||||||
|
|
||||||
const {url, event} = $props()
|
const {url, event} = $props()
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,9 @@
|
|||||||
import Popover from "@lib/components/Popover.svelte"
|
import Popover from "@lib/components/Popover.svelte"
|
||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import Confirm from "@lib/components/Confirm.svelte"
|
import Confirm from "@lib/components/Confirm.svelte"
|
||||||
import {deriveUserIsSpaceAdmin} from "@app/core/state"
|
import {deriveUserIsSpaceAdmin} from "@app/members"
|
||||||
import {publishDelete, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
import Microphone from "@assets/icons/microphone.svg?dataurl"
|
import Microphone from "@assets/icons/microphone.svg?dataurl"
|
||||||
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 {deriveRoom} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
h: any
|
h: any
|
||||||
|
|||||||
@@ -31,20 +31,14 @@
|
|||||||
import RoomEdit from "@app/components/RoomEdit.svelte"
|
import RoomEdit from "@app/components/RoomEdit.svelte"
|
||||||
import RoomName from "@app/components/RoomName.svelte"
|
import RoomName from "@app/components/RoomName.svelte"
|
||||||
import RoomImage from "@app/components/RoomImage.svelte"
|
import RoomImage from "@app/components/RoomImage.svelte"
|
||||||
|
import {deriveRoom, deriveUserRooms, addRoom, removeRoom} from "@app/groups"
|
||||||
import {
|
import {
|
||||||
deriveRoom,
|
|
||||||
deriveRoomMembers,
|
deriveRoomMembers,
|
||||||
deriveUserIsRoomAdmin,
|
deriveUserIsRoomAdmin,
|
||||||
deriveUserRoomMembershipStatus,
|
deriveUserRoomMembershipStatus,
|
||||||
deriveUserRooms,
|
|
||||||
deriveShouldNotify,
|
|
||||||
MembershipStatus,
|
MembershipStatus,
|
||||||
} from "@app/core/state"
|
} from "@app/members"
|
||||||
import {
|
import {deriveShouldNotify, toggleRoomNotifications} from "@app/settings"
|
||||||
addRoomMembership,
|
|
||||||
removeRoomMembership,
|
|
||||||
toggleRoomNotifications,
|
|
||||||
} from "@app/core/commands"
|
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
@@ -99,9 +93,9 @@
|
|||||||
|
|
||||||
const toggleFavorite = () => {
|
const toggleFavorite = () => {
|
||||||
if (isFavorite) {
|
if (isFavorite) {
|
||||||
removeRoomMembership(url, h)
|
removeRoom(url, h)
|
||||||
} else {
|
} else {
|
||||||
addRoomMembership(url, h)
|
addRoom(url, h)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +116,7 @@
|
|||||||
repository.removeEvent(thunk.event.id)
|
repository.removeEvent(thunk.event.id)
|
||||||
pushToast({theme: "error", message})
|
pushToast({theme: "error", message})
|
||||||
} else {
|
} else {
|
||||||
await removeRoomMembership(url, h)
|
await removeRoom(url, h)
|
||||||
goto(makeSpacePath(url))
|
goto(makeSpacePath(url))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import RoomForm from "@app/components/RoomForm.svelte"
|
import RoomForm from "@app/components/RoomForm.svelte"
|
||||||
import {deriveRoom} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -15,8 +15,9 @@
|
|||||||
import Modal from "@lib/components/Modal.svelte"
|
import Modal from "@lib/components/Modal.svelte"
|
||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {uploadFile} from "@app/core/commands"
|
import {uploadFile} from "@app/uploads"
|
||||||
import {deriveHasLivekit, getRoomType, RoomType} from "@app/core/state"
|
import {deriveHasLivekit} from "@app/relays"
|
||||||
|
import {getRoomType, RoomType} from "@app/groups"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import Volume from "@assets/icons/volume.svg?dataurl"
|
import Volume from "@assets/icons/volume.svg?dataurl"
|
||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import ImageIcon from "@lib/components/ImageIcon.svelte"
|
import ImageIcon from "@lib/components/ImageIcon.svelte"
|
||||||
import {deriveRoom} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
h: string
|
h: string
|
||||||
|
|||||||
@@ -35,8 +35,12 @@
|
|||||||
import RoomItemMenuButton from "@app/components/RoomItemMenuButton.svelte"
|
import RoomItemMenuButton from "@app/components/RoomItemMenuButton.svelte"
|
||||||
import RoomItemMenuMobile from "@app/components/RoomItemMenuMobile.svelte"
|
import RoomItemMenuMobile from "@app/components/RoomItemMenuMobile.svelte"
|
||||||
import RoomItemContent from "@app/components/RoomItemContent.svelte"
|
import RoomItemContent from "@app/components/RoomItemContent.svelte"
|
||||||
import {colors, ENABLE_ZAPS, deriveEventsForUrl, deriveEvent} from "@app/core/state"
|
import {colors} from "@app/theme"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {ENABLE_ZAPS} from "@app/env"
|
||||||
|
import {deriveEventsForUrl, deriveEvent} from "@app/repository"
|
||||||
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {getRoomItemPath} from "@app/routes"
|
import {getRoomItemPath} from "@app/routes"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
import EmojiButton from "@lib/components/EmojiButton.svelte"
|
import EmojiButton from "@lib/components/EmojiButton.svelte"
|
||||||
import SmileCircle from "@assets/icons/smile-circle.svg?dataurl"
|
import SmileCircle from "@assets/icons/smile-circle.svg?dataurl"
|
||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import {publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
|
||||||
const {url, event} = $props()
|
const {url, event} = $props()
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
import EventDeleteConfirm from "@app/components/EventDeleteConfirm.svelte"
|
import EventDeleteConfirm from "@app/components/EventDeleteConfirm.svelte"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {deriveUserIsSpaceAdmin} from "@app/core/state"
|
import {deriveUserIsSpaceAdmin} from "@app/members"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -17,8 +17,9 @@
|
|||||||
import ZapButton from "@app/components/ZapButton.svelte"
|
import ZapButton from "@app/components/ZapButton.svelte"
|
||||||
import EventInfo from "@app/components/EventInfo.svelte"
|
import EventInfo from "@app/components/EventInfo.svelte"
|
||||||
import EventDeleteConfirm from "@app/components/EventDeleteConfirm.svelte"
|
import EventDeleteConfirm from "@app/components/EventDeleteConfirm.svelte"
|
||||||
import {ENABLE_ZAPS} from "@app/core/state"
|
import {ENABLE_ZAPS} from "@app/env"
|
||||||
import {publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {getRoomItemPath} from "@app/routes"
|
import {getRoomItemPath} from "@app/routes"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
import RoomName from "@app/components/RoomName.svelte"
|
import RoomName from "@app/components/RoomName.svelte"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {deriveRoom} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
import {addRoomMembers} from "@app/core/commands"
|
import {addRoomMembers} from "@app/members"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -18,7 +18,8 @@
|
|||||||
import Profile from "@app/components/Profile.svelte"
|
import Profile from "@app/components/Profile.svelte"
|
||||||
import RoomName from "@app/components/RoomName.svelte"
|
import RoomName from "@app/components/RoomName.svelte"
|
||||||
import RoomMembersAdd from "@app/components/RoomMembersAdd.svelte"
|
import RoomMembersAdd from "@app/components/RoomMembersAdd.svelte"
|
||||||
import {deriveRoom, deriveRoomMembers, deriveUserIsRoomAdmin} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
|
import {deriveRoomMembers, deriveUserIsRoomAdmin} from "@app/members"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte"
|
import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {deriveRoom, deriveSpaceMembers} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
import {addRoomMembers} from "@app/core/commands"
|
import {deriveSpaceMembers, addRoomMembers} from "@app/members"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {deriveRoom} from "@app/core/state"
|
import {deriveRoom} from "@app/groups"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -15,14 +15,14 @@
|
|||||||
import SignUpEmail from "@app/components/SignUpEmail.svelte"
|
import SignUpEmail from "@app/components/SignUpEmail.svelte"
|
||||||
import SignUpProfile from "@app/components/SignUpProfile.svelte"
|
import SignUpProfile from "@app/components/SignUpProfile.svelte"
|
||||||
import SignUpComplete from "@app/components/SignUpComplete.svelte"
|
import SignUpComplete from "@app/components/SignUpComplete.svelte"
|
||||||
import {initProfile} from "@app/core/commands"
|
import {initProfile} from "@app/profiles"
|
||||||
import {
|
import {
|
||||||
POMADE_SIGNERS,
|
POMADE_SIGNERS,
|
||||||
PLATFORM_NAME,
|
PLATFORM_NAME,
|
||||||
INDEXER_RELAYS,
|
INDEXER_RELAYS,
|
||||||
DEFAULT_RELAYS,
|
DEFAULT_RELAYS,
|
||||||
DEFAULT_MESSAGING_RELAYS,
|
DEFAULT_MESSAGING_RELAYS,
|
||||||
} from "@app/core/state"
|
} from "@app/env"
|
||||||
import {setChecked} from "@app/notifications"
|
import {setChecked} from "@app/notifications"
|
||||||
import {loginWithPomade} from "@app/pomade"
|
import {loginWithPomade} from "@app/pomade"
|
||||||
import {pushModal, clearModals} from "@app/modal"
|
import {pushModal, clearModals} from "@app/modal"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import StatusIndicator from "@lib/components/StatusIndicator.svelte"
|
import StatusIndicator from "@lib/components/StatusIndicator.svelte"
|
||||||
import {deriveSocketStatus} from "@app/core/state"
|
import {deriveSocketStatus} from "@app/relays"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.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"
|
||||||
import {attemptRelayAccess} from "@app/core/commands"
|
import {attemptRelayAccess} from "@app/relays"
|
||||||
import {parseInviteLink} from "@app/core/state"
|
import {parseInviteLink} from "@app/invites"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import RoomJoinItem from "@app/components/RoomJoinItem.svelte"
|
import RoomJoinItem from "@app/components/RoomJoinItem.svelte"
|
||||||
import RelayName from "@app/components/RelayName.svelte"
|
import RelayName from "@app/components/RelayName.svelte"
|
||||||
import {REPORT} from "@welshman/util"
|
import {REPORT} from "@welshman/util"
|
||||||
import {deriveSpaceActionItems} from "@app/core/state"
|
import {deriveSpaceActionItems} from "@app/actionItems"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -16,7 +16,9 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import SpaceAccessRequest from "@app/components/SpaceAccessRequest.svelte"
|
import SpaceAccessRequest from "@app/components/SpaceAccessRequest.svelte"
|
||||||
import {pushModal, clearModals} from "@app/modal"
|
import {pushModal, clearModals} from "@app/modal"
|
||||||
import {removeSpaceMembership, publishLeaveRequest, removeTrustedRelay} from "@app/core/commands"
|
import {removeSpace} from "@app/groups"
|
||||||
|
import {publishLeaveRequest} from "@app/relays"
|
||||||
|
import {removeTrustedRelay} from "@app/settings"
|
||||||
|
|
||||||
const {url, error} = $props()
|
const {url, error} = $props()
|
||||||
|
|
||||||
@@ -28,7 +30,7 @@
|
|||||||
loading = true
|
loading = true
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await removeSpaceMembership(url)
|
await removeSpace(url)
|
||||||
await publishLeaveRequest({url})
|
await publishLeaveRequest({url})
|
||||||
await removeTrustedRelay(url)
|
await removeTrustedRelay(url)
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import PageBar from "@lib/components/PageBar.svelte"
|
import PageBar from "@lib/components/PageBar.svelte"
|
||||||
import RelayIcon from "@app/components/RelayIcon.svelte"
|
import RelayIcon from "@app/components/RelayIcon.svelte"
|
||||||
import {decodeRelay} from "@app/core/state"
|
import {decodeRelay} from "@app/relays"
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
import SpaceRelayStatus from "@app/components/SpaceRelayStatus.svelte"
|
import SpaceRelayStatus from "@app/components/SpaceRelayStatus.svelte"
|
||||||
import RelayDescription from "@app/components/RelayDescription.svelte"
|
import RelayDescription from "@app/components/RelayDescription.svelte"
|
||||||
import ProfileLatest from "@app/components/ProfileLatest.svelte"
|
import ProfileLatest from "@app/components/ProfileLatest.svelte"
|
||||||
import {deriveUserIsSpaceAdmin} from "@app/core/state"
|
import {deriveUserIsSpaceAdmin} from "@app/members"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
import IconPickerButton from "@lib/components/IconPickerButton.svelte"
|
import IconPickerButton from "@lib/components/IconPickerButton.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {clearModals} from "@app/modal"
|
import {clearModals} from "@app/modal"
|
||||||
import {uploadFile} from "@app/core/commands"
|
import {uploadFile} from "@app/uploads"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {removeSpaceMembership, publishLeaveRequest, removeTrustedRelay} from "@app/core/commands"
|
import {removeSpace} from "@app/groups"
|
||||||
|
import {publishLeaveRequest} from "@app/relays"
|
||||||
|
import {removeTrustedRelay} from "@app/settings"
|
||||||
|
|
||||||
const {url} = $props()
|
const {url} = $props()
|
||||||
|
|
||||||
@@ -21,7 +23,7 @@
|
|||||||
loading = true
|
loading = true
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await removeSpaceMembership(url)
|
await removeSpace(url)
|
||||||
await publishLeaveRequest({url})
|
await publishLeaveRequest({url})
|
||||||
await removeTrustedRelay(url)
|
await removeTrustedRelay(url)
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import QRCode from "@app/components/QRCode.svelte"
|
import QRCode from "@app/components/QRCode.svelte"
|
||||||
import {clip} from "@app/toast"
|
import {clip} from "@app/toast"
|
||||||
import {PLATFORM_URL} from "@app/core/state"
|
import {PLATFORM_URL} from "@app/env"
|
||||||
import {deriveRelayAuthError} from "@app/core/commands"
|
import {deriveRelayAuthError} from "@app/relays"
|
||||||
|
|
||||||
const {url} = $props()
|
const {url} = $props()
|
||||||
|
|
||||||
|
|||||||
@@ -23,14 +23,13 @@
|
|||||||
import SpaceJoinSettings from "@app/components/SpaceJoinSettings.svelte"
|
import SpaceJoinSettings from "@app/components/SpaceJoinSettings.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
import {relaysMostlyRestricted, notificationSettings, parseInviteLink} from "@app/core/state"
|
import {relaysMostlyRestricted} from "@app/policies"
|
||||||
|
import {notificationSettings, setSpaceNotifications} from "@app/settings"
|
||||||
|
import {parseInviteLink} from "@app/invites"
|
||||||
import {Push} from "@app/push"
|
import {Push} from "@app/push"
|
||||||
import {
|
import {attemptRelayAccess} from "@app/relays"
|
||||||
attemptRelayAccess,
|
import {addSpace} from "@app/groups"
|
||||||
addSpaceMembership,
|
import {broadcastUserData} from "@app/profiles"
|
||||||
broadcastUserData,
|
|
||||||
setSpaceNotifications,
|
|
||||||
} from "@app/core/commands"
|
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
invite: string
|
invite: string
|
||||||
@@ -68,7 +67,7 @@
|
|||||||
await setSpaceNotifications(url, false)
|
await setSpaceNotifications(url, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
await addSpaceMembership(url)
|
await addSpace(url)
|
||||||
await goto(makeSpacePath(url), {replaceState: true})
|
await goto(makeSpacePath(url), {replaceState: true})
|
||||||
|
|
||||||
broadcastUserData([url])
|
broadcastUserData([url])
|
||||||
|
|||||||
@@ -14,13 +14,12 @@
|
|||||||
import RelaySummary from "@app/components/RelaySummary.svelte"
|
import RelaySummary from "@app/components/RelaySummary.svelte"
|
||||||
import SpaceAccessRequest from "@app/components/SpaceAccessRequest.svelte"
|
import SpaceAccessRequest from "@app/components/SpaceAccessRequest.svelte"
|
||||||
import SpaceJoinSettings from "@app/components/SpaceJoinSettings.svelte"
|
import SpaceJoinSettings from "@app/components/SpaceJoinSettings.svelte"
|
||||||
import {
|
import {attemptRelayAccess} from "@app/relays"
|
||||||
attemptRelayAccess,
|
import {addSpace} from "@app/groups"
|
||||||
addSpaceMembership,
|
import {broadcastUserData} from "@app/profiles"
|
||||||
broadcastUserData,
|
import {setSpaceNotifications} from "@app/settings"
|
||||||
setSpaceNotifications,
|
import {relaysMostlyRestricted} from "@app/policies"
|
||||||
} from "@app/core/commands"
|
import {notificationSettings} from "@app/settings"
|
||||||
import {relaysMostlyRestricted, notificationSettings} from "@app/core/state"
|
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
@@ -56,7 +55,7 @@
|
|||||||
await setSpaceNotifications(url, false)
|
await setSpaceNotifications(url, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
await addSpaceMembership(url)
|
await addSpace(url)
|
||||||
await goto(makeSpacePath(url), {replaceState: true})
|
await goto(makeSpacePath(url), {replaceState: true})
|
||||||
|
|
||||||
broadcastUserData([url])
|
broadcastUserData([url])
|
||||||
|
|||||||
@@ -25,8 +25,8 @@
|
|||||||
deriveSpaceMembers,
|
deriveSpaceMembers,
|
||||||
deriveSpaceBannedPubkeyItems,
|
deriveSpaceBannedPubkeyItems,
|
||||||
deriveUserIsSpaceAdmin,
|
deriveUserIsSpaceAdmin,
|
||||||
deriveSupportedMethods,
|
} from "@app/members"
|
||||||
} from "@app/core/state"
|
import {deriveSupportedMethods} from "@app/relays"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte"
|
import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte"
|
||||||
import {addSpaceMembers} from "@app/core/commands"
|
import {addSpaceMembers} from "@app/members"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import Profile from "@app/components/Profile.svelte"
|
import Profile from "@app/components/Profile.svelte"
|
||||||
import {deriveSpaceBannedPubkeyItems, deriveSupportedMethods} from "@app/core/state"
|
import {deriveSpaceBannedPubkeyItems, addSpaceMembers} from "@app/members"
|
||||||
import {addSpaceMembers} from "@app/core/commands"
|
import {deriveSupportedMethods} from "@app/relays"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -40,24 +40,20 @@
|
|||||||
import SpaceMenuRoomItem from "@app/components/SpaceMenuRoomItem.svelte"
|
import SpaceMenuRoomItem from "@app/components/SpaceMenuRoomItem.svelte"
|
||||||
import VoiceWidget from "@app/components/VoiceWidget.svelte"
|
import VoiceWidget from "@app/components/VoiceWidget.svelte"
|
||||||
import SocketStatusIndicator from "@app/components/SocketStatusIndicator.svelte"
|
import SocketStatusIndicator from "@app/components/SocketStatusIndicator.svelte"
|
||||||
|
import {ENABLE_ZAPS} from "@app/env"
|
||||||
|
import {CONTENT_KINDS} from "@app/content"
|
||||||
|
import {deriveSpaceMembers, deriveUserCanCreateRoom, deriveUserIsSpaceAdmin} from "@app/members"
|
||||||
import {
|
import {
|
||||||
ENABLE_ZAPS,
|
|
||||||
CONTENT_KINDS,
|
|
||||||
deriveSpaceMembers,
|
|
||||||
deriveUserRooms,
|
deriveUserRooms,
|
||||||
deriveOtherRooms,
|
deriveOtherRooms,
|
||||||
deriveOtherVoiceRooms,
|
deriveOtherVoiceRooms,
|
||||||
userSpaceUrls,
|
userSpaceUrls,
|
||||||
hasNip29,
|
|
||||||
deriveUserCanCreateRoom,
|
|
||||||
deriveUserIsSpaceAdmin,
|
|
||||||
deriveEventsForUrl,
|
|
||||||
deriveSpaceActionItems,
|
|
||||||
notificationSettings,
|
|
||||||
deriveShouldNotify,
|
|
||||||
displayRoom,
|
displayRoom,
|
||||||
} from "@app/core/state"
|
} from "@app/groups"
|
||||||
import {setSpaceNotifications} from "@app/core/commands"
|
import {hasNip29} from "@app/relays"
|
||||||
|
import {deriveEventsForUrl} from "@app/repository"
|
||||||
|
import {deriveSpaceActionItems} from "@app/actionItems"
|
||||||
|
import {notificationSettings, deriveShouldNotify, setSpaceNotifications} from "@app/settings"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {makeSpacePath, goToChat} from "@app/routes"
|
import {makeSpacePath, goToChat} from "@app/routes"
|
||||||
import {notifications} from "@app/notifications"
|
import {notifications} from "@app/notifications"
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
import SecondaryNavItem from "@lib/components/SecondaryNavItem.svelte"
|
import SecondaryNavItem from "@lib/components/SecondaryNavItem.svelte"
|
||||||
import RoomNameWithImage from "@app/components/RoomNameWithImage.svelte"
|
import RoomNameWithImage from "@app/components/RoomNameWithImage.svelte"
|
||||||
import VoiceRoomItem from "@app/components/VoiceRoomItem.svelte"
|
import VoiceRoomItem from "@app/components/VoiceRoomItem.svelte"
|
||||||
import {deriveRoom, deriveShouldNotify, getRoomType, RoomType} from "@app/core/state"
|
import {deriveRoom, getRoomType, RoomType} from "@app/groups"
|
||||||
|
import {deriveShouldNotify} from "@app/settings"
|
||||||
import {notifications} from "@app/notifications"
|
import {notifications} from "@app/notifications"
|
||||||
import {makeRoomPath} from "@app/routes"
|
import {makeRoomPath} from "@app/routes"
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import ReportItem from "@app/components/ReportItem.svelte"
|
import ReportItem from "@app/components/ReportItem.svelte"
|
||||||
import RelayName from "@app/components/RelayName.svelte"
|
import RelayName from "@app/components/RelayName.svelte"
|
||||||
import {deriveEventsForUrl} from "@app/core/state"
|
import {deriveEventsForUrl} from "@app/repository"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
url: string
|
url: string
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
import {fly} from "@lib/transition"
|
import {fly} from "@lib/transition"
|
||||||
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"
|
||||||
import {CONTENT_KINDS} from "@app/core/state"
|
import {CONTENT_KINDS} from "@app/content"
|
||||||
import {goToEvent} from "@app/routes"
|
import {goToEvent} from "@app/routes"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -15,8 +15,9 @@
|
|||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import InfoSignatures from "@app/components/InfoSignatures.svelte"
|
import InfoSignatures from "@app/components/InfoSignatures.svelte"
|
||||||
import {relaysPendingTrust} from "@app/core/state"
|
import {relaysPendingTrust} from "@app/policies"
|
||||||
import {removeSpaceMembership, addTrustedRelay, removeTrustedRelay} from "@app/core/commands"
|
import {removeSpace} from "@app/groups"
|
||||||
|
import {addTrustedRelay, removeTrustedRelay} from "@app/settings"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
@@ -31,7 +32,7 @@
|
|||||||
loading = true
|
loading = true
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await removeSpaceMembership(url)
|
await removeSpace(url)
|
||||||
await removeTrustedRelay(url)
|
await removeTrustedRelay(url)
|
||||||
goto("/home")
|
goto("/home")
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
import ThunkStatusOrDeleted from "@app/components/ThunkStatusOrDeleted.svelte"
|
import ThunkStatusOrDeleted from "@app/components/ThunkStatusOrDeleted.svelte"
|
||||||
import EventActivity from "@app/components/EventActivity.svelte"
|
import EventActivity from "@app/components/EventActivity.svelte"
|
||||||
import EventActions from "@app/components/EventActions.svelte"
|
import EventActions from "@app/components/EventActions.svelte"
|
||||||
import {publishDelete, publishReaction, canEnforceNip70} from "@app/core/commands"
|
import {publishDelete} from "@app/deletes"
|
||||||
|
import {publishReaction} from "@app/reactions"
|
||||||
|
import {canEnforceNip70} from "@app/relays"
|
||||||
import {makeThreadPath, makeSpacePath} from "@app/routes"
|
import {makeThreadPath, makeSpacePath} from "@app/routes"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import EditorContent from "@app/editor/EditorContent.svelte"
|
import EditorContent from "@app/editor/EditorContent.svelte"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {PROTECTED} from "@app/core/state"
|
import {PROTECTED, publishRoomQuote} from "@app/groups"
|
||||||
import {makeEditor} from "@app/editor"
|
import {makeEditor} from "@app/editor"
|
||||||
import {DraftKey} from "@app/drafts"
|
import {DraftKey} from "@app/drafts"
|
||||||
import {canEnforceNip70, publishRoomQuote} from "@app/core/commands"
|
import {canEnforceNip70} from "@app/relays"
|
||||||
|
|
||||||
type Values = {
|
type Values = {
|
||||||
content?: string | object
|
content?: string | object
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import VoiceRoomJoinDialog from "@app/components/VoiceRoomJoinDialog.svelte"
|
import VoiceRoomJoinDialog from "@app/components/VoiceRoomJoinDialog.svelte"
|
||||||
import VoiceParticipantMediaBadges from "@app/components/VoiceParticipantMediaBadges.svelte"
|
import VoiceParticipantMediaBadges from "@app/components/VoiceParticipantMediaBadges.svelte"
|
||||||
import {makeRoomId} from "@app/core/state"
|
import {makeRoomId} from "@app/groups"
|
||||||
import {
|
import {
|
||||||
VoiceState,
|
VoiceState,
|
||||||
currentVoiceRoom,
|
currentVoiceRoom,
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import {AbortError, TimeoutError} from "$lib/util"
|
import {AbortError, TimeoutError} from "$lib/util"
|
||||||
import ProfileCircles from "@app/components/ProfileCircles.svelte"
|
import ProfileCircles from "@app/components/ProfileCircles.svelte"
|
||||||
import {displayRoom} from "@app/core/state"
|
import {displayRoom} from "@app/groups"
|
||||||
import {deriveVoiceParticipants, joinVoiceRoom, loadVoiceParticipants} from "@app/call/voice"
|
import {deriveVoiceParticipants, joinVoiceRoom, loadVoiceParticipants} from "@app/call/voice"
|
||||||
import {popModal} from "@app/modal"
|
import {popModal} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|||||||
@@ -19,14 +19,9 @@
|
|||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import VoiceCallAudioSettingsDialog from "@app/components/VoiceCallAudioSettingsDialog.svelte"
|
import VoiceCallAudioSettingsDialog from "@app/components/VoiceCallAudioSettingsDialog.svelte"
|
||||||
import VoiceRoomJoinDialog from "@app/components/VoiceRoomJoinDialog.svelte"
|
import VoiceRoomJoinDialog from "@app/components/VoiceRoomJoinDialog.svelte"
|
||||||
import {
|
import {decodeRelay} from "@app/relays"
|
||||||
decodeRelay,
|
import {deriveRoom, displayRoom, getRoomType, RoomType} from "@app/groups"
|
||||||
deriveRoom,
|
import type {Room} from "@app/groups"
|
||||||
displayRoom,
|
|
||||||
getRoomType,
|
|
||||||
RoomType,
|
|
||||||
type Room,
|
|
||||||
} from "@app/core/state"
|
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import {notifications} from "@app/notifications"
|
import {notifications} from "@app/notifications"
|
||||||
import {makeRoomPath} from "@app/routes"
|
import {makeRoomPath} from "@app/routes"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {updateProfile} from "@app/core/commands"
|
import {updateProfile} from "@app/profiles"
|
||||||
import {clearModals} from "@app/modal"
|
import {clearModals} from "@app/modal"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
import ModalTitle from "@lib/components/ModalTitle.svelte"
|
||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {getWebLn} from "@app/core/commands"
|
import {getWebLn} from "@app/lightning"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {pushModal} from "@app/modal"
|
import {pushModal} from "@app/modal"
|
||||||
import WalletAsReceivingAddress from "@app/components/WalletAsReceivingAddress.svelte"
|
import WalletAsReceivingAddress from "@app/components/WalletAsReceivingAddress.svelte"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
import ModalSubtitle from "@lib/components/ModalSubtitle.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {errorMessage} from "@lib/util"
|
import {errorMessage} from "@lib/util"
|
||||||
import {payInvoice} from "@app/core/commands"
|
import {payInvoice} from "@app/lightning"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
import {clearModals} from "@app/modal"
|
import {clearModals} from "@app/modal"
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {errorMessage} from "@lib/util"
|
import {errorMessage} from "@lib/util"
|
||||||
import QRCode from "@app/components/QRCode.svelte"
|
import QRCode from "@app/components/QRCode.svelte"
|
||||||
import {createInvoice} from "@app/core/commands"
|
import {createInvoice} from "@app/lightning"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
const back = () => history.back()
|
const back = () => history.back()
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import ModalBody from "@lib/components/ModalBody.svelte"
|
import ModalBody from "@lib/components/ModalBody.svelte"
|
||||||
import Wallet from "@assets/icons/wallet.svg?dataurl"
|
import Wallet from "@assets/icons/wallet.svg?dataurl"
|
||||||
import CheckCircle from "@assets/icons/check-circle.svg?dataurl"
|
import CheckCircle from "@assets/icons/check-circle.svg?dataurl"
|
||||||
import {updateProfile} from "@app/core/commands"
|
import {updateProfile} from "@app/profiles"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
const back = () => history.back()
|
const back = () => history.back()
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user