{"version":3,"file":"Layout-6c3106c0.js","sources":["../../src/components/PageNav/PageNav.tsx","../../src/components/Branding/Branding.tsx","../../src/components/NavLink/NavLink.tsx","../../src/components/FloatingNewPostButton/FloatingNewPostButton.tsx","../../src/components/NavMenu/NavMenu.tsx","../../src/components/ProfileWidget/ProfileWidget.tsx","../../src/components/NewNote/EditBox/EditBox.tsx","../../src/components/NewNote/NewNote.tsx","../../src/components/Layout/Layout.tsx"],"sourcesContent":["import type { Component } from 'solid-js';\r\nimport { hookForDev } from '../../lib/devTools';\r\n\r\nimport styles from './PageNav.module.scss';\r\n\r\nconst PageNav: Component<{ id?: string }> = (props) => {\r\n\r\n const onBack = () => {\r\n window.history.back();\r\n }\r\n\r\n const onNext = () => {\r\n window.history.forward();\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default hookForDev(PageNav);\r\n","import { Component, Match, Show, Switch } from 'solid-js';\r\n\r\nimport styles from './Branding.module.scss';\r\nimport { useNavigate } from '@solidjs/router';\r\nimport { useIntl } from '@cookbook/solid-intl';\r\nimport { branding } from '../../translations';\r\nimport PageNav from '../PageNav/PageNav';\r\n\r\nconst Branding: Component<{ small?: boolean, isHome?: boolean, showNav?: boolean }> = (props) => {\r\n const navigate = useNavigate();\r\n const intl = useIntl();\r\n\r\n const onClick = () => {\r\n if (props.isHome) {\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\r\n return;\r\n }\r\n\r\n navigate('/home');\r\n }\r\n\r\n return (\r\n }>\r\n \r\n \r\n
\r\n
\r\n }\r\n >\r\n
\r\n
\r\n \r\n {intl.formatMessage(branding)}\r\n \r\n
\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Branding;\r\n","import { A, useLocation, useNavigate } from '@solidjs/router';\r\nimport { Component, Show } from 'solid-js';\r\nimport { hookForDev } from '../../lib/devTools';\r\n\r\nimport styles from './NavLink.module.scss';\r\n\r\nconst NavLink: Component<{\r\n id?: string,\r\n to: string,\r\n label: string,\r\n icon: string,\r\n bubble?: () => number,\r\n hiddenOnSmallScreens?: boolean,\r\n}> = (props) => {\r\n\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n const shouldScroll = () => props.to === location.pathname;\r\n\r\n const onClick = (e: Event) => {\r\n if (shouldScroll()) {\r\n e.preventDefault();\r\n\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\r\n return;\r\n }\r\n\r\n navigate('/home');\r\n }\r\n\r\n const bubbleClass = () => {\r\n if (!props.bubble || props.bubble() < 10) {\r\n return '';\r\n }\r\n\r\n if (props.bubble() < 100) {\r\n return styles.doubleSize;\r\n }\r\n\r\n return styles.tripleSize;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default hookForDev(NavLink);\r\n","import { Component } from \"solid-js\";\r\nimport { useAccountContext } from \"../../contexts/AccountContext\";\r\nimport { hookForDev } from \"../../lib/devTools\";\r\n\r\nimport styles from \"./FloatingNewPostButton.module.scss\";\r\n\r\nconst FloatingNewPostButton: Component<{ id?: string }> = (props) => {\r\n const account = useAccountContext();\r\n\r\n const showNewNoteForm = () => {\r\n account?.actions?.showNewNoteForm();\r\n };\r\n\r\n\r\n return (\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default hookForDev(FloatingNewPostButton);\r\n","import { useIntl } from '@cookbook/solid-intl';\r\nimport { useLocation } from '@solidjs/router';\r\nimport { Component, For, Show } from 'solid-js';\r\nimport { useAccountContext } from '../../contexts/AccountContext';\r\nimport { useMessagesContext } from '../../contexts/MessagesContext';\r\nimport { useNotificationsContext } from '../../contexts/NotificationsContext';\r\nimport { navBar as t, actions as tActions, placeholders as tPlaceholders } from '../../translations';\r\nimport NavLink from '../NavLink/NavLink';\r\nimport FloatingNewPostButton from '../FloatingNewPostButton/FloatingNewPostButton';\r\n\r\nimport styles from './NavMenu.module.scss';\r\nimport { hookForDev } from '../../lib/devTools';\r\nimport ButtonPrimary from '../Buttons/ButtonPrimary';\r\n\r\nconst NavMenu: Component< { id?: string } > = (props) => {\r\n const account = useAccountContext();\r\n const notifications = useNotificationsContext();\r\n const messages = useMessagesContext();\r\n const intl = useIntl();\r\n const loc = useLocation();\r\n\r\n const links = [\r\n {\r\n to: '/home',\r\n label: intl.formatMessage(t.home),\r\n icon: 'homeIcon',\r\n },\r\n {\r\n to: '/explore',\r\n label: intl.formatMessage(t.explore),\r\n icon: 'exploreIcon',\r\n },\r\n {\r\n to: '/messages',\r\n label: intl.formatMessage(t.messages),\r\n icon: 'messagesIcon',\r\n bubble: () => messages?.messageCount || 0,\r\n },\r\n {\r\n to: '/notifications',\r\n label: intl.formatMessage(t.notifications),\r\n icon: 'notificationsIcon',\r\n bubble: () => notifications?.notificationCount || 0,\r\n hiddenOnSmallScreens: true,\r\n },\r\n {\r\n to: '/downloads',\r\n label: intl.formatMessage(t.downloads),\r\n icon: 'downloadIcon',\r\n bubble: () => notifications?.downloadsCount || 0,\r\n },\r\n {\r\n to: '/settings',\r\n label: intl.formatMessage(t.settings),\r\n icon: 'settingsIcon',\r\n hiddenOnSmallScreens: true,\r\n bubble: () => account?.sec ? 1 : 0,\r\n },\r\n {\r\n to: '/help',\r\n label: intl.formatMessage(t.help),\r\n icon: 'helpIcon',\r\n hiddenOnSmallScreens: true,\r\n },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {intl.formatMessage(tPlaceholders.welcomeMessage)}\r\n
\r\n
\r\n \r\n {intl.formatMessage(tActions.getStarted)}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default hookForDev(NavMenu);\r\n","import { Component, Show } from 'solid-js';\r\nimport { A } from '@solidjs/router';\r\nimport Avatar from '../Avatar/Avatar';\r\nimport { useAccountContext } from '../../contexts/AccountContext';\r\nimport { trimVerification } from '../../lib/profile';\r\nimport { hexToNpub } from '../../lib/keys';\r\n\r\nimport styles from './ProfileWidget.module.scss';\r\nimport { hookForDev } from '../../lib/devTools';\r\nimport { userName } from '../../stores/profile';\r\n\r\nconst ProfileWidget: Component<{ id?: string }> = (props) => {\r\n\r\n const account = useAccountContext()\r\n\r\n const activeUser = () => account?.activeUser;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default hookForDev(ProfileWidget);\r\n","import { useIntl } from \"@cookbook/solid-intl\";\r\nimport { Router, useLocation } from \"@solidjs/router\";\r\nimport { nip19 } from \"nostr-tools\";\r\nimport { Component, createEffect, createSignal, For, onCleanup, onMount, Show } from \"solid-js\";\r\nimport { createStore } from \"solid-js/store\";\r\nimport { noteRegex, profileRegex, Kind, editMentionRegex, emojiSearchLimit } from \"../../../constants\";\r\nimport { useAccountContext } from \"../../../contexts/AccountContext\";\r\nimport { useSearchContext } from \"../../../contexts/SearchContext\";\r\nimport { TranslatorProvider } from \"../../../contexts/TranslatorContext\";\r\nimport { getEvents } from \"../../../lib/feed\";\r\nimport { parseNote1, sanitize, sendNote, replaceLinkPreviews, importEvents } from \"../../../lib/notes\";\r\nimport { getUserProfiles } from \"../../../lib/profile\";\r\nimport { subscribeTo } from \"../../../sockets\";\r\nimport { subscribeTo as uploadSub } from \"../../../uploadSocket\";\r\nimport { convertToNotes, referencesToTags } from \"../../../stores/note\";\r\nimport { convertToUser, nip05Verification, truncateNpub, userName } from \"../../../stores/profile\";\r\nimport { EmojiOption, FeedPage, NostrMediaUploaded, NostrMentionContent, NostrNoteContent, NostrStatsContent, NostrUserContent, PrimalNote, PrimalUser, SendNoteResult } from \"../../../types/primal\";\r\nimport { debounce, isVisibleInContainer, uuidv4 } from \"../../../utils\";\r\nimport Avatar from \"../../Avatar/Avatar\";\r\nimport EmbeddedNote from \"../../EmbeddedNote/EmbeddedNote\";\r\nimport MentionedUserLink from \"../../Note/MentionedUserLink/MentionedUserLink\";\r\nimport SearchOption from \"../../Search/SearchOption\";\r\nimport { useToastContext } from \"../../Toaster/Toaster\";\r\nimport styles from './EditBox.module.scss';\r\nimport emojiSearch from '@jukben/emoji-search';\r\nimport { getCaretCoordinates } from \"../../../lib/textArea\";\r\nimport { uploadMedia } from \"../../../lib/media\";\r\nimport { APP_ID } from \"../../../App\";\r\nimport Loader from \"../../Loader/Loader\";\r\nimport {\r\n toast as tToast,\r\n feedback as tFeedback,\r\n note as tNote,\r\n search as tSearch,\r\n actions as tActions,\r\n} from \"../../../translations\";\r\nimport { useMediaContext } from \"../../../contexts/MediaContext\";\r\nimport { hookForDev } from \"../../../lib/devTools\";\r\n\r\ntype AutoSizedTextArea = HTMLTextAreaElement & { _baseScrollHeight: number };\r\n\r\n\r\nconst EditBox: Component<{\r\n id?: string,\r\n replyToNote?: PrimalNote,\r\n onClose?: () => void,\r\n onSuccess?: (note: SendNoteResult) => void,\r\n idPrefix?: string,\r\n} > = (props) => {\r\n\r\n const intl = useIntl();\r\n const media = useMediaContext();\r\n\r\n const instanceId = uuidv4();\r\n\r\n const search = useSearchContext();\r\n const account = useAccountContext();\r\n const toast = useToastContext();\r\n\r\n let textArea: HTMLTextAreaElement | undefined;\r\n let textPreview: HTMLDivElement | undefined;\r\n let mentionOptions: HTMLDivElement | undefined;\r\n let emojiOptions: HTMLDivElement | undefined;\r\n let editWrap: HTMLDivElement | undefined;\r\n let fileUpload: HTMLInputElement | undefined;\r\n\r\n let mentionCursorPosition = { top: 0, left: 0, height: 0 };\r\n let emojiCursorPosition = { top: 0, left: 0, height: 0 };\r\n\r\n const [isMentioning, setMentioning] = createSignal(false);\r\n const [preQuery, setPreQuery] = createSignal('');\r\n const [query, setQuery] = createSignal('');\r\n\r\n const [message, setMessage] = createSignal('');\r\n const [parsedMessage, setParsedMessage] = createSignal('');\r\n\r\n const [isEmojiInput, setEmojiInput] = createSignal(false);\r\n const [emojiQuery, setEmojiQuery] = createSignal('');\r\n const [emojiResults, setEmojiResults] = createStore([]);\r\n\r\n const [userRefs, setUserRefs] = createStore>({});\r\n const [noteRefs, setNoteRefs] = createStore>({});\r\n\r\n const [highlightedUser, setHighlightedUser] = createSignal(0);\r\n const [highlightedEmoji, setHighlightedEmoji] = createSignal(0);\r\n const [referencedNotes, setReferencedNotes] = createStore>();\r\n\r\n const location = useLocation();\r\n\r\n let currentPath = location.pathname;\r\n\r\n const getScrollHeight = (elm: AutoSizedTextArea) => {\r\n var savedValue = elm.value\r\n elm.value = ''\r\n elm._baseScrollHeight = elm.scrollHeight\r\n elm.value = savedValue\r\n }\r\n\r\n const onExpandableTextareaInput: (event: InputEvent) => void = (event) => {\r\n const maxHeight = document.documentElement.clientHeight || window.innerHeight || 0;\r\n\r\n const elm = textArea as AutoSizedTextArea;\r\n const preview = textPreview;\r\n\r\n\r\n if(elm.nodeName !== 'TEXTAREA' || elm.id !== `${prefix()}new_note_text_area` || !preview) {\r\n return;\r\n }\r\n\r\n const minRows = parseInt(elm.getAttribute('data-min-rows') || '0');\r\n\r\n !elm._baseScrollHeight && getScrollHeight(elm);\r\n\r\n if (elm.scrollHeight >= (maxHeight / 3)) {\r\n elm.style.height = '46vh';\r\n return;\r\n }\r\n\r\n elm.style.height = 'auto';\r\n\r\n elm.rows = minRows;\r\n const rows = Math.ceil((elm.scrollHeight - elm._baseScrollHeight) / 20);\r\n elm.rows = minRows + rows;\r\n\r\n const rect = elm.getBoundingClientRect();\r\n\r\n\r\n preview.style.maxHeight = `${maxHeight - rect.height - 120}px`;\r\n }\r\n\r\n createEffect(() => {\r\n if (emojiQuery().length > emojiSearchLimit) {\r\n setEmojiResults(() => emojiSearch(emojiQuery()));\r\n }\r\n });\r\n\r\n\r\n createEffect(() => {\r\n if (isEmojiInput() && emojiQuery().length > emojiSearchLimit) {\r\n emojiPositionOptions();\r\n }\r\n });\r\n\r\n const onKeyDown = (e: KeyboardEvent) => {\r\n if (!textArea) {\r\n return false;\r\n }\r\n\r\n if (isUploading()) {\r\n return;\r\n }\r\n const previousChar = textArea.value[textArea.selectionStart - 1];\r\n\r\n const mentionSeparators = ['Enter', 'Space', 'Comma', 'Tab'];\r\n\r\n if (e.code === 'Enter' && e.metaKey) {\r\n e.preventDefault();\r\n postNote();\r\n return false;\r\n }\r\n\r\n if (!isMentioning() && !isEmojiInput() && e.key === ':' && previousChar === ' ') {\r\n emojiCursorPosition = getCaretCoordinates(textArea, textArea.selectionStart);\r\n setEmojiInput(true);\r\n return false;\r\n }\r\n\r\n if (isEmojiInput()) {\r\n if (e.code === 'ArrowDown') {\r\n e.preventDefault();\r\n setHighlightedEmoji(i => {\r\n if (emojiResults.length === 0) {\r\n return 0;\r\n }\r\n\r\n return i < emojiResults.length - 7 ? i + 6 : 0;\r\n });\r\n\r\n const emojiHolder = document.getElementById(`${instanceId}-${highlightedEmoji()}`);\r\n\r\n if (emojiHolder && emojiOptions && !isVisibleInContainer(emojiHolder, emojiOptions)) {\r\n emojiHolder.scrollIntoView({ block: 'end', behavior: 'smooth' });\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (e.code === 'ArrowUp') {\r\n e.preventDefault();\r\n setHighlightedEmoji(i => {\r\n if (emojiResults.length === 0) {\r\n return 0;\r\n }\r\n\r\n return i >= 6 ? i - 6 : emojiResults.length - 1;\r\n });\r\n\r\n const emojiHolder = document.getElementById(`${instanceId}-${highlightedEmoji()}`);\r\n\r\n if (emojiHolder && emojiOptions && !isVisibleInContainer(emojiHolder, emojiOptions)) {\r\n emojiHolder.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (e.code === 'ArrowRight') {\r\n e.preventDefault();\r\n setHighlightedEmoji(i => {\r\n if (emojiResults.length === 0) {\r\n return 0;\r\n }\r\n\r\n return i < emojiResults.length - 1 ? i + 1 : 0;\r\n });\r\n\r\n const emojiHolder = document.getElementById(`${instanceId}-${highlightedEmoji()}`);\r\n\r\n if (emojiHolder && emojiOptions && !isVisibleInContainer(emojiHolder, emojiOptions)) {\r\n emojiHolder.scrollIntoView({ block: 'end', behavior: 'smooth' });\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (e.code === 'ArrowLeft') {\r\n e.preventDefault();\r\n setHighlightedEmoji(i => {\r\n if (emojiResults.length === 0) {\r\n return 0;\r\n }\r\n\r\n return i > 0 ? i - 1 : emojiResults.length - 1;\r\n });\r\n\r\n const emojiHolder = document.getElementById(`${instanceId}-${highlightedEmoji()}`);\r\n\r\n if (emojiHolder && emojiOptions && !isVisibleInContainer(emojiHolder, emojiOptions)) {\r\n emojiHolder.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (mentionSeparators.includes(e.code) || e.code === 'Semicolon') {\r\n if (emojiQuery().trim().length === 0) {\r\n setEmojiInput(false);\r\n return false;\r\n }\r\n e.preventDefault();\r\n emojiResults.length === 0 && setEmojiResults(emojiSearch(emojiQuery()));\r\n selectEmoji(emojiResults[highlightedEmoji()]);\r\n setHighlightedEmoji(0);\r\n return false;\r\n }\r\n\r\n const cursor = textArea.selectionStart;\r\n const lastEmojiTrigger = textArea.value.slice(0, cursor).lastIndexOf(':');\r\n\r\n if (e.code === 'Backspace') {\r\n setEmojiQuery(emojiQuery().slice(0, -1));\r\n\r\n if (lastEmojiTrigger < 0 || cursor - lastEmojiTrigger <= 1) {\r\n setEmojiInput(false);\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!['Shift', 'Control', 'Meta'].includes(e.key)) {\r\n setEmojiQuery(q => q + e.key);\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!isMentioning() && e.key === '@') {\r\n mentionCursorPosition = getCaretCoordinates(textArea, textArea.selectionStart);\r\n setPreQuery('');\r\n setQuery('');\r\n setMentioning(true);\r\n return false;\r\n }\r\n\r\n if (!isMentioning() && e.code === 'Backspace' && textArea) {\r\n let cursor = textArea.selectionStart;\r\n const textSoFar = textArea.value.slice(0, cursor);\r\n const lastWord = textSoFar.split(/[\\s,;\\n\\r]/).pop();\r\n\r\n if (lastWord?.startsWith('@`')) {\r\n const index = textSoFar.lastIndexOf(lastWord);\r\n\r\n const newText = textSoFar.slice(0, index) + textArea.value.slice(cursor);\r\n\r\n setMessage(newText);\r\n textArea.value = newText;\r\n\r\n textArea.selectionEnd = index;\r\n }\r\n }\r\n\r\n if (isMentioning()) {\r\n\r\n if (e.code === 'ArrowDown') {\r\n e.preventDefault();\r\n setHighlightedUser(i => {\r\n if (!search?.users || search.users.length === 0) {\r\n return 0;\r\n }\r\n\r\n return i < search.users.length - 1 ? i + 1 : 0;\r\n });\r\n return false;\r\n }\r\n\r\n if (e.code === 'ArrowUp') {\r\n e.preventDefault();\r\n setHighlightedUser(i => {\r\n if (!search?.users || search.users.length === 0) {\r\n return 0;\r\n }\r\n\r\n return i > 0 ? i - 1 : search.users.length - 1;\r\n });\r\n return false;\r\n }\r\n\r\n if (mentionSeparators.includes(e.code)) {\r\n if (preQuery() === ' ') {\r\n setMentioning(false);\r\n return false;\r\n }\r\n e.preventDefault();\r\n search?.users && selectUser(search.users[highlightedUser()])\r\n setMentioning(false);\r\n return false;\r\n }\r\n\r\n const cursor = textArea.selectionStart;\r\n const lastMentionTrigger = textArea.value.slice(0, cursor).lastIndexOf('@');\r\n\r\n if (e.code === 'Backspace') {\r\n setPreQuery(preQuery().slice(0, -1));\r\n\r\n if (lastMentionTrigger < 0 || cursor - lastMentionTrigger <= 1) {\r\n setMentioning(false);\r\n return false;\r\n }\r\n } else if (!['Shift', 'Control', 'Meta'].includes(e.key)) {\r\n setPreQuery(q => q + e.key);\r\n return false\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const [isDroppable, setIsDroppable] = createSignal(false);\r\n\r\n const onDrop = (e: DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n setIsDroppable(false);\r\n\r\n let draggedData = e.dataTransfer;\r\n let file = draggedData?.files[0];\r\n\r\n\r\n file && isSupportedFileType(file) && uploadFile(file);\r\n\r\n };\r\n\r\n const onDragOver = (e: DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n setIsDroppable(true);\r\n }\r\n\r\n const onDragLeave = (e: DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (!editWrap) {\r\n return;\r\n }\r\n\r\n const rect = editWrap.getBoundingClientRect();\r\n\r\n const isWider = e.clientX < rect.x || e.clientX > rect.x + rect.width;\r\n const isTaller = e.clientY < rect.y || e.clientY > rect.y + rect.height;\r\n\r\n (isWider || isTaller) && setIsDroppable(false);\r\n }\r\n\r\n const onPaste = (e:ClipboardEvent) => {\r\n if (e.clipboardData?.files && e.clipboardData.files.length > 0) {\r\n e.preventDefault();\r\n const file = e.clipboardData.files[0];\r\n file && isSupportedFileType(file) && uploadFile(file);\r\n return false;\r\n }\r\n }\r\n\r\n onMount(() => {\r\n // @ts-expect-error TODO: fix types here\r\n editWrap?.addEventListener('input', onExpandableTextareaInput);\r\n editWrap?.addEventListener('keydown', onKeyDown);\r\n // editWrap?.addEventListener('drop', onDrop, false);\r\n });\r\n\r\n onCleanup(() => {\r\n // @ts-expect-error TODO: fix types here\r\n editWrap?.removeEventListener('input', onExpandableTextareaInput);\r\n editWrap?.removeEventListener('keydown', onKeyDown);\r\n // editWrap?.removeEventListener('drop', onDrop, false);\r\n });\r\n\r\n createEffect(() => {\r\n editWrap?.removeEventListener('keyup', onEscape);\r\n editWrap?.addEventListener('keyup', onEscape);\r\n });\r\n\r\n createEffect(() => {\r\n if (location.pathname !== currentPath) {\r\n closeEditor();\r\n }\r\n })\r\n\r\n createEffect(() => {\r\n const preQ = preQuery();\r\n\r\n debounce(() => {\r\n setQuery(() => preQ)\r\n }, 500);\r\n })\r\n\r\n createEffect(() => {\r\n if (account?.quotedNote && textArea) {\r\n setMessage((msg) => `${msg}${account.quotedNote} `);\r\n textArea.value = message();\r\n onExpandableTextareaInput(new InputEvent('input'))\r\n account.actions.quoteNote(undefined);\r\n }\r\n })\r\n\r\n const onEscape = (e: KeyboardEvent) => {\r\n if (e.code === 'Escape') {\r\n !isMentioning() && !isEmojiInput() ?\r\n closeEditor() :\r\n closeEmojiAndMentions();\r\n }\r\n };\r\n\r\n const closeEditor = () => {\r\n setUserRefs({});\r\n setMessage('');\r\n setParsedMessage('');\r\n setQuery('');\r\n setMentioning(false);\r\n setEmojiInput(false);\r\n setEmojiQuery('')\r\n setEmojiResults(() => []);\r\n props.onClose && props.onClose();\r\n };\r\n\r\n const closeEmojiAndMentions = () => {\r\n setMentioning(false);\r\n setEmojiInput(false);\r\n setEmojiQuery('')\r\n setEmojiResults(() => []);\r\n };\r\n\r\n const [isPostingInProgress, setIsPostingInProgress] = createSignal(false);\r\n\r\n const postNote = async () => {\r\n if (!account || !account.hasPublicKey() || isUploading() || isInputting()) {\r\n return;\r\n }\r\n\r\n // if (Object.keys(account.relaySettings).length === 0) {\r\n // toast?.sendWarning(\r\n // intl.formatMessage(tToast.noRelays),\r\n // );\r\n // return;\r\n // }\r\n\r\n if (account.relays.length === 0) {\r\n toast?.sendWarning(\r\n intl.formatMessage(tToast.noRelaysConnected),\r\n );\r\n return;\r\n }\r\n\r\n const value = message();\r\n\r\n if (value.trim() === '') {\r\n return;\r\n }\r\n\r\n const messageToSend = value.replace(editMentionRegex, (url) => {\r\n\r\n const [_, name] = url.split('\\`');\r\n const user = userRefs[name];\r\n\r\n // @ts-ignore\r\n return ` nostr:${user.npub}`;\r\n })\r\n\r\n if (account) {\r\n const tags = referencesToTags(messageToSend);\r\n\r\n if (props.replyToNote) {\r\n tags.push(['e', props.replyToNote.post.id, '', 'reply']);\r\n tags.push(['p', props.replyToNote.post.pubkey]);\r\n }\r\n\r\n setIsPostingInProgress(true);\r\n\r\n const { success, reasons, note } = await sendNote(messageToSend, account.relays, tags, account.relaySettings);\r\n\r\n if (success) {\r\n\r\n const importId = `import_note_${APP_ID}`;\r\n\r\n const unsub = subscribeTo(importId, (type, _, response) => {\r\n if (type === 'EOSE') {\r\n if (note) {\r\n toast?.sendSuccess(intl.formatMessage(tToast.publishNoteSuccess));\r\n props.onSuccess && props.onSuccess({ success, reasons, note });\r\n setIsPostingInProgress(false);\r\n closeEditor();\r\n }\r\n unsub();\r\n }\r\n });\r\n\r\n note && importEvents([note], importId);\r\n\r\n return;\r\n }\r\n\r\n if (reasons?.includes('no_extension')) {\r\n toast?.sendWarning(intl.formatMessage(tToast.noExtension));\r\n setIsPostingInProgress(false);\r\n return;\r\n }\r\n\r\n if (reasons?.includes('timeout')) {\r\n toast?.sendWarning(intl.formatMessage(tToast.publishNoteTimeout));\r\n setIsPostingInProgress(false);\r\n return;\r\n }\r\n\r\n toast?.sendWarning(intl.formatMessage(tToast.publishNoteFail));\r\n setIsPostingInProgress(false);\r\n return;\r\n }\r\n\r\n setIsPostingInProgress(false);\r\n closeEditor();\r\n };\r\n\r\n const mentionPositionOptions = () => {\r\n if (!textArea || !mentionOptions || !editWrap) {\r\n return;\r\n }\r\n\r\n const taRect = textArea.getBoundingClientRect();\r\n const wRect = editWrap.getBoundingClientRect();\r\n\r\n let newTop = taRect.top - wRect.top + mentionCursorPosition.top + 22;\r\n let newLeft = mentionCursorPosition.left + 16;\r\n\r\n if (newTop > document.documentElement.clientHeight - 200) {\r\n newTop = taRect.top - 400;\r\n }\r\n\r\n mentionOptions.style.top = `${newTop}px`;\r\n mentionOptions.style.left = `${newLeft}px`;\r\n };\r\n\r\n const emojiPositionOptions = () => {\r\n if (!textArea || !emojiOptions || !editWrap) {\r\n return;\r\n }\r\n\r\n const taRect = textArea.getBoundingClientRect();\r\n const wRect = editWrap.getBoundingClientRect();\r\n\r\n let newTop = taRect.top - wRect.top + emojiCursorPosition.top + 22;\r\n let newLeft = emojiCursorPosition.left;\r\n\r\n if (newTop > document.documentElement.clientHeight - 200) {\r\n newTop = taRect.top - 400;\r\n }\r\n\r\n emojiOptions.style.top = `${newTop}px`;\r\n emojiOptions.style.left = `${newLeft}px`;\r\n };\r\n\r\n const highlightHashtags = (text: string) => {\r\n const regex = /(?:\\s|^)#[^\\s!@#$%^&*(),.?\":{}|<>]+/ig;\r\n\r\n return text.replace(regex, (token) => {\r\n const [space, term] = token.split('#');\r\n const embeded = (\r\n \r\n {space}\r\n \r\n #{term}\r\n \r\n \r\n );\r\n\r\n // @ts-ignore\r\n return embeded.outerHTML;\r\n });\r\n }\r\n\r\n const parseUserMentions = (text: string) => {\r\n return text.replace(editMentionRegex, (url) => {\r\n const [_, name] = url.split('\\`');\r\n const user = Object.values(userRefs).find(ref => userName(ref) === name);\r\n\r\n const link = user ?\r\n MentionedUserLink({ user, openInNewTab: true}) :\r\n @{name};\r\n\r\n // @ts-ignore\r\n return ` ${link.outerHTML}` || ` @${name}`;\r\n });\r\n };\r\n\r\n\r\n const subUserRef = (userId: string) => {\r\n\r\n const parsed = parsedMessage().replace(profileRegex, (url) => {\r\n const [_, id] = url.split(':');\r\n\r\n if (!id) {\r\n return url;\r\n }\r\n\r\n try {\r\n // const profileId = nip19.decode(id).data as string | nip19.ProfilePointer;\r\n\r\n // const hex = typeof profileId === 'string' ? profileId : profileId.pubkey;\r\n // const npub = hexToNpub(hex);\r\n\r\n const user = userRefs[userId];\r\n\r\n const link = user ?\r\n @{userName(user)} :\r\n @{truncateNpub(id)};\r\n\r\n // @ts-ignore\r\n return link.outerHTML || url;\r\n } catch (e) {\r\n return `${url}`;\r\n }\r\n });\r\n\r\n setParsedMessage(parsed);\r\n\r\n };\r\n\r\n const parseNpubLinks = (text: string) => {\r\n let refs = [];\r\n let match;\r\n\r\n while((match = profileRegex.exec(text)) !== null) {\r\n refs.push(match[1]);\r\n }\r\n\r\n refs.forEach(id => {\r\n if (userRefs[id]) {\r\n setTimeout(() => {\r\n subUserRef(id);\r\n }, 0);\r\n return;\r\n }\r\n\r\n const eventId = nip19.decode(id).data as string | nip19.ProfilePointer;\r\n const hex = typeof eventId === 'string' ? eventId : eventId.pubkey;\r\n\r\n // setReferencedNotes(`nn_${id}`, { messages: [], users: {}, postStats: {}, mentions: {} })\r\n\r\n const unsub = subscribeTo(`nu_${id}`, (type, subId, content) =>{\r\n if (type === 'EOSE') {\r\n // // const newNote = convertToNotes(referencedNotes[subId])[0];\r\n\r\n // // setNoteRefs((refs) => ({\r\n // // ...refs,\r\n // // [newNote.post.noteId]: newNote\r\n // // }));\r\n\r\n subUserRef(hex);\r\n\r\n unsub();\r\n return;\r\n }\r\n\r\n if (type === 'EVENT') {\r\n if (!content) {\r\n return;\r\n }\r\n\r\n if (content.kind === Kind.Metadata) {\r\n const user = content as NostrUserContent;\r\n\r\n const u = convertToUser(user)\r\n\r\n setUserRefs(() => ({ [u.pubkey]: u }));\r\n\r\n // setReferencedNotes(subId, 'users', (usrs) => ({ ...usrs, [user.pubkey]: { ...user } }));\r\n return;\r\n }\r\n }\r\n });\r\n\r\n\r\n getUserProfiles([hex], `nu_${id}`);\r\n\r\n });\r\n\r\n }\r\n\r\n const parseNoteLinks = (text: string) => {\r\n let refs = [];\r\n let match;\r\n\r\n while((match = noteRegex.exec(text)) !== null) {\r\n refs.push(match[1]);\r\n }\r\n\r\n refs.forEach(id => {\r\n if (noteRefs[id]) {\r\n setTimeout(() => {\r\n subNoteRef(id);\r\n }, 0);\r\n return;\r\n }\r\n\r\n const eventId = nip19.decode(id).data as string | nip19.EventPointer;\r\n const hex = typeof eventId === 'string' ? eventId : eventId.id;\r\n\r\n setReferencedNotes(`nn_${id}`, { messages: [], users: {}, postStats: {}, mentions: {} })\r\n\r\n const unsub = subscribeTo(`nn_${id}`, (type, subId, content) =>{\r\n if (type === 'EOSE') {\r\n const newNote = convertToNotes(referencedNotes[subId])[0];\r\n\r\n setNoteRefs((refs) => ({\r\n ...refs,\r\n [newNote.post.noteId]: newNote\r\n }));\r\n\r\n subNoteRef(newNote.post.noteId);\r\n\r\n unsub();\r\n return;\r\n }\r\n\r\n if (type === 'EVENT') {\r\n if (!content) {\r\n return;\r\n }\r\n\r\n if (content.kind === Kind.Metadata) {\r\n const user = content as NostrUserContent;\r\n\r\n setReferencedNotes(subId, 'users', (usrs) => ({ ...usrs, [user.pubkey]: { ...user } }));\r\n return;\r\n }\r\n\r\n if ([Kind.Text, Kind.Repost].includes(content.kind)) {\r\n const message = content as NostrNoteContent;\r\n\r\n setReferencedNotes(subId, 'messages',\r\n (msgs) => [ ...msgs, { ...message }]\r\n );\r\n\r\n return;\r\n }\r\n\r\n if (content.kind === Kind.NoteStats) {\r\n const statistic = content as NostrStatsContent;\r\n const stat = JSON.parse(statistic.content);\r\n\r\n setReferencedNotes(subId, 'postStats',\r\n (stats) => ({ ...stats, [stat.event_id]: { ...stat } })\r\n );\r\n return;\r\n }\r\n\r\n if (content.kind === Kind.Mentions) {\r\n const mentionContent = content as NostrMentionContent;\r\n const mention = JSON.parse(mentionContent.content);\r\n\r\n setReferencedNotes(subId, 'mentions',\r\n (mentions) => ({ ...mentions, [mention.id]: { ...mention } })\r\n );\r\n return;\r\n }\r\n }\r\n });\r\n\r\n\r\n getEvents(account?.publicKey, [hex], `nn_${id}`, true);\r\n\r\n });\r\n\r\n };\r\n\r\n const subNoteRef = (noteId: string) => {\r\n\r\n const parsed = parsedMessage().replace(noteRegex, (url) => {\r\n const [_, id] = url.split(':');\r\n\r\n if (!id || id !== noteId) {\r\n return url;\r\n }\r\n try {\r\n const note = noteRefs[id]\r\n\r\n const link = note ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
:\r\n {url};\r\n\r\n // @ts-ignore\r\n return link.outerHTML || url;\r\n } catch (e) {\r\n console.log('ERROR: ', e);\r\n return `${url}`;\r\n }\r\n\r\n });\r\n\r\n setParsedMessage(parsed);\r\n\r\n };\r\n\r\n\r\n const parseForReferece = async (value: string) => {\r\n const content = await replaceLinkPreviews(\r\n parseUserMentions(\r\n highlightHashtags(\r\n parseNote1(value, media?.actions.getMediaUrl)\r\n )\r\n )\r\n );\r\n\r\n parseNpubLinks(content);\r\n parseNoteLinks(content);\r\n\r\n return content;\r\n };\r\n\r\n const [isInputting, setIsInputting] = createSignal(false);\r\n\r\n const onInput = (e: InputEvent) => {\r\n if (isUploading()) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n setIsInputting(true);\r\n\r\n // debounce(() => {\r\n setIsInputting(false);\r\n textArea && setMessage(textArea.value)\r\n // }, 500)\r\n };\r\n\r\n let delayForMedia = 0;\r\n\r\n createEffect(() => {\r\n if (delayForMedia) {\r\n window.clearTimeout(delayForMedia);\r\n }\r\n const msg = sanitize(message());\r\n\r\n delayForMedia = setTimeout(async () => {\r\n const p = await parseForReferece(msg);\r\n setParsedMessage(p);\r\n }, 500);\r\n\r\n\r\n })\r\n\r\n createEffect(() => {\r\n if (query().length === 0) {\r\n search?.actions.getRecomendedUsers();\r\n return;\r\n }\r\n\r\n search?.actions.findUsers(query());\r\n });\r\n\r\n createEffect(() => {\r\n if (isMentioning()) {\r\n\r\n mentionPositionOptions();\r\n\r\n if (search?.users && search.users.length > 0) {\r\n setHighlightedUser(0);\r\n }\r\n }\r\n });\r\n\r\n createEffect(() => {\r\n if (isEmojiInput()) {\r\n emojiPositionOptions();\r\n\r\n if (emojiResults.length > 0) {\r\n setHighlightedEmoji(0);\r\n }\r\n }\r\n });\r\n\r\n const selectEmoji = (emoji: EmojiOption) => {\r\n if (!textArea || !emoji) {\r\n setEmojiInput(false);\r\n setEmojiQuery('');\r\n setEmojiResults(() => []);\r\n return;\r\n }\r\n\r\n const msg = message();\r\n\r\n // Get cursor position to determine insertion point\r\n let cursor = textArea.selectionStart;\r\n\r\n // Get index of the token and insert emoji character\r\n const index = msg.slice(0, cursor).lastIndexOf(':');\r\n const value = msg.slice(0, index) + emoji.name + msg.slice(cursor);\r\n\r\n // Reset query, update message and text area value\r\n setMessage(value);\r\n textArea.value = message();\r\n\r\n // Calculate new cursor position\r\n textArea.selectionEnd = index + 1;\r\n textArea.focus();\r\n\r\n setEmojiInput(false);\r\n setEmojiQuery('');\r\n setEmojiResults(() => []);\r\n\r\n // Dispatch input event to recalculate UI position\r\n // const e = new Event('input', { bubbles: true, cancelable: true});\r\n // textArea.dispatchEvent(e);\r\n };\r\n\r\n const selectUser = (user: PrimalUser | undefined) => {\r\n if (!textArea || !user) {\r\n return;\r\n }\r\n\r\n setMentioning(false);\r\n\r\n const name = userName(user);\r\n\r\n setUserRefs((refs) => ({\r\n ...refs,\r\n [name]: user,\r\n }));\r\n\r\n const msg = message();\r\n\r\n // Get cursor position to determine insertion point\r\n let cursor = textArea.selectionStart;\r\n\r\n // Get index of the token and inster user's handle\r\n const index = msg.slice(0, cursor).lastIndexOf('@');\r\n const value = msg.slice(0, index) + `@\\`${name}\\`` + msg.slice(cursor);\r\n\r\n // Reset query, update message and text area value\r\n setQuery('');\r\n setMessage(value);\r\n textArea.value = message();\r\n\r\n textArea.focus();\r\n\r\n // Calculate new cursor position\r\n cursor = value.slice(0, cursor).lastIndexOf('@') + name.length + 3;\r\n textArea.selectionEnd = cursor;\r\n\r\n\r\n // Dispatch input event to recalculate UI position\r\n const e = new Event('input', { bubbles: true, cancelable: true});\r\n textArea.dispatchEvent(e);\r\n };\r\n\r\n const focusInput = () => {\r\n textArea && textArea.focus();\r\n };\r\n\r\n const prefix = () => props.idPrefix ?? '';\r\n\r\n const insertAtCursor = (text: string) => {\r\n if (!textArea) {\r\n return;\r\n }\r\n\r\n const msg = message();\r\n\r\n const cursor = textArea.selectionStart;\r\n\r\n const value = msg.slice(0, cursor) + `${text}` + msg.slice(cursor);\r\n\r\n setMessage(() => value);\r\n textArea.value = value;\r\n\r\n textArea.focus();\r\n };\r\n\r\n const [isUploading, setIsUploading] = createSignal(false);\r\n\r\n const isSupportedFileType = (file: File) => {\r\n if (!file.type.startsWith('image/') && !file.type.startsWith('video/')) {\r\n toast?.sendWarning(intl.formatMessage(tToast.fileTypeUpsupported));\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n const onUpload = () => {\r\n if (!fileUpload) {\r\n return;\r\n }\r\n\r\n const file = fileUpload.files ? fileUpload.files[0] : null;\r\n\r\n // @ts-ignore fileUpload.value assignment\r\n file && isSupportedFileType(file) && uploadFile(file, () => fileUpload.value = null);\r\n\r\n }\r\n\r\n const uploadFile = (file: File, callback?: () => void) => {\r\n setIsUploading(true);\r\n\r\n const reader = new FileReader();\r\n\r\n reader.onload = (e) => {\r\n if (!e.target?.result) {\r\n return;\r\n }\r\n\r\n const subid = `upload_${APP_ID}`;\r\n\r\n const data = e.target?.result as string;\r\n\r\n const unsub = uploadSub(subid, (type, subId, content) => {\r\n\r\n if (type === 'EVENT') {\r\n if (!content) {\r\n return;\r\n }\r\n\r\n if (content.kind === Kind.Uploaded) {\r\n const uploaded = content as NostrMediaUploaded;\r\n\r\n insertAtCursor(uploaded.content);\r\n return;\r\n }\r\n }\r\n\r\n if (type === 'NOTICE') {\r\n setIsUploading(false);\r\n unsub();\r\n return;\r\n }\r\n\r\n if (type === 'EOSE') {\r\n setIsUploading(false);\r\n unsub();\r\n return;\r\n }\r\n });\r\n\r\n uploadMedia(account?.publicKey, subid, data);\r\n }\r\n\r\n reader.readAsDataURL(file);\r\n\r\n callback && callback();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {intl.formatMessage(tFeedback.dropzone)}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
{intl.formatMessage(tFeedback.uploading)}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {intl.formatMessage(tNote.newPreview)}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {(user, index) => (\r\n }\r\n statNumber={search?.scores[user.pubkey]}\r\n statLabel={intl.formatMessage(tSearch.followers)}\r\n onClick={() => selectUser(user)}\r\n highlighted={highlightedUser() === index()}\r\n />\r\n )}\r\n \r\n \r\n \r\n\r\n emojiSearchLimit && emojiResults.length > 0}>\r\n \r\n \r\n {(emoji, index) => (\r\n selectEmoji(emoji)}\r\n >\r\n {emoji.name}\r\n \r\n )}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {intl.formatMessage(tActions.notePostNew)}\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default hookForDev(EditBox);\r\n","import { Component } from \"solid-js\";\r\nimport { useAccountContext } from \"../../contexts/AccountContext\";\r\nimport { SendNoteResult } from \"../../types/primal\";\r\nimport Avatar from \"../Avatar/Avatar\";\r\nimport EditBox from \"./EditBox/EditBox\";\r\nimport styles from \"./NewNote.module.scss\";\r\n\r\nconst NewNote: Component<{ onSuccess: (note: SendNoteResult) => void}> = (props) => {\r\n\r\n const account = useAccountContext();\r\n\r\n const activeUser = () => account?.activeUser;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default NewNote;\r\n","import { Component, createEffect, createSignal, onCleanup, onMount, Show } from 'solid-js';\r\n\r\nimport styles from './Layout.module.scss';\r\n\r\nimport { Outlet, useLocation, useParams } from '@solidjs/router';\r\nimport NavMenu from '../NavMenu/NavMenu';\r\nimport ProfileWidget from '../ProfileWidget/ProfileWidget';\r\nimport NewNote from '../NewNote/NewNote';\r\nimport { useAccountContext } from '../../contexts/AccountContext';\r\nimport zapSM from '../../assets/lottie/zap_sm.json';\r\nimport zapMD from '../../assets/lottie/zap_md.json';\r\nimport { useHomeContext } from '../../contexts/HomeContext';\r\nimport { SendNoteResult } from '../../types/primal';\r\nimport { useProfileContext } from '../../contexts/ProfileContext';\r\nimport Branding from '../Branding/Branding';\r\n\r\nexport const [isHome, setIsHome] = createSignal(false);\r\nexport const [showNav, setShowNav] = createSignal(false);\r\n\r\nconst Layout: Component = () => {\r\n\r\n const account = useAccountContext();\r\n const home = useHomeContext();\r\n const profile = useProfileContext();\r\n const location = useLocation();\r\n const params = useParams();\r\n\r\n let container: HTMLDivElement | undefined;\r\n\r\n createEffect(() => {\r\n const newNote = document.getElementById('new_note_input');\r\n const newNoteTextArea = document.getElementById('new_note_text_area') as HTMLTextAreaElement;\r\n\r\n if (account?.showNewNoteForm) {\r\n newNote?.classList.add(styles.animatedShow);\r\n newNoteTextArea?.focus();\r\n }\r\n else {\r\n newNote?.classList.remove(styles.animatedShow);\r\n newNoteTextArea.value = '';\r\n }\r\n });\r\n\r\n const onResize = () => {\r\n container?.style.setProperty('height', `${window.innerHeight}px`);\r\n };\r\n\r\n onMount(() => {\r\n window.addEventListener('resize', onResize);\r\n console.log('OVERLAY: ', location)\r\n });\r\n\r\n onCleanup(() => {\r\n window.removeEventListener('resize', onResize);\r\n });\r\n\r\n const onNewNotePosted = (result: SendNoteResult) => {\r\n const path = location.pathname.split('/');\r\n\r\n if (path[1] === 'home' && home) {\r\n // check for new notes on the home feed\r\n home.actions.checkForNewNotes(home.selectedFeed?.hex)\r\n return;\r\n }\r\n\r\n if (['p', 'profile'].includes(path[1]) && profile) {\r\n const pubkey = params.npub;\r\n // check for new notes on the profile feed\r\n profile.actions.checkForNewNotes(pubkey || account?.publicKey);\r\n return;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Layout;\r\n"],"names":["PageNav","props","onBack","window","history","back","onNext","forward","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","$$click","_$effect","_p$","_v$","id","_v$2","styles","backIcon","_v$3","forwardIcon","_$setAttribute","_$className","undefined","PageNav$1","hookForDev","_$delegateEvents","Branding","navigate","useNavigate","intl","useIntl","onClick","isHome","scrollTo","top","left","behavior","_$createComponent","Show","when","showNav","fallback","children","_tmpl$2","_$insert","small","_el$5","_tmpl$3","_el$6","brandingSmall","_v$4","logo","_el$4","formatMessage","branding","logoLink","NavLink","location","useLocation","shouldScroll","to","pathname","e","preventDefault","bubbleClass","bubble","doubleSize","tripleSize","_tmpl$4","_$memo","_c$","A","href","activeClass","active","inactiveClass","inactive","icon","label","navLink","hiddenOnSmallScreens","NavLink$1","FloatingNewPostButton","account","useAccountContext","showNewNoteForm","actions","newPostButton","postIcon","FloatingNewPostButton$1","NavMenu","notifications","useNotificationsContext","messages","useMessagesContext","loc","links","t","home","explore","messageCount","notificationCount","downloads","downloadsCount","settings","sec","help","For","each","hasPublicKey","startsWith","callToAction","isKeyLookupDone","tPlaceholders","welcomeMessage","ButtonPrimary","showGetStarted","tActions","getStarted","message","action","_v$5","navMenu","_v$6","sideNav","ProfileWidget","activeUser","userProfile","Avatar","size","user","showCheck","avatar","userName","trimVerification","nip05","userInfo","userVerification","background","EditBox","media","useMediaContext","instanceId","uuidv4","search","useSearchContext","toast","useToastContext","textArea","textPreview","mentionOptions","emojiOptions","editWrap","fileUpload","mentionCursorPosition","height","emojiCursorPosition","isMentioning","setMentioning","createSignal","preQuery","setPreQuery","query","setQuery","setMessage","parsedMessage","setParsedMessage","isEmojiInput","setEmojiInput","emojiQuery","setEmojiQuery","emojiResults","setEmojiResults","createStore","userRefs","setUserRefs","noteRefs","setNoteRefs","highlightedUser","setHighlightedUser","highlightedEmoji","setHighlightedEmoji","referencedNotes","setReferencedNotes","currentPath","getScrollHeight","elm","savedValue","value","_baseScrollHeight","scrollHeight","onExpandableTextareaInput","event","maxHeight","document","documentElement","clientHeight","innerHeight","preview","nodeName","prefix","minRows","parseInt","getAttribute","style","rows","Math","ceil","rect","getBoundingClientRect","createEffect","length","emojiSearchLimit","emojiSearch","emojiPositionOptions","onKeyDown","isUploading","previousChar","selectionStart","mentionSeparators","code","metaKey","postNote","key","getCaretCoordinates","i","emojiHolder","getElementById","isVisibleInContainer","scrollIntoView","block","includes","trim","selectEmoji","cursor","lastEmojiTrigger","slice","lastIndexOf","q","textSoFar","lastWord","split","pop","index","newText","selectionEnd","users","selectUser","lastMentionTrigger","isDroppable","setIsDroppable","onDrop","stopPropagation","file","dataTransfer","files","isSupportedFileType","uploadFile","onDragOver","onDragLeave","isWider","clientX","x","width","isTaller","clientY","y","onPaste","clipboardData","onMount","addEventListener","onCleanup","removeEventListener","onEscape","closeEditor","preQ","debounce","quotedNote","msg","InputEvent","quoteNote","closeEmojiAndMentions","onClose","isPostingInProgress","setIsPostingInProgress","__name","isInputting","relays","sendWarning","tToast","noRelaysConnected","messageToSend","replace","editMentionRegex","url","_","name","npub","tags","referencesToTags","replyToNote","push","post","pubkey","success","reasons","note","sendNote","relaySettings","importId","APP_ID","unsub","subscribeTo","type","response","sendSuccess","publishNoteSuccess","onSuccess","importEvents","noExtension","publishNoteTimeout","publishNoteFail","mentionPositionOptions","taRect","wRect","newTop","newLeft","highlightHashtags","text","regex","token","space","term","userReference","outerHTML","parseUserMentions","Object","values","find","ref","MentionedUserLink","openInNewTab","subUserRef","userId","parsed","profileRegex","_el$7","origin","_el$8","_el$9","truncateNpub","error","parseNpubLinks","refs","match","exec","forEach","setTimeout","eventId","nip19","decode","data","hex","subId","content","kind","Kind","Metadata","u","convertToUser","getUserProfiles","parseNoteLinks","noteRegex","subNoteRef","postStats","mentions","newNote","convertToNotes","noteId","usrs","Text","Repost","msgs","NoteStats","stat","JSON","parse","stats","event_id","Mentions","mention","getEvents","publicKey","_el$10","TranslatorProvider","Router","EmbeddedNote","mentionedUsers","includeEmbeds","_el$11","_tmpl$5","console","log","parseForReferece","replaceLinkPreviews","parseNote1","getMediaUrl","setIsInputting","onInput","delayForMedia","clearTimeout","sanitize","p","getRecomendedUsers","findUsers","emoji","focus","Event","bubbles","cancelable","dispatchEvent","focusInput","idPrefix","insertAtCursor","setIsUploading","fileTypeUpsupported","onUpload","callback","reader","FileReader","onload","target","result","subid","uploadSub","Uploaded","uploadMedia","readAsDataURL","_el$12","_tmpl$7","_el$17","_el$18","_el$19","_el$20","_el$21","_el$22","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","_el$31","_el$32","_el$33","_ref$","_$use","_el$13","tFeedback","dropzone","dropOverlay","_el$14","_tmpl$6","_el$15","_el$16","Loader","uploading","uploadLoader","_ref$2","$$input","tNote","newPreview","_ref$3","_el$23","_ref$4","SearchOption","title","description","nip05Verification","statNumber","scores","statLabel","tSearch","followers","highlighted","searchSuggestions","_el$24","_ref$5","_el$34","_tmpl$8","_v$17","_v$18","emojiOption","highlight","emojiSuggestions","_ref$6","hidden","notePostNew","cancel","noteEditBox","editorWrap","previewCaption","_v$7","editorScroll","_v$8","_v$9","editor","_v$10","_v$11","controls","_v$12","editorOptions","_v$13","attachIcon","_v$14","primaryButton","_v$15","_v$16","secondaryButton","readOnly","innerHTML","disabled","EditBox$1","NewNote","hideNewNoteForm","newNoteHolder","newNoteBorder","leftSide","rightSide","holderBottomBorder","leftCorner","rightCorner","setIsHome","setShowNav","Layout","useHomeContext","profile","useProfileContext","params","useParams","container","newNoteTextArea","classList","add","animatedShow","remove","onResize","setProperty","onNewNotePosted","path","checkForNewNotes","selectedFeed","src","zapSM","_$owner","_$getOwner","zapMD","preload","modal","overlay","Outlet","leftColumn","leftHeader","leftContent","leftFooter","centerColumn","centerContent","headerFloater","rightColumn","rightHeader","rightContent"],"mappings":"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"}