reorganize code into smaller files & dirs
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Martti Malmi 2024-01-04 15:48:19 +02:00
parent 5ea2eb711f
commit afa6d39a56
321 changed files with 671 additions and 671 deletions

View File

@ -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() {

View File

@ -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() {

View File

@ -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;

View File

@ -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() {

View File

@ -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> {

View File

@ -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 };

View File

@ -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";

View File

@ -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;

View File

@ -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";

View File

@ -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 }) {

View File

@ -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 {

View File

@ -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";

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -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<{

View File

@ -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 {

View File

@ -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";

View File

@ -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();

View File

@ -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;

View File

@ -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";

View File

@ -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 }) {

View File

@ -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 }) => {

View File

@ -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);

View File

@ -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";

View File

@ -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();

View File

@ -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 }) {

View File

@ -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,

View File

@ -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();

View File

@ -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";

View File

@ -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";

View File

@ -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();

View File

@ -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 (

View File

@ -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";

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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";

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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,

View File

@ -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 }) {

View File

@ -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";

View File

@ -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";

View File

@ -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(() => {

View File

@ -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;

View File

@ -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"

View File

@ -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 {

View File

@ -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;

View File

@ -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>;

View File

@ -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>;

View File

@ -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