reorganize code into smaller files & dirs
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
5ea2eb711f
commit
afa6d39a56
@ -1,7 +1,7 @@
|
|||||||
import { FeedCache } from "@snort/shared";
|
import { FeedCache } from "@snort/shared";
|
||||||
import { db, EventInteraction } from "@/Db";
|
import { db, EventInteraction } from "@/Db";
|
||||||
import { LoginStore } from "@/Login";
|
import { LoginStore } from "@/Utils/Login";
|
||||||
import { sha256 } from "@/SnortUtils";
|
import { sha256 } from "@/Utils";
|
||||||
|
|
||||||
export class EventInteractionCache extends FeedCache<EventInteraction> {
|
export class EventInteractionCache extends FeedCache<EventInteraction> {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -2,7 +2,7 @@ import { db } from "@/Db";
|
|||||||
import { unixNowMs } from "@snort/shared";
|
import { unixNowMs } from "@snort/shared";
|
||||||
import { EventKind, RequestBuilder, socialGraphInstance, TaggedNostrEvent } from "@snort/system";
|
import { EventKind, RequestBuilder, socialGraphInstance, TaggedNostrEvent } from "@snort/system";
|
||||||
import { RefreshFeedCache } from "./RefreshFeedCache";
|
import { RefreshFeedCache } from "./RefreshFeedCache";
|
||||||
import { LoginSession } from "@/Login";
|
import { LoginSession } from "@/Utils/Login";
|
||||||
|
|
||||||
export class FollowListCache extends RefreshFeedCache<TaggedNostrEvent> {
|
export class FollowListCache extends RefreshFeedCache<TaggedNostrEvent> {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -4,8 +4,8 @@ import { unixNow, unixNowMs } from "@snort/shared";
|
|||||||
|
|
||||||
import { db } from "@/Db";
|
import { db } from "@/Db";
|
||||||
import { RefreshFeedCache, TWithCreated } from "./RefreshFeedCache";
|
import { RefreshFeedCache, TWithCreated } from "./RefreshFeedCache";
|
||||||
import { LoginSession } from "@/Login";
|
import { LoginSession } from "@/Utils/Login";
|
||||||
import { Day, Hour } from "@/Const";
|
import { Day, Hour } from "@/Utils/Const";
|
||||||
|
|
||||||
const WindowSize = Hour * 6;
|
const WindowSize = Hour * 6;
|
||||||
const MaxCacheWindow = Day * 7;
|
const MaxCacheWindow = Day * 7;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { EventKind, EventPublisher, RequestBuilder, TaggedNostrEvent } from "@snort/system";
|
import { EventKind, EventPublisher, RequestBuilder, TaggedNostrEvent } from "@snort/system";
|
||||||
import { UnwrappedGift, db } from "@/Db";
|
import { UnwrappedGift, db } from "@/Db";
|
||||||
import { findTag, unwrap } from "@/SnortUtils";
|
import { findTag, unwrap } from "@/Utils";
|
||||||
import { RefreshFeedCache } from "./RefreshFeedCache";
|
import { RefreshFeedCache } from "./RefreshFeedCache";
|
||||||
import { LoginSession, LoginSessionType } from "@/Login";
|
import { LoginSession, LoginSessionType } from "@/Utils/Login";
|
||||||
|
|
||||||
export class GiftWrapCache extends RefreshFeedCache<UnwrappedGift> {
|
export class GiftWrapCache extends RefreshFeedCache<UnwrappedGift> {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { EventKind, NostrEvent, RequestBuilder, TaggedNostrEvent } from "@snort/system";
|
import { EventKind, NostrEvent, RequestBuilder, TaggedNostrEvent } from "@snort/system";
|
||||||
import { RefreshFeedCache, TWithCreated } from "./RefreshFeedCache";
|
import { RefreshFeedCache, TWithCreated } from "./RefreshFeedCache";
|
||||||
import { LoginSession } from "@/Login";
|
import { LoginSession } from "@/Utils/Login";
|
||||||
import { NostrEventForSession, db } from "@/Db";
|
import { NostrEventForSession, db } from "@/Db";
|
||||||
import { Day } from "@/Const";
|
import { Day } from "@/Utils/Const";
|
||||||
import { unixNow } from "@snort/shared";
|
import { unixNow } from "@snort/shared";
|
||||||
|
|
||||||
export class NotificationsCache extends RefreshFeedCache<NostrEventForSession> {
|
export class NotificationsCache extends RefreshFeedCache<NostrEventForSession> {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { FeedCache } from "@snort/shared";
|
import { FeedCache } from "@snort/shared";
|
||||||
import { EventPublisher, RequestBuilder, TaggedNostrEvent } from "@snort/system";
|
import { EventPublisher, RequestBuilder, TaggedNostrEvent } from "@snort/system";
|
||||||
import { LoginSession } from "@/Login";
|
import { LoginSession } from "@/Utils/Login";
|
||||||
|
|
||||||
export type TWithCreated<T> = (T | Readonly<T>) & { created_at: number };
|
export type TWithCreated<T> = (T | Readonly<T>) & { created_at: number };
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import "./AsyncButton.css";
|
import "./AsyncButton.css";
|
||||||
import React, { ForwardedRef } from "react";
|
import React, { ForwardedRef } from "react";
|
||||||
import Spinner from "../../Icons/Spinner";
|
import Spinner from "@/Components/Icons/Spinner";
|
||||||
import useLoading from "@/Hooks/useLoading";
|
import useLoading from "@/Hooks/useLoading";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import useLoading from "@/Hooks/useLoading";
|
import useLoading from "@/Hooks/useLoading";
|
||||||
import Spinner from "@/Icons/Spinner";
|
import Spinner from "@/Components/Icons/Spinner";
|
||||||
|
|
||||||
export type AsyncIconProps = React.HTMLProps<HTMLDivElement> & {
|
export type AsyncIconProps = React.HTMLProps<HTMLDivElement> & {
|
||||||
iconName: string;
|
iconName: string;
|
@ -1,7 +1,7 @@
|
|||||||
import "./BackButton.css";
|
import "./BackButton.css";
|
||||||
import { useIntl } from "react-intl";
|
import { useIntl } from "react-intl";
|
||||||
|
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
export default function CloseButton({ onClick, className }: { onClick?: () => void; className?: string }) {
|
export default function CloseButton({ onClick, className }: { onClick?: () => void; className?: string }) {
|
@ -1,5 +1,5 @@
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import Icon, { IconProps } from "@/Icons/Icon";
|
import Icon, { IconProps } from "@/Components/Icons/Icon";
|
||||||
import type { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
|
|
||||||
interface IconButtonProps {
|
interface IconButtonProps {
|
@ -1,7 +1,7 @@
|
|||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
import { logout } from "@/Login";
|
import { logout } from "@/Utils/Login";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
import { useState, ReactNode } from "react";
|
import { useState, ReactNode } from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import ShowMore from "@/Element/Event/ShowMore";
|
import ShowMore from "@/Components/Event/ShowMore";
|
||||||
|
|
||||||
interface CollapsedProps {
|
interface CollapsedProps {
|
||||||
text?: string;
|
text?: string;
|
@ -1,7 +1,7 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
import AwardIcon from "./Award";
|
import AwardIcon from "./Award";
|
||||||
import Modal from "../Modal";
|
import Modal from "../Modal/Modal";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import CloseButton from "../Button/CloseButton";
|
import CloseButton from "../Button/CloseButton";
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
import "./Copy.css";
|
import "./Copy.css";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { useCopy } from "@/useCopy";
|
import { useCopy } from "@/Hooks/useCopy";
|
||||||
|
|
||||||
export interface CopyProps {
|
export interface CopyProps {
|
||||||
text: string;
|
text: string;
|
@ -4,7 +4,7 @@ import { FormattedMessage, FormattedNumber } from "react-intl";
|
|||||||
import { useUserProfile } from "@snort/system-react";
|
import { useUserProfile } from "@snort/system-react";
|
||||||
|
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
|
|
||||||
interface Token {
|
interface Token {
|
||||||
token: Array<{
|
token: Array<{
|
@ -8,18 +8,18 @@ import {
|
|||||||
AppleMusicRegex,
|
AppleMusicRegex,
|
||||||
NostrNestsRegex,
|
NostrNestsRegex,
|
||||||
WavlakeRegex,
|
WavlakeRegex,
|
||||||
} from "@/Const";
|
} from "@/Utils/Const";
|
||||||
import { magnetURIDecode } from "@/SnortUtils";
|
import { magnetURIDecode } from "@/Utils";
|
||||||
import SoundCloudEmbed from "@/Element/Embed/SoundCloudEmded";
|
import SoundCloudEmbed from "@/Components/Embed/SoundCloudEmded";
|
||||||
import MixCloudEmbed from "@/Element/Embed/MixCloudEmbed";
|
import MixCloudEmbed from "@/Components/Embed/MixCloudEmbed";
|
||||||
import SpotifyEmbed from "@/Element/Embed/SpotifyEmbed";
|
import SpotifyEmbed from "@/Components/Embed/SpotifyEmbed";
|
||||||
import TidalEmbed from "@/Element/Embed/TidalEmbed";
|
import TidalEmbed from "@/Components/Embed/TidalEmbed";
|
||||||
import TwitchEmbed from "@/Element/Embed/TwitchEmbed";
|
import TwitchEmbed from "@/Components/Embed/TwitchEmbed";
|
||||||
import AppleMusicEmbed from "@/Element/Embed/AppleMusicEmbed";
|
import AppleMusicEmbed from "@/Components/Embed/AppleMusicEmbed";
|
||||||
import WavlakeEmbed from "@/Element/Embed/WavlakeEmbed";
|
import WavlakeEmbed from "@/Components/Embed/WavlakeEmbed";
|
||||||
import LinkPreview from "@/Element/Embed/LinkPreview";
|
import LinkPreview from "@/Components/Embed/LinkPreview";
|
||||||
import NostrLink from "@/Element/Embed/NostrLink";
|
import NostrLink from "@/Components/Embed/NostrLink";
|
||||||
import MagnetLink from "@/Element/Embed/MagnetLink";
|
import MagnetLink from "@/Components/Embed/MagnetLink";
|
||||||
import { ReactNode } from "react";
|
import { ReactNode } from "react";
|
||||||
|
|
||||||
interface HypeTextProps {
|
interface HypeTextProps {
|
@ -5,8 +5,8 @@ import { useMemo } from "react";
|
|||||||
import { decodeInvoice } from "@snort/shared";
|
import { decodeInvoice } from "@snort/shared";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
import SendSats from "@/Element/SendSats";
|
import SendSats from "@/Components/SendSats/SendSats";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { useWallet } from "@/Wallet";
|
import { useWallet } from "@/Wallet";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
@ -1,10 +1,10 @@
|
|||||||
import "./LinkPreview.css";
|
import "./LinkPreview.css";
|
||||||
import { CSSProperties, useEffect, useState } from "react";
|
import { CSSProperties, useEffect, useState } from "react";
|
||||||
|
|
||||||
import Spinner from "@/Icons/Spinner";
|
import Spinner from "@/Components/Icons/Spinner";
|
||||||
import SnortApi, { LinkPreviewData } from "@/External/SnortApi";
|
import SnortApi, { LinkPreviewData } from "@/External/SnortApi";
|
||||||
import useImgProxy from "@/Hooks/useImgProxy";
|
import useImgProxy from "@/Hooks/useImgProxy";
|
||||||
import { MediaElement } from "@/Element/Embed/MediaElement";
|
import { MediaElement } from "@/Components/Embed/MediaElement";
|
||||||
|
|
||||||
async function fetchUrlPreviewInfo(url: string) {
|
async function fetchUrlPreviewInfo(url: string) {
|
||||||
const api = new SnortApi();
|
const api = new SnortApi();
|
@ -1,6 +1,6 @@
|
|||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
|
|
||||||
import { Magnet } from "@/SnortUtils";
|
import { Magnet } from "@/Utils";
|
||||||
|
|
||||||
interface MagnetLinkProps {
|
interface MagnetLinkProps {
|
||||||
magnet: Magnet;
|
magnet: Magnet;
|
@ -1,4 +1,4 @@
|
|||||||
import { ProxyImg } from "@/Element/ProxyImg";
|
import { ProxyImg } from "@/Components/ProxyImg";
|
||||||
import useImgProxy from "@/Hooks/useImgProxy";
|
import useImgProxy from "@/Hooks/useImgProxy";
|
||||||
import { IMeta } from "@snort/system";
|
import { IMeta } from "@snort/system";
|
||||||
import React, { CSSProperties, useEffect, useMemo, useRef } from "react";
|
import React, { CSSProperties, useEffect, useMemo, useRef } from "react";
|
@ -1,9 +1,9 @@
|
|||||||
import { NostrLink, NostrPrefix } from "@snort/system";
|
import { NostrLink, NostrPrefix } from "@snort/system";
|
||||||
import { useUserProfile } from "@snort/system-react";
|
import { useUserProfile } from "@snort/system-react";
|
||||||
|
|
||||||
import DisplayName from "@/Element/User/DisplayName";
|
import DisplayName from "@/Components/User/DisplayName";
|
||||||
import { ProfileCard } from "@/Element/User/ProfileCard";
|
import { ProfileCard } from "@/Components/User/ProfileCard";
|
||||||
import { ProfileLink } from "@/Element/User/ProfileLink";
|
import { ProfileLink } from "@/Components/User/ProfileLink";
|
||||||
import { useCallback, useRef, useState } from "react";
|
import { useCallback, useRef, useState } from "react";
|
||||||
|
|
||||||
export default function Mention({ link }: { link: NostrLink }) {
|
export default function Mention({ link }: { link: NostrLink }) {
|
@ -1,4 +1,4 @@
|
|||||||
import { MixCloudRegex } from "@/Const";
|
import { MixCloudRegex } from "@/Utils/Const";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
|
|
||||||
const MixCloudEmbed = ({ link }: { link: string }) => {
|
const MixCloudEmbed = ({ link }: { link: string }) => {
|
@ -1,8 +1,8 @@
|
|||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { NostrPrefix, tryParseNostrLink } from "@snort/system";
|
import { NostrPrefix, tryParseNostrLink } from "@snort/system";
|
||||||
|
|
||||||
import Mention from "@/Element/Embed/Mention";
|
import Mention from "@/Components/Embed/Mention";
|
||||||
import NoteQuote from "@/Element/Event/NoteQuote";
|
import NoteQuote from "@/Components/Event/NoteQuote";
|
||||||
|
|
||||||
export default function NostrLink({ link, depth }: { link: string; depth?: number }) {
|
export default function NostrLink({ link, depth }: { link: string; depth?: number }) {
|
||||||
const nav = tryParseNostrLink(link);
|
const nav = tryParseNostrLink(link);
|
@ -2,11 +2,11 @@ import { NostrEvent } from "@snort/system";
|
|||||||
import { FormattedMessage, FormattedNumber } from "react-intl";
|
import { FormattedMessage, FormattedNumber } from "react-intl";
|
||||||
import { LNURL } from "@snort/shared";
|
import { LNURL } from "@snort/shared";
|
||||||
|
|
||||||
import { dedupe, findTag, hexToBech32, getDisplayName } from "@/SnortUtils";
|
import { dedupe, findTag, hexToBech32, getDisplayName } from "@/Utils";
|
||||||
import FollowListBase from "@/Element/User/FollowListBase";
|
import FollowListBase from "@/Components/User/FollowListBase";
|
||||||
import AsyncButton from "@/Element/Button/AsyncButton";
|
import AsyncButton from "@/Components/Button/AsyncButton";
|
||||||
import { useWallet } from "@/Wallet";
|
import { useWallet } from "@/Wallet";
|
||||||
import { Toastore } from "@/Toaster";
|
import { Toastore } from "@/Components/Toaster/Toaster";
|
||||||
import { UserCache } from "@/Cache";
|
import { UserCache } from "@/Cache";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
@ -1,5 +1,5 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { TidalRegex } from "@/Const";
|
import { TidalRegex } from "@/Utils/Const";
|
||||||
|
|
||||||
// Re-use dom parser across instances of TidalEmbed
|
// Re-use dom parser across instances of TidalEmbed
|
||||||
const domParser = new DOMParser();
|
const domParser = new DOMParser();
|
@ -2,8 +2,8 @@ import "./ZapstrEmbed.css";
|
|||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { NostrEvent, NostrLink } from "@snort/system";
|
import { NostrEvent, NostrLink } from "@snort/system";
|
||||||
|
|
||||||
import { ProxyImg } from "@/Element/ProxyImg";
|
import { ProxyImg } from "@/Components/ProxyImg";
|
||||||
import ProfileImage from "@/Element/User/ProfileImage";
|
import ProfileImage from "@/Components/User/ProfileImage";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
|
|
||||||
export default function ZapstrEmbed({ ev }: { ev: NostrEvent }) {
|
export default function ZapstrEmbed({ ev }: { ev: NostrEvent }) {
|
@ -1,7 +1,7 @@
|
|||||||
import { OfflineError } from "@snort/shared";
|
import { OfflineError } from "@snort/shared";
|
||||||
import { Offline } from "./Offline";
|
import { Offline } from "./Offline";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
|
|
||||||
export function ErrorOrOffline({
|
export function ErrorOrOffline({
|
||||||
error,
|
error,
|
@ -4,30 +4,30 @@ import { EventBuilder, EventKind, NostrLink, NostrPrefix, TaggedNostrEvent, tryP
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { TagsInput } from "react-tag-input-component";
|
import { TagsInput } from "react-tag-input-component";
|
||||||
|
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import { appendDedupe, openFile, trackEvent } from "@/SnortUtils";
|
import { appendDedupe, openFile, trackEvent } from "@/Utils";
|
||||||
import Textarea from "@/Element/Textarea";
|
import Textarea from "@/Components/Textarea/Textarea";
|
||||||
import Modal from "@/Element/Modal";
|
import Modal from "@/Components/Modal/Modal";
|
||||||
import ProfileImage from "@/Element/User/ProfileImage";
|
import ProfileImage from "@/Components/User/ProfileImage";
|
||||||
import useFileUpload from "@/Upload";
|
import useFileUpload from "@/Utils/Upload";
|
||||||
import Note from "@/Element/Event/Note";
|
import Note from "@/Components/Event/Note";
|
||||||
|
|
||||||
import { ClipboardEventHandler, DragEvent, useEffect } from "react";
|
import { ClipboardEventHandler, DragEvent, useEffect } from "react";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import AsyncButton from "@/Element/Button/AsyncButton";
|
import AsyncButton from "@/Components/Button/AsyncButton";
|
||||||
import { AsyncIcon } from "@/Element/Button/AsyncIcon";
|
import { AsyncIcon } from "@/Components/Button/AsyncIcon";
|
||||||
import { fetchNip05Pubkey, unixNow } from "@snort/shared";
|
import { fetchNip05Pubkey, unixNow } from "@snort/shared";
|
||||||
import { ZapTarget } from "@/Zapper";
|
import { ZapTarget } from "@/Utils/Zapper";
|
||||||
import { useNoteCreator } from "@/State/NoteCreator";
|
import { useNoteCreator } from "@/State/NoteCreator";
|
||||||
import FileUploadProgress from "../FileUpload";
|
import FileUploadProgress from "../FileUpload";
|
||||||
import { ToggleSwitch } from "@/Icons/Toggle";
|
import { ToggleSwitch } from "@/Components/Icons/Toggle";
|
||||||
import { sendEventToRelays } from "@/Element/Event/Create/util";
|
import { sendEventToRelays } from "@/Components/Event/Create/util";
|
||||||
import { TrendingHashTagsLine } from "@/Element/Event/Create/TrendingHashTagsLine";
|
import { TrendingHashTagsLine } from "@/Components/Event/Create/TrendingHashTagsLine";
|
||||||
import { Toastore } from "@/Toaster";
|
import { Toastore } from "@/Components/Toaster/Toaster";
|
||||||
import { OkResponseRow } from "./OkResponseRow";
|
import { OkResponseRow } from "./OkResponseRow";
|
||||||
import CloseButton from "@/Element/Button/CloseButton";
|
import CloseButton from "@/Components/Button/CloseButton";
|
||||||
import { GetPowWorker } from "@/wasm";
|
import { GetPowWorker } from "@/Utils/wasm";
|
||||||
|
|
||||||
export function NoteCreator() {
|
export function NoteCreator() {
|
||||||
const { formatMessage } = useIntl();
|
const { formatMessage } = useIntl();
|
@ -2,10 +2,10 @@ import { useRef, useMemo } from "react";
|
|||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
import { isFormElement } from "@/SnortUtils";
|
import { isFormElement } from "@/Utils";
|
||||||
import useKeyboardShortcut from "@/Hooks/useKeyboardShortcut";
|
import useKeyboardShortcut from "@/Hooks/useKeyboardShortcut";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { useNoteCreator } from "@/State/NoteCreator";
|
import { useNoteCreator } from "@/State/NoteCreator";
|
||||||
import { NoteCreator } from "./NoteCreator";
|
import { NoteCreator } from "./NoteCreator";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
@ -1,11 +1,11 @@
|
|||||||
import AsyncButton from "@/Element/Button/AsyncButton";
|
import AsyncButton from "@/Components/Button/AsyncButton";
|
||||||
import IconButton from "@/Element/Button/IconButton";
|
import IconButton from "@/Components/Button/IconButton";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { removeRelay } from "@/Login";
|
import { removeRelay } from "@/Utils/Login";
|
||||||
import { saveRelays } from "@/Pages/settings/Relays";
|
import { saveRelays } from "@/Pages/settings/Relays";
|
||||||
import { getRelayName } from "@/SnortUtils";
|
import { getRelayName } from "@/Utils";
|
||||||
import { unwrap, sanitizeRelayUrl } from "@snort/shared";
|
import { unwrap, sanitizeRelayUrl } from "@snort/shared";
|
||||||
import { OkResponse } from "@snort/system";
|
import { OkResponse } from "@snort/system";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
@ -2,7 +2,7 @@ import { useLocale } from "@/IntlProvider";
|
|||||||
import NostrBandApi from "@/External/NostrBand";
|
import NostrBandApi from "@/External/NostrBand";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
import useCachedFetch from "@/Hooks/useCachedFetch";
|
import useCachedFetch from "@/Hooks/useCachedFetch";
|
||||||
import { ErrorOrOffline } from "@/Element/ErrorOrOffline";
|
import { ErrorOrOffline } from "@/Components/ErrorOrOffline";
|
||||||
|
|
||||||
export function TrendingHashTagsLine(props: { onClick: (tag: string) => void }) {
|
export function TrendingHashTagsLine(props: { onClick: (tag: string) => void }) {
|
||||||
const { lang } = useLocale();
|
const { lang } = useLocale();
|
@ -1,5 +1,5 @@
|
|||||||
import Progress from "@/Element/Progress";
|
import Progress from "@/Components/Progress/Progress";
|
||||||
import { UploadProgress } from "@/Upload";
|
import { UploadProgress } from "@/Utils/Upload";
|
||||||
|
|
||||||
export default function FileUploadProgress({ progress }: { progress: Array<UploadProgress> }) {
|
export default function FileUploadProgress({ progress }: { progress: Array<UploadProgress> }) {
|
||||||
return (
|
return (
|
@ -4,11 +4,11 @@ import { FormattedMessage, FormattedNumber } from "react-intl";
|
|||||||
import { NostrLink, TaggedNostrEvent } from "@snort/system";
|
import { NostrLink, TaggedNostrEvent } from "@snort/system";
|
||||||
import { useEventReactions } from "@snort/system-react";
|
import { useEventReactions } from "@snort/system-react";
|
||||||
|
|
||||||
import { findTag } from "@/SnortUtils";
|
import { findTag } from "@/Utils";
|
||||||
import Text from "@/Element/Text";
|
import Text from "@/Components/Text/Text";
|
||||||
import { Markdown } from "./Markdown";
|
import { Markdown } from "./Markdown";
|
||||||
import useImgProxy from "@/Hooks/useImgProxy";
|
import useImgProxy from "@/Hooks/useImgProxy";
|
||||||
import ProfilePreview from "@/Element/User/ProfilePreview";
|
import ProfilePreview from "@/Components/User/ProfilePreview";
|
||||||
import NoteFooter from "./NoteFooter";
|
import NoteFooter from "./NoteFooter";
|
||||||
import NoteTime from "./NoteTime";
|
import NoteTime from "./NoteTime";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
@ -6,8 +6,8 @@ import { marked, Token } from "marked";
|
|||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import markedFootnote, { Footnotes, Footnote, FootnoteRef } from "marked-footnote";
|
import markedFootnote, { Footnotes, Footnote, FootnoteRef } from "marked-footnote";
|
||||||
|
|
||||||
import { ProxyImg } from "@/Element/ProxyImg";
|
import { ProxyImg } from "@/Components/ProxyImg";
|
||||||
import NostrLink from "@/Element/Embed/NostrLink";
|
import NostrLink from "@/Components/Embed/NostrLink";
|
||||||
|
|
||||||
interface MarkdownProps {
|
interface MarkdownProps {
|
||||||
content: string;
|
content: string;
|
@ -2,10 +2,10 @@ import { FormattedMessage } from "react-intl";
|
|||||||
import { NostrEvent, NostrLink } from "@snort/system";
|
import { NostrEvent, NostrLink } from "@snort/system";
|
||||||
import { useEventFeed } from "@snort/system-react";
|
import { useEventFeed } from "@snort/system-react";
|
||||||
|
|
||||||
import { findTag } from "@/SnortUtils";
|
import { findTag } from "@/Utils";
|
||||||
import PageSpinner from "@/Element/PageSpinner";
|
import PageSpinner from "@/Components/PageSpinner";
|
||||||
import Reveal from "@/Element/Event/Reveal";
|
import Reveal from "@/Components/Event/Reveal";
|
||||||
import { MediaElement } from "@/Element/Embed/MediaElement";
|
import { MediaElement } from "@/Components/Embed/MediaElement";
|
||||||
|
|
||||||
export default function NostrFileHeader({ link }: { link: NostrLink }) {
|
export default function NostrFileHeader({ link }: { link: NostrLink }) {
|
||||||
const ev = useEventFeed(link);
|
const ev = useEventFeed(link);
|
@ -1,16 +1,16 @@
|
|||||||
import "./Note.css";
|
import "./Note.css";
|
||||||
import { ReactNode } from "react";
|
import { ReactNode } from "react";
|
||||||
import { EventKind, NostrEvent, TaggedNostrEvent } from "@snort/system";
|
import { EventKind, NostrEvent, TaggedNostrEvent } from "@snort/system";
|
||||||
import { NostrFileElement } from "@/Element/Event/NostrFileHeader";
|
import { NostrFileElement } from "@/Components/Event/NostrFileHeader";
|
||||||
import ZapstrEmbed from "@/Element/Embed/ZapstrEmbed";
|
import ZapstrEmbed from "@/Components/Embed/ZapstrEmbed";
|
||||||
import PubkeyList from "@/Element/Embed/PubkeyList";
|
import PubkeyList from "@/Components/Embed/PubkeyList";
|
||||||
import { LiveEvent } from "@/Element/LiveEvent";
|
import { LiveEvent } from "@/Components/LiveStream/LiveEvent";
|
||||||
import { ZapGoal } from "@/Element/Event/ZapGoal";
|
import { ZapGoal } from "@/Components/Event/ZapGoal";
|
||||||
import NoteReaction from "@/Element/Event/NoteReaction";
|
import NoteReaction from "@/Components/Event/NoteReaction";
|
||||||
import ProfilePreview from "@/Element/User/ProfilePreview";
|
import ProfilePreview from "@/Components/User/ProfilePreview";
|
||||||
import { NoteInner } from "./NoteInner";
|
import { NoteInner } from "./NoteInner";
|
||||||
import { LongFormText } from "./LongFormText";
|
import { LongFormText } from "./LongFormText";
|
||||||
import ErrorBoundary from "@/Element/ErrorBoundary";
|
import ErrorBoundary from "@/Components/ErrorBoundary";
|
||||||
|
|
||||||
export interface NoteProps {
|
export interface NoteProps {
|
||||||
data: TaggedNostrEvent;
|
data: TaggedNostrEvent;
|
@ -3,15 +3,15 @@ import { FormattedMessage, useIntl } from "react-intl";
|
|||||||
import { HexKey, NostrLink, NostrPrefix, TaggedNostrEvent } from "@snort/system";
|
import { HexKey, NostrLink, NostrPrefix, TaggedNostrEvent } from "@snort/system";
|
||||||
import { Menu, MenuItem } from "@szhsin/react-menu";
|
import { Menu, MenuItem } from "@szhsin/react-menu";
|
||||||
|
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { setPinned, setBookmarked } from "@/Login";
|
import { setPinned, setBookmarked } from "@/Utils/Login";
|
||||||
import messages from "@/Element/messages";
|
import messages from "@/Components/messages";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import useModeration from "@/Hooks/useModeration";
|
import useModeration from "@/Hooks/useModeration";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import { ReBroadcaster } from "../ReBroadcaster";
|
import { ReBroadcaster } from "../ReBroadcaster";
|
||||||
import SnortApi from "@/External/SnortApi";
|
import SnortApi from "@/External/SnortApi";
|
||||||
import { SubscriptionType, getCurrentSubscription } from "@/Subscription";
|
import { SubscriptionType, getCurrentSubscription } from "@/Utils/Subscription";
|
||||||
|
|
||||||
export interface NoteTranslation {
|
export interface NoteTranslation {
|
||||||
text: string;
|
text: string;
|
@ -7,20 +7,20 @@ import { useUserProfile } from "@snort/system-react";
|
|||||||
import { Menu, MenuItem } from "@szhsin/react-menu";
|
import { Menu, MenuItem } from "@szhsin/react-menu";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
import { formatShort } from "@/Number";
|
import { formatShort } from "@/Utils/Number";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import { delay, findTag, getDisplayName } from "@/SnortUtils";
|
import { delay, findTag, getDisplayName } from "@/Utils";
|
||||||
import SendSats from "@/Element/SendSats";
|
import SendSats from "@/Components/SendSats/SendSats";
|
||||||
import { ZapsSummary } from "@/Element/Event/Zap";
|
import { ZapsSummary } from "@/Components/Event/Zap";
|
||||||
import { AsyncIcon, AsyncIconProps } from "@/Element/Button/AsyncIcon";
|
import { AsyncIcon, AsyncIconProps } from "@/Components/Button/AsyncIcon";
|
||||||
|
|
||||||
import { useWallet } from "@/Wallet";
|
import { useWallet } from "@/Wallet";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import { useInteractionCache } from "@/Hooks/useInteractionCache";
|
import { useInteractionCache } from "@/Hooks/useInteractionCache";
|
||||||
import { ZapPoolController } from "@/ZapPoolController";
|
import { ZapPoolController } from "@/Utils/ZapPoolController";
|
||||||
import { Zapper, ZapTarget } from "@/Zapper";
|
import { Zapper, ZapTarget } from "@/Utils/Zapper";
|
||||||
import { useNoteCreator } from "@/State/NoteCreator";
|
import { useNoteCreator } from "@/State/NoteCreator";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
import "./Note.css";
|
import "./Note.css";
|
||||||
import ProfileImage from "@/Element/User/ProfileImage";
|
import ProfileImage from "@/Components/User/ProfileImage";
|
||||||
|
|
||||||
interface NoteGhostProps {
|
interface NoteGhostProps {
|
||||||
className?: string;
|
className?: string;
|
@ -6,27 +6,27 @@ import classNames from "classnames";
|
|||||||
import { EventExt, EventKind, HexKey, NostrLink, NostrPrefix, TaggedNostrEvent } from "@snort/system";
|
import { EventExt, EventKind, HexKey, NostrLink, NostrPrefix, TaggedNostrEvent } from "@snort/system";
|
||||||
import { useEventReactions } from "@snort/system-react";
|
import { useEventReactions } from "@snort/system-react";
|
||||||
|
|
||||||
import { findTag, hexToBech32 } from "@/SnortUtils";
|
import { findTag, hexToBech32 } from "@/Utils";
|
||||||
import useModeration from "@/Hooks/useModeration";
|
import useModeration from "@/Hooks/useModeration";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import { NoteContextMenu, NoteTranslation } from "./NoteContextMenu";
|
import { NoteContextMenu, NoteTranslation } from "./NoteContextMenu";
|
||||||
import { UserCache } from "@/Cache";
|
import { UserCache } from "@/Cache";
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
||||||
import { setBookmarked, setPinned } from "@/Login";
|
import { setBookmarked, setPinned } from "@/Utils/Login";
|
||||||
import Text from "../Text";
|
import Text from "../Text/Text";
|
||||||
import Reveal from "./Reveal";
|
import Reveal from "./Reveal";
|
||||||
import Poll from "./Poll";
|
import Poll from "./Poll";
|
||||||
import ProfileImage from "../User/ProfileImage";
|
import ProfileImage from "../User/ProfileImage";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import NoteTime from "./NoteTime";
|
import NoteTime from "./NoteTime";
|
||||||
import NoteFooter from "./NoteFooter";
|
import NoteFooter from "./NoteFooter";
|
||||||
import Reactions from "./Reactions";
|
import Reactions from "./Reactions";
|
||||||
import HiddenNote from "./HiddenNote";
|
import HiddenNote from "./HiddenNote";
|
||||||
import { NoteProps } from "./Note";
|
import { NoteProps } from "./Note";
|
||||||
import { chainKey } from "@/Hooks/useThreadContext";
|
import { chainKey } from "@/Hooks/useThreadContext";
|
||||||
import { ProfileLink } from "@/Element/User/ProfileLink";
|
import { ProfileLink } from "@/Components/User/ProfileLink";
|
||||||
import DisplayName from "@/Element/User/DisplayName";
|
import DisplayName from "@/Components/User/DisplayName";
|
||||||
|
|
||||||
const TEXT_TRUNCATE_LENGTH = 400;
|
const TEXT_TRUNCATE_LENGTH = 400;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
import { NostrLink } from "@snort/system";
|
import { NostrLink } from "@snort/system";
|
||||||
import { useEventFeed } from "@snort/system-react";
|
import { useEventFeed } from "@snort/system-react";
|
||||||
|
|
||||||
import Note from "@/Element/Event/Note";
|
import Note from "@/Components/Event/Note";
|
||||||
import PageSpinner from "@/Element/PageSpinner";
|
import PageSpinner from "@/Components/PageSpinner";
|
||||||
|
|
||||||
export default function NoteQuote({ link, depth }: { link: NostrLink; depth?: number }) {
|
export default function NoteQuote({ link, depth }: { link: NostrLink; depth?: number }) {
|
||||||
const ev = useEventFeed(link);
|
const ev = useEventFeed(link);
|
@ -3,11 +3,11 @@ import { Link } from "react-router-dom";
|
|||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
import { EventKind, NostrEvent, TaggedNostrEvent, NostrPrefix, EventExt } from "@snort/system";
|
import { EventKind, NostrEvent, TaggedNostrEvent, NostrPrefix, EventExt } from "@snort/system";
|
||||||
|
|
||||||
import Note from "@/Element/Event/Note";
|
import Note from "@/Components/Event/Note";
|
||||||
import { eventLink, hexToBech32, getDisplayName } from "@/SnortUtils";
|
import { eventLink, hexToBech32, getDisplayName } from "@/Utils";
|
||||||
import useModeration from "@/Hooks/useModeration";
|
import useModeration from "@/Hooks/useModeration";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { useUserProfile } from "@snort/system-react";
|
import { useUserProfile } from "@snort/system-react";
|
||||||
import { useInView } from "react-intersection-observer";
|
import { useInView } from "react-intersection-observer";
|
||||||
|
|
@ -6,10 +6,10 @@ import { useUserProfile } from "@snort/system-react";
|
|||||||
|
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import { useWallet } from "@/Wallet";
|
import { useWallet } from "@/Wallet";
|
||||||
import { unwrap } from "@/SnortUtils";
|
import { unwrap } from "@/Utils";
|
||||||
import { formatShort } from "@/Number";
|
import { formatShort } from "@/Utils/Number";
|
||||||
import Spinner from "@/Icons/Spinner";
|
import Spinner from "@/Components/Icons/Spinner";
|
||||||
import SendSats from "@/Element/SendSats";
|
import SendSats from "@/Components/SendSats/SendSats";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
|
|
||||||
interface PollProps {
|
interface PollProps {
|
@ -4,15 +4,15 @@ import { useState, useMemo, useEffect } from "react";
|
|||||||
import { useIntl, FormattedMessage } from "react-intl";
|
import { useIntl, FormattedMessage } from "react-intl";
|
||||||
import { TaggedNostrEvent, ParsedZap } from "@snort/system";
|
import { TaggedNostrEvent, ParsedZap } from "@snort/system";
|
||||||
|
|
||||||
import { formatShort } from "@/Number";
|
import { formatShort } from "@/Utils/Number";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { Tab } from "@/Element/Tabs";
|
import { Tab } from "@/Components/Tabs/Tabs";
|
||||||
import ProfileImage from "@/Element/User/ProfileImage";
|
import ProfileImage from "@/Components/User/ProfileImage";
|
||||||
import Tabs from "@/Element/Tabs";
|
import Tabs from "@/Components/Tabs/Tabs";
|
||||||
import Modal from "@/Element/Modal";
|
import Modal from "@/Components/Modal/Modal";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
||||||
import CloseButton from "@/Element/Button/CloseButton";
|
import CloseButton from "@/Components/Button/CloseButton";
|
||||||
|
|
||||||
interface ReactionsProps {
|
interface ReactionsProps {
|
||||||
show: boolean;
|
show: boolean;
|
@ -1,4 +1,4 @@
|
|||||||
import { WarningNotice } from "@/Element/WarningNotice";
|
import { WarningNotice } from "@/Components/WarningNotice/WarningNotice";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
interface RevealProps {
|
interface RevealProps {
|
@ -1,9 +1,9 @@
|
|||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
|
|
||||||
import { FileExtensionRegex } from "@/Const";
|
import { FileExtensionRegex } from "@/Utils/Const";
|
||||||
import Reveal from "@/Element/Event/Reveal";
|
import Reveal from "@/Components/Event/Reveal";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import { MediaElement } from "@/Element/Embed/MediaElement";
|
import { MediaElement } from "@/Components/Embed/MediaElement";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { IMeta } from "@snort/system";
|
import { IMeta } from "@snort/system";
|
||||||
|
|
@ -5,11 +5,11 @@ import { useNavigate, useParams } from "react-router-dom";
|
|||||||
import { TaggedNostrEvent, u256, NostrPrefix, EventExt, parseNostrLink, NostrLink } from "@snort/system";
|
import { TaggedNostrEvent, u256, NostrPrefix, EventExt, parseNostrLink, NostrLink } from "@snort/system";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
import { getAllLinkReactions, getLinkReactions } from "@/SnortUtils";
|
import { getAllLinkReactions, getLinkReactions } from "@/Utils";
|
||||||
import BackButton from "@/Element/Button/BackButton";
|
import BackButton from "@/Components/Button/BackButton";
|
||||||
import Note from "@/Element/Event/Note";
|
import Note from "@/Components/Event/Note";
|
||||||
import NoteGhost from "@/Element/Event/NoteGhost";
|
import NoteGhost from "@/Components/Event/NoteGhost";
|
||||||
import Collapsed from "@/Element/Collapsed";
|
import Collapsed from "@/Components/Collapsed";
|
||||||
import { ThreadContext, ThreadContextWrapper, chainKey } from "@/Hooks/useThreadContext";
|
import { ThreadContext, ThreadContextWrapper, chainKey } from "@/Hooks/useThreadContext";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
@ -3,10 +3,10 @@ import { useMemo } from "react";
|
|||||||
import { ParsedZap } from "@snort/system";
|
import { ParsedZap } from "@snort/system";
|
||||||
import { FormattedMessage, useIntl } from "react-intl";
|
import { FormattedMessage, useIntl } from "react-intl";
|
||||||
|
|
||||||
import { unwrap } from "@/SnortUtils";
|
import { unwrap } from "@/Utils";
|
||||||
import { formatShort } from "@/Number";
|
import { formatShort } from "@/Utils/Number";
|
||||||
import Text from "@/Element/Text";
|
import Text from "@/Components/Text/Text";
|
||||||
import ProfileImage from "@/Element/User/ProfileImage";
|
import ProfileImage from "@/Components/User/ProfileImage";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
|
|
||||||
import messages from "../messages";
|
import messages from "../messages";
|
@ -3,9 +3,9 @@ import { useState } from "react";
|
|||||||
import { HexKey } from "@snort/system";
|
import { HexKey } from "@snort/system";
|
||||||
import { useUserProfile } from "@snort/system-react";
|
import { useUserProfile } from "@snort/system-react";
|
||||||
|
|
||||||
import SendSats from "@/Element/SendSats";
|
import SendSats from "@/Components/SendSats/SendSats";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { ZapTarget } from "@/Zapper";
|
import { ZapTarget } from "@/Utils/Zapper";
|
||||||
|
|
||||||
const ZapButton = ({
|
const ZapButton = ({
|
||||||
pubkey,
|
pubkey,
|
@ -2,12 +2,12 @@ import "./ZapGoal.css";
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { NostrEvent, NostrLink } from "@snort/system";
|
import { NostrEvent, NostrLink } from "@snort/system";
|
||||||
import useZapsFeed from "@/Feed/ZapsFeed";
|
import useZapsFeed from "@/Feed/ZapsFeed";
|
||||||
import { formatShort } from "@/Number";
|
import { formatShort } from "@/Utils/Number";
|
||||||
import { findTag } from "@/SnortUtils";
|
import { findTag } from "@/Utils";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import SendSats from "../SendSats";
|
import SendSats from "../SendSats/SendSats";
|
||||||
import { Zapper } from "@/Zapper";
|
import { Zapper } from "@/Utils/Zapper";
|
||||||
import Progress from "@/Element/Progress";
|
import Progress from "@/Components/Progress/Progress";
|
||||||
import { FormattedNumber } from "react-intl";
|
import { FormattedNumber } from "react-intl";
|
||||||
|
|
||||||
export function ZapGoal({ ev }: { ev: NostrEvent }) {
|
export function ZapGoal({ ev }: { ev: NostrEvent }) {
|
@ -2,7 +2,7 @@ import { NostrLink } from "@snort/system";
|
|||||||
import { useReactions } from "@snort/system-react";
|
import { useReactions } from "@snort/system-react";
|
||||||
|
|
||||||
import { useArticles } from "@/Feed/ArticlesFeed";
|
import { useArticles } from "@/Feed/ArticlesFeed";
|
||||||
import { orderDescending } from "@/SnortUtils";
|
import { orderDescending } from "@/Utils";
|
||||||
import Note from "../Event/Note";
|
import Note from "../Event/Note";
|
||||||
import { useContext } from "react";
|
import { useContext } from "react";
|
||||||
import { DeckContext } from "@/Pages/DeckLayout";
|
import { DeckContext } from "@/Pages/DeckLayout";
|
@ -1,5 +1,5 @@
|
|||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { LoginStore } from "@/Login";
|
import { LoginStore } from "@/Utils/Login";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import { useCallback } from "react";
|
import { useCallback } from "react";
|
||||||
|
|
@ -2,7 +2,7 @@ import { NostrLink, NoteCollection, ReqFilter, RequestBuilder } from "@snort/sys
|
|||||||
import { useReactions, useRequestBuilder } from "@snort/system-react";
|
import { useReactions, useRequestBuilder } from "@snort/system-react";
|
||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
|
|
||||||
import { TimelineRenderer } from "@/Element/Feed/TimelineRenderer";
|
import { TimelineRenderer } from "@/Components/Feed/TimelineRenderer";
|
||||||
|
|
||||||
export function GenericFeed({ link }: { link: NostrLink }) {
|
export function GenericFeed({ link }: { link: NostrLink }) {
|
||||||
const sub = useMemo(() => {
|
const sub = useMemo(() => {
|
@ -1,9 +1,9 @@
|
|||||||
import { NostrLink, TaggedNostrEvent } from "@snort/system";
|
import { NostrLink, TaggedNostrEvent } from "@snort/system";
|
||||||
import { MouseEvent } from "react";
|
import { MouseEvent } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import getEventMedia from "@/Element/Event/getEventMedia";
|
import getEventMedia from "@/Components/Event/getEventMedia";
|
||||||
import { ProxyImg } from "@/Element/ProxyImg";
|
import { ProxyImg } from "@/Components/ProxyImg";
|
||||||
|
|
||||||
const ImageGridItem = (props: { event: TaggedNostrEvent; onClick: (e: MouseEvent) => void }) => {
|
const ImageGridItem = (props: { event: TaggedNostrEvent; onClick: (e: MouseEvent) => void }) => {
|
||||||
const { event, onClick } = props;
|
const { event, onClick } = props;
|
@ -5,8 +5,8 @@ import { Menu, MenuItem } from "@szhsin/react-menu";
|
|||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
|
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { Newest } from "@/Login";
|
import { Newest } from "@/Utils/Login";
|
||||||
|
|
||||||
export type RootTab =
|
export type RootTab =
|
||||||
| "following"
|
| "following"
|
@ -3,13 +3,13 @@ import { FormattedMessage } from "react-intl";
|
|||||||
import { useCallback, useMemo, useState } from "react";
|
import { useCallback, useMemo, useState } from "react";
|
||||||
import { TaggedNostrEvent, EventKind, socialGraphInstance } from "@snort/system";
|
import { TaggedNostrEvent, EventKind, socialGraphInstance } from "@snort/system";
|
||||||
|
|
||||||
import { dedupeByPubkey, findTag } from "@/SnortUtils";
|
import { dedupeByPubkey, findTag } from "@/Utils";
|
||||||
import useTimelineFeed, { TimelineFeed, TimelineSubject } from "@/Feed/TimelineFeed";
|
import useTimelineFeed, { TimelineFeed, TimelineSubject } from "@/Feed/TimelineFeed";
|
||||||
import useModeration from "@/Hooks/useModeration";
|
import useModeration from "@/Hooks/useModeration";
|
||||||
import { LiveStreams } from "@/Element/LiveStreams";
|
import { LiveStreams } from "@/Components/LiveStream/LiveStreams";
|
||||||
import { unixNow } from "@snort/shared";
|
import { unixNow } from "@snort/shared";
|
||||||
import { TimelineRenderer } from "@/Element/Feed/TimelineRenderer";
|
import { TimelineRenderer } from "@/Components/Feed/TimelineRenderer";
|
||||||
import { DisplayAs, DisplayAsSelector } from "@/Element/Feed/DisplayAsSelector";
|
import { DisplayAs, DisplayAsSelector } from "@/Components/Feed/DisplayAsSelector";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
|
|
||||||
export interface TimelineProps {
|
export interface TimelineProps {
|
@ -5,15 +5,15 @@ import { EventKind, NostrEvent, NostrLink, TaggedNostrEvent } from "@snort/syste
|
|||||||
import { unixNow } from "@snort/shared";
|
import { unixNow } from "@snort/shared";
|
||||||
import { SnortContext, useReactions } from "@snort/system-react";
|
import { SnortContext, useReactions } from "@snort/system-react";
|
||||||
|
|
||||||
import { dedupeByPubkey, findTag, orderDescending } from "@/SnortUtils";
|
import { dedupeByPubkey, findTag, orderDescending } from "@/Utils";
|
||||||
import useModeration from "@/Hooks/useModeration";
|
import useModeration from "@/Hooks/useModeration";
|
||||||
import { FollowsFeed } from "@/Cache";
|
import { FollowsFeed } from "@/Cache";
|
||||||
import { LiveStreams } from "@/Element/LiveStreams";
|
import { LiveStreams } from "@/Components/LiveStream/LiveStreams";
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import useHashtagsFeed from "@/Feed/HashtagsFeed";
|
import useHashtagsFeed from "@/Feed/HashtagsFeed";
|
||||||
import { ShowMoreInView } from "@/Element/Event/ShowMore";
|
import { ShowMoreInView } from "@/Components/Event/ShowMore";
|
||||||
import { TimelineRenderer } from "@/Element/Feed/TimelineRenderer";
|
import { TimelineRenderer } from "@/Components/Feed/TimelineRenderer";
|
||||||
import { DisplayAs, DisplayAsSelector } from "@/Element/Feed/DisplayAsSelector";
|
import { DisplayAs, DisplayAsSelector } from "@/Components/Feed/DisplayAsSelector";
|
||||||
|
|
||||||
export interface TimelineFollowsProps {
|
export interface TimelineFollowsProps {
|
||||||
postsOnly: boolean;
|
postsOnly: boolean;
|
@ -1,8 +1,8 @@
|
|||||||
import { ReactNode, useCallback } from "react";
|
import { ReactNode, useCallback } from "react";
|
||||||
import { TaggedNostrEvent } from "@snort/system";
|
import { TaggedNostrEvent } from "@snort/system";
|
||||||
|
|
||||||
import Note from "@/Element/Event/Note";
|
import Note from "@/Components/Event/Note";
|
||||||
import { findTag } from "@/SnortUtils";
|
import { findTag } from "@/Utils";
|
||||||
|
|
||||||
export interface TimelineFragment {
|
export interface TimelineFragment {
|
||||||
events: Array<TaggedNostrEvent>;
|
events: Array<TaggedNostrEvent>;
|
@ -1,15 +1,15 @@
|
|||||||
import { useInView } from "react-intersection-observer";
|
import { useInView } from "react-intersection-observer";
|
||||||
import ProfileImage from "@/Element/User/ProfileImage";
|
import ProfileImage from "@/Components/User/ProfileImage";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
import Icon from "@/Icons/Icon";
|
import Icon from "@/Components/Icons/Icon";
|
||||||
import { TaggedNostrEvent } from "@snort/system";
|
import { TaggedNostrEvent } from "@snort/system";
|
||||||
import { ReactNode, useEffect, useMemo, useRef, useState } from "react";
|
import { ReactNode, useEffect, useMemo, useRef, useState } from "react";
|
||||||
import { TimelineFragment } from "@/Element/Feed/TimelineFragment";
|
import { TimelineFragment } from "@/Components/Feed/TimelineFragment";
|
||||||
import { DisplayAs } from "@/Element/Feed/DisplayAsSelector";
|
import { DisplayAs } from "@/Components/Feed/DisplayAsSelector";
|
||||||
import { SpotlightThreadModal } from "@/Element/Spotlight/SpotlightThreadModal";
|
import { SpotlightThreadModal } from "@/Components/Spotlight/SpotlightThreadModal";
|
||||||
import ImageGridItem from "@/Element/Feed/ImageGridItem";
|
import ImageGridItem from "@/Components/Feed/ImageGridItem";
|
||||||
import ErrorBoundary from "@/Element/ErrorBoundary";
|
import ErrorBoundary from "@/Components/ErrorBoundary";
|
||||||
import getEventMedia from "@/Element/Event/getEventMedia";
|
import getEventMedia from "@/Components/Event/getEventMedia";
|
||||||
|
|
||||||
export interface TimelineRendererProps {
|
export interface TimelineRendererProps {
|
||||||
frags: Array<TimelineFragment>;
|
frags: Array<TimelineFragment>;
|
@ -2,8 +2,8 @@ import { useCallback, useMemo } from "react";
|
|||||||
import { TaggedNostrEvent } from "@snort/system";
|
import { TaggedNostrEvent } from "@snort/system";
|
||||||
|
|
||||||
import useTimelineFeed, { TimelineFeed } from "@/Feed/TimelineFeed";
|
import useTimelineFeed, { TimelineFeed } from "@/Feed/TimelineFeed";
|
||||||
import FollowListBase from "@/Element/User/FollowListBase";
|
import FollowListBase from "@/Components/User/FollowListBase";
|
||||||
import PageSpinner from "@/Element/PageSpinner";
|
import PageSpinner from "@/Components/PageSpinner";
|
||||||
import useModeration from "@/Hooks/useModeration";
|
import useModeration from "@/Hooks/useModeration";
|
||||||
|
|
||||||
export default function UsersFeed({ keyword, sortPopular = true }: { keyword: string; sortPopular?: boolean }) {
|
export default function UsersFeed({ keyword, sortPopular = true }: { keyword: string; sortPopular?: boolean }) {
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user