diff --git a/packages/app/src/Element/AsyncButton.css b/packages/app/src/Element/Button/AsyncButton.css similarity index 100% rename from packages/app/src/Element/AsyncButton.css rename to packages/app/src/Element/Button/AsyncButton.css diff --git a/packages/app/src/Element/AsyncButton.tsx b/packages/app/src/Element/Button/AsyncButton.tsx similarity index 95% rename from packages/app/src/Element/AsyncButton.tsx rename to packages/app/src/Element/Button/AsyncButton.tsx index 862ca45f3..1876b10bb 100644 --- a/packages/app/src/Element/AsyncButton.tsx +++ b/packages/app/src/Element/Button/AsyncButton.tsx @@ -1,6 +1,6 @@ import "./AsyncButton.css"; import React, { ForwardedRef } from "react"; -import Spinner from "../Icons/Spinner"; +import Spinner from "../../Icons/Spinner"; import useLoading from "@/Hooks/useLoading"; import classNames from "classnames"; diff --git a/packages/app/src/Element/AsyncIcon.tsx b/packages/app/src/Element/Button/AsyncIcon.tsx similarity index 100% rename from packages/app/src/Element/AsyncIcon.tsx rename to packages/app/src/Element/Button/AsyncIcon.tsx diff --git a/packages/app/src/Element/BackButton.css b/packages/app/src/Element/Button/BackButton.css similarity index 100% rename from packages/app/src/Element/BackButton.css rename to packages/app/src/Element/Button/BackButton.css diff --git a/packages/app/src/Element/BackButton.tsx b/packages/app/src/Element/Button/BackButton.tsx similarity index 94% rename from packages/app/src/Element/BackButton.tsx rename to packages/app/src/Element/Button/BackButton.tsx index 41d990d9a..2680c01b3 100644 --- a/packages/app/src/Element/BackButton.tsx +++ b/packages/app/src/Element/Button/BackButton.tsx @@ -3,7 +3,7 @@ import { useIntl } from "react-intl"; import Icon from "@/Icons/Icon"; -import messages from "./messages"; +import messages from "../messages"; interface BackButtonProps { text?: string; diff --git a/packages/app/src/Element/IconButton.tsx b/packages/app/src/Element/Button/IconButton.tsx similarity index 100% rename from packages/app/src/Element/IconButton.tsx rename to packages/app/src/Element/Button/IconButton.tsx diff --git a/packages/app/src/Element/LogoutButton.tsx b/packages/app/src/Element/Button/LogoutButton.tsx similarity index 94% rename from packages/app/src/Element/LogoutButton.tsx rename to packages/app/src/Element/Button/LogoutButton.tsx index b002d0c89..0d138a668 100644 --- a/packages/app/src/Element/LogoutButton.tsx +++ b/packages/app/src/Element/Button/LogoutButton.tsx @@ -3,7 +3,7 @@ import { useNavigate } from "react-router-dom"; import { logout } from "@/Login"; import useLogin from "@/Hooks/useLogin"; -import messages from "./messages"; +import messages from "../messages"; export default function LogoutButton() { const navigate = useNavigate(); diff --git a/packages/app/src/Element/Chat/WriteMessage.tsx b/packages/app/src/Element/Chat/WriteMessage.tsx index 1340cf475..9c4e78927 100644 --- a/packages/app/src/Element/Chat/WriteMessage.tsx +++ b/packages/app/src/Element/Chat/WriteMessage.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import useEventPublisher from "@/Hooks/useEventPublisher"; import Textarea from "../Textarea"; import { Chat } from "@/chat"; -import { AsyncIcon } from "@/Element/AsyncIcon"; +import { AsyncIcon } from "@/Element/Button/AsyncIcon"; export default function WriteMessage({ chat }: { chat: Chat }) { const [msg, setMsg] = useState(""); diff --git a/packages/app/src/Element/CodeBlock.css b/packages/app/src/Element/CodeBlock.css deleted file mode 100644 index af8a21e86..000000000 --- a/packages/app/src/Element/CodeBlock.css +++ /dev/null @@ -1,14 +0,0 @@ -.codeblock { - overflow: auto; - position: relative; -} - -.codeblock pre { - overflow: auto; - line-height: 1.4; - font-size: var(--font-size); -} - -.hljs { - background: #f6f8fa; -} diff --git a/packages/app/src/Element/CodeBlock.tsx b/packages/app/src/Element/CodeBlock.tsx deleted file mode 100644 index 825c1ccbe..000000000 --- a/packages/app/src/Element/CodeBlock.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { useEffect } from "react"; -import "highlight.js/styles/github.css"; -import "./CodeBlock.css"; - -const CodeBlock = ({ content, language }: { content: string; language?: string }) => { - useEffect(() => { - const importHljs = async () => { - const hljs = (await import("highlight.js")).default; - hljs.highlightAll(); - }; - - importHljs(); - }); - - return ( -
-
-        {content.trim()}
-      
-
- ); -}; - -export default CodeBlock; diff --git a/packages/app/src/Element/HyperText.tsx b/packages/app/src/Element/Embed/HyperText.tsx similarity index 100% rename from packages/app/src/Element/HyperText.tsx rename to packages/app/src/Element/Embed/HyperText.tsx diff --git a/packages/app/src/Element/Embed/PubkeyList.tsx b/packages/app/src/Element/Embed/PubkeyList.tsx index 86bb60ddd..cbba09cc8 100644 --- a/packages/app/src/Element/Embed/PubkeyList.tsx +++ b/packages/app/src/Element/Embed/PubkeyList.tsx @@ -4,7 +4,7 @@ import { LNURL } from "@snort/shared"; import { dedupe, findTag, hexToBech32, getDisplayName } from "@/SnortUtils"; import FollowListBase from "@/Element/User/FollowListBase"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { useWallet } from "@/Wallet"; import { Toastore } from "@/Toaster"; import { UserCache } from "@/Cache"; diff --git a/packages/app/src/Element/Event/Create/NoteBroadcaster.tsx b/packages/app/src/Element/Event/Create/NoteBroadcaster.tsx index 9b8860b54..d59dd5385 100644 --- a/packages/app/src/Element/Event/Create/NoteBroadcaster.tsx +++ b/packages/app/src/Element/Event/Create/NoteBroadcaster.tsx @@ -3,7 +3,7 @@ import { FormattedMessage, useIntl } from "react-intl"; import { unwrap } from "@snort/shared"; import { NostrEvent, OkResponse } from "@snort/system"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import Icon from "@/Icons/Icon"; import { getRelayName, sanitizeRelayUrl } from "@/SnortUtils"; import { removeRelay } from "@/Login"; diff --git a/packages/app/src/Element/Event/Create/NoteCreator.tsx b/packages/app/src/Element/Event/Create/NoteCreator.tsx index 8dee72b5a..e3b0f2c93 100644 --- a/packages/app/src/Element/Event/Create/NoteCreator.tsx +++ b/packages/app/src/Element/Event/Create/NoteCreator.tsx @@ -16,8 +16,8 @@ import Note from "@/Element/Event/Note"; import { ClipboardEventHandler, DragEvent } from "react"; import useLogin from "@/Hooks/useLogin"; import { GetPowWorker } from "@/index"; -import AsyncButton from "@/Element/AsyncButton"; -import { AsyncIcon } from "@/Element/AsyncIcon"; +import AsyncButton from "@/Element/Button/AsyncButton"; +import { AsyncIcon } from "@/Element/Button/AsyncIcon"; import { fetchNip05Pubkey } from "@snort/shared"; import { ZapTarget } from "@/Zapper"; import { useNoteCreator } from "@/State/NoteCreator"; diff --git a/packages/app/src/Element/Event/NoteFooter.tsx b/packages/app/src/Element/Event/NoteFooter.tsx index 5ba905ac4..2df349e81 100644 --- a/packages/app/src/Element/Event/NoteFooter.tsx +++ b/packages/app/src/Element/Event/NoteFooter.tsx @@ -12,7 +12,7 @@ import useEventPublisher from "@/Hooks/useEventPublisher"; import { delay, findTag, getDisplayName } from "@/SnortUtils"; import SendSats from "@/Element/SendSats"; import { ZapsSummary } from "@/Element/Event/Zap"; -import { AsyncIcon, AsyncIconProps } from "@/Element/AsyncIcon"; +import { AsyncIcon, AsyncIconProps } from "@/Element/Button/AsyncIcon"; import { useWallet } from "@/Wallet"; import useLogin from "@/Hooks/useLogin"; diff --git a/packages/app/src/Element/Event/Thread.tsx b/packages/app/src/Element/Event/Thread.tsx index 7e45e30a6..79a1e0b42 100644 --- a/packages/app/src/Element/Event/Thread.tsx +++ b/packages/app/src/Element/Event/Thread.tsx @@ -6,7 +6,7 @@ import { TaggedNostrEvent, u256, NostrPrefix, EventExt, parseNostrLink, NostrLin import classNames from "classnames"; import { getAllLinkReactions, getLinkReactions } from "@/SnortUtils"; -import BackButton from "@/Element/BackButton"; +import BackButton from "@/Element/Button/BackButton"; import Note from "@/Element/Event/Note"; import NoteGhost from "@/Element/Event/NoteGhost"; import Collapsed from "@/Element/Collapsed"; diff --git a/packages/app/src/Element/Articles.tsx b/packages/app/src/Element/Feed/Articles.tsx similarity index 96% rename from packages/app/src/Element/Articles.tsx rename to packages/app/src/Element/Feed/Articles.tsx index 0cc436cb0..4cd8d6ca8 100644 --- a/packages/app/src/Element/Articles.tsx +++ b/packages/app/src/Element/Feed/Articles.tsx @@ -3,7 +3,7 @@ import { useReactions } from "@snort/system-react"; import { useArticles } from "@/Feed/ArticlesFeed"; import { orderDescending } from "@/SnortUtils"; -import Note from "./Event/Note"; +import Note from "../Event/Note"; import { useContext } from "react"; import { DeckContext } from "@/Pages/DeckLayout"; diff --git a/packages/app/src/Element/RootTabs.css b/packages/app/src/Element/Feed/RootTabs.css similarity index 100% rename from packages/app/src/Element/RootTabs.css rename to packages/app/src/Element/Feed/RootTabs.css diff --git a/packages/app/src/Element/RootTabs.tsx b/packages/app/src/Element/Feed/RootTabs.tsx similarity index 100% rename from packages/app/src/Element/RootTabs.tsx rename to packages/app/src/Element/Feed/RootTabs.tsx diff --git a/packages/app/src/Element/FixedTabs.css b/packages/app/src/Element/FixedTabs.css deleted file mode 100644 index 2c568719d..000000000 --- a/packages/app/src/Element/FixedTabs.css +++ /dev/null @@ -1,34 +0,0 @@ -.fixed-tabs { - display: flex; - align-items: center; - flex-direction: row; - white-space: nowrap; - text-align: center; - user-select: none; -} - -.fixed-tabs > a { - flex: 1; - padding: 16px; - color: var(--font-tertiary-color); - font-weight: 500; - font-size: 16px; - letter-spacing: 0.2px; - cursor: pointer; - text-decoration: none; -} - -.fixed-tabs > a.active { - border-bottom: 1px solid var(--highlight); - color: var(--font-color); -} - -.fixed-tabs > a.disabled { - opacity: 0.3; - cursor: not-allowed; - pointer-events: none; -} - -.fixed-tabs > a:hover { - border-color: var(--highlight); -} diff --git a/packages/app/src/Element/FixedTabs.tsx b/packages/app/src/Element/FixedTabs.tsx deleted file mode 100644 index edf2a1f3a..000000000 --- a/packages/app/src/Element/FixedTabs.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import "./FixedTabs.css"; -import { ReactNode } from "react"; - -export function FixedTabs({ children }: { children: ReactNode }) { - return
{children}
; -} diff --git a/packages/app/src/Element/Logo.tsx b/packages/app/src/Element/Logo.tsx deleted file mode 100644 index 7647e2ab4..000000000 --- a/packages/app/src/Element/Logo.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { useNavigate } from "react-router-dom"; - -const Logo = () => { - const navigate = useNavigate(); - return ( -

navigate("/")}> - {CONFIG.appNameCapitalized} -

- ); -}; - -export default Logo; diff --git a/packages/app/src/Element/Nip5Service.tsx b/packages/app/src/Element/Nip5Service.tsx index 96ad72908..d49487b10 100644 --- a/packages/app/src/Element/Nip5Service.tsx +++ b/packages/app/src/Element/Nip5Service.tsx @@ -14,7 +14,7 @@ import { HandleRegisterResponse, CheckRegisterResponse, } from "@/Nip05/ServiceProvider"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import SendSats from "@/Element/SendSats"; import Copy from "@/Element/Copy"; import { useUserProfile } from "@snort/system-react"; diff --git a/packages/app/src/Element/Offline.tsx b/packages/app/src/Element/Offline.tsx index eb5b8b979..afb5e1ea1 100644 --- a/packages/app/src/Element/Offline.tsx +++ b/packages/app/src/Element/Offline.tsx @@ -1,5 +1,5 @@ import Icon from "@/Icons/Icon"; -import AsyncButton from "./AsyncButton"; +import AsyncButton from "./Button/AsyncButton"; import { FormattedMessage } from "react-intl"; import classNames from "classnames"; diff --git a/packages/app/src/Element/PinPrompt.tsx b/packages/app/src/Element/PinPrompt.tsx index c6b01d485..5703a2152 100644 --- a/packages/app/src/Element/PinPrompt.tsx +++ b/packages/app/src/Element/PinPrompt.tsx @@ -8,7 +8,7 @@ import { EventPublisher, InvalidPinError, PinEncrypted } from "@snort/system"; import useEventPublisher from "@/Hooks/useEventPublisher"; import { LoginStore, createPublisher, sessionNeedsPin } from "@/Login"; import Modal from "./Modal"; -import AsyncButton from "./AsyncButton"; +import AsyncButton from "./Button/AsyncButton"; import { GetPowWorker } from "@/index"; export function PinPrompt({ diff --git a/packages/app/src/Element/ReBroadcaster.tsx b/packages/app/src/Element/ReBroadcaster.tsx index e28fdd01e..88dbe1d1f 100644 --- a/packages/app/src/Element/ReBroadcaster.tsx +++ b/packages/app/src/Element/ReBroadcaster.tsx @@ -6,7 +6,7 @@ import { SnortContext } from "@snort/system-react"; import Modal from "@/Element/Modal"; import messages from "./messages"; import useLogin from "@/Hooks/useLogin"; -import AsyncButton from "./AsyncButton"; +import AsyncButton from "./Button/AsyncButton"; export function ReBroadcaster({ onClose, ev }: { onClose: () => void; ev: TaggedNostrEvent }) { const [selected, setSelected] = useState>(); diff --git a/packages/app/src/Element/Relay/Relay.tsx b/packages/app/src/Element/Relay/Relay.tsx index 0cb3dbdef..1f2fd660f 100644 --- a/packages/app/src/Element/Relay/Relay.tsx +++ b/packages/app/src/Element/Relay/Relay.tsx @@ -11,7 +11,7 @@ import { getRelayName, unwrap } from "@/SnortUtils"; import useLogin from "@/Hooks/useLogin"; import { removeRelay, setRelays } from "@/Login"; import { RelayFavicon } from "./RelaysMetadata"; -import { AsyncIcon } from "@/Element/AsyncIcon"; +import { AsyncIcon } from "@/Element/Button/AsyncIcon"; export interface RelayProps { addr: string; diff --git a/packages/app/src/Element/SendSats.tsx b/packages/app/src/Element/SendSats.tsx index 176f80b36..6245ae10d 100644 --- a/packages/app/src/Element/SendSats.tsx +++ b/packages/app/src/Element/SendSats.tsx @@ -15,7 +15,7 @@ import Copy from "@/Element/Copy"; import { debounce } from "@/SnortUtils"; import { LNWallet, useWallet } from "@/Wallet"; import useLogin from "@/Hooks/useLogin"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { ZapTarget, ZapTargetResult, Zapper } from "@/Zapper"; import messages from "./messages"; diff --git a/packages/app/src/Element/Text.tsx b/packages/app/src/Element/Text.tsx index 0bf8efe18..00c13ff3b 100644 --- a/packages/app/src/Element/Text.tsx +++ b/packages/app/src/Element/Text.tsx @@ -5,7 +5,7 @@ import classNames from "classnames"; import Invoice from "@/Element/Embed/Invoice"; import Hashtag from "@/Element/Embed/Hashtag"; -import HyperText from "@/Element/HyperText"; +import HyperText from "@/Element/Embed/HyperText"; import CashuNuts from "@/Element/Embed/CashuNuts"; import RevealMedia from "./Event/RevealMedia"; import { ProxyImg } from "./ProxyImg"; @@ -262,7 +262,6 @@ export default function Text({ chunks.push(); } if (element.type === "code_block") { - //chunks.push(); chunks.push(
{element.content}
); } if (element.type === "text") { diff --git a/packages/app/src/Element/TrendingHashtags.tsx b/packages/app/src/Element/Trending/TrendingHashtags.tsx similarity index 97% rename from packages/app/src/Element/TrendingHashtags.tsx rename to packages/app/src/Element/Trending/TrendingHashtags.tsx index e7739395a..f72abf365 100644 --- a/packages/app/src/Element/TrendingHashtags.tsx +++ b/packages/app/src/Element/Trending/TrendingHashtags.tsx @@ -2,7 +2,7 @@ import { ReactNode, useEffect, useState } from "react"; import PageSpinner from "@/Element/PageSpinner"; import NostrBandApi from "@/External/NostrBand"; -import { ErrorOrOffline } from "./ErrorOrOffline"; +import { ErrorOrOffline } from "../ErrorOrOffline"; import { HashTagHeader } from "@/Pages/HashTagsPage"; import { useLocale } from "@/IntlProvider"; import classNames from "classnames"; diff --git a/packages/app/src/Element/TrendingPosts.tsx b/packages/app/src/Element/Trending/TrendingPosts.tsx similarity index 100% rename from packages/app/src/Element/TrendingPosts.tsx rename to packages/app/src/Element/Trending/TrendingPosts.tsx diff --git a/packages/app/src/Element/TrendingUsers.tsx b/packages/app/src/Element/Trending/TrendingUsers.tsx similarity index 95% rename from packages/app/src/Element/TrendingUsers.tsx rename to packages/app/src/Element/Trending/TrendingUsers.tsx index db8ecf29f..2257bea2d 100644 --- a/packages/app/src/Element/TrendingUsers.tsx +++ b/packages/app/src/Element/Trending/TrendingUsers.tsx @@ -4,7 +4,7 @@ import { HexKey } from "@snort/system"; import FollowListBase from "@/Element/User/FollowListBase"; import PageSpinner from "@/Element/PageSpinner"; import NostrBandApi from "@/External/NostrBand"; -import { ErrorOrOffline } from "./ErrorOrOffline"; +import { ErrorOrOffline } from "../ErrorOrOffline"; export default function TrendingUsers({ title, count = Infinity }: { title?: ReactNode; count?: number }) { const [userList, setUserList] = useState(); diff --git a/packages/app/src/Element/User/FollowButton.tsx b/packages/app/src/Element/User/FollowButton.tsx index 9c7c6c9fe..6d39da61d 100644 --- a/packages/app/src/Element/User/FollowButton.tsx +++ b/packages/app/src/Element/User/FollowButton.tsx @@ -4,7 +4,7 @@ import { HexKey } from "@snort/system"; import useEventPublisher from "@/Hooks/useEventPublisher"; import { parseId } from "@/SnortUtils"; import useLogin from "@/Hooks/useLogin"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import messages from "../messages"; import { FollowsFeed } from "@/Cache"; diff --git a/packages/app/src/Element/User/FollowListBase.tsx b/packages/app/src/Element/User/FollowListBase.tsx index fe56c2271..8a3589b68 100644 --- a/packages/app/src/Element/User/FollowListBase.tsx +++ b/packages/app/src/Element/User/FollowListBase.tsx @@ -9,7 +9,7 @@ import useLogin from "@/Hooks/useLogin"; import messages from "../messages"; import { FollowsFeed } from "@/Cache"; -import AsyncButton from "../AsyncButton"; +import AsyncButton from "../Button/AsyncButton"; import { setFollows } from "@/Login"; export interface FollowListBaseProps { diff --git a/packages/app/src/Pages/DeckLayout.tsx b/packages/app/src/Pages/DeckLayout.tsx index 014fc12cf..b1293330c 100644 --- a/packages/app/src/Pages/DeckLayout.tsx +++ b/packages/app/src/Pages/DeckLayout.tsx @@ -7,15 +7,15 @@ import { NostrLink, TaggedNostrEvent } from "@snort/system"; import useLoginFeed from "@/Feed/LoginFeed"; import { useLoginRelays } from "@/Hooks/useLoginRelays"; import { useTheme } from "@/Hooks/useTheme"; -import Articles from "@/Element/Articles"; +import Articles from "@/Element/Feed/Articles"; import TimelineFollows from "@/Element/Feed/TimelineFollows"; import { transformTextCached } from "@/Hooks/useTextTransformCache"; import Icon from "@/Icons/Icon"; -import NotificationsPage from "./Notifications"; +import NotificationsPage from "./Notifications/Notifications"; import useImgProxy from "@/Hooks/useImgProxy"; import Modal from "@/Element/Modal"; import { Thread } from "@/Element/Event/Thread"; -import { RootTabs } from "@/Element/RootTabs"; +import { RootTabs } from "@/Element/Feed/RootTabs"; import { SpotlightMedia } from "@/Element/SpotlightMedia"; import { ThreadContext, ThreadContextWrapper } from "@/Hooks/useThreadContext"; import Toaster from "@/Toaster"; diff --git a/packages/app/src/Pages/Discover.tsx b/packages/app/src/Pages/Discover.tsx index 466d1b7aa..48ad3fb47 100644 --- a/packages/app/src/Pages/Discover.tsx +++ b/packages/app/src/Pages/Discover.tsx @@ -1,7 +1,7 @@ import SuggestedProfiles from "@/Element/SuggestedProfiles"; import { Tab, TabElement } from "@/Element/Tabs"; -import TrendingNotes from "@/Element/TrendingPosts"; -import TrendingUsers from "@/Element/TrendingUsers"; +import TrendingNotes from "@/Element/Trending/TrendingPosts"; +import TrendingUsers from "@/Element/Trending/TrendingUsers"; import { useState } from "react"; import { useIntl } from "react-intl"; diff --git a/packages/app/src/Pages/DonatePage.tsx b/packages/app/src/Pages/DonatePage.tsx index 4b9ee623b..838748319 100644 --- a/packages/app/src/Pages/DonatePage.tsx +++ b/packages/app/src/Pages/DonatePage.tsx @@ -8,7 +8,7 @@ import ZapButton from "@/Element/Event/ZapButton"; import { bech32ToHex } from "@/SnortUtils"; import SnortApi, { RevenueSplit, RevenueToday } from "@/External/SnortApi"; import Modal from "@/Element/Modal"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import QrCode from "@/Element/QrCode"; import Copy from "@/Element/Copy"; diff --git a/packages/app/src/Pages/ErrorPage.tsx b/packages/app/src/Pages/ErrorPage.tsx index 25aa09ea3..6e5ccc6db 100644 --- a/packages/app/src/Pages/ErrorPage.tsx +++ b/packages/app/src/Pages/ErrorPage.tsx @@ -1,5 +1,5 @@ import { db } from "@/Db"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { FormattedMessage } from "react-intl"; import { useRouteError } from "react-router-dom"; diff --git a/packages/app/src/Pages/HashTagsPage.tsx b/packages/app/src/Pages/HashTagsPage.tsx index cd7c542c1..de3bd2862 100644 --- a/packages/app/src/Pages/HashTagsPage.tsx +++ b/packages/app/src/Pages/HashTagsPage.tsx @@ -9,7 +9,7 @@ import Timeline from "@/Element/Feed/Timeline"; import useEventPublisher from "@/Hooks/useEventPublisher"; import useLogin from "@/Hooks/useLogin"; import { setTags } from "@/Login"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import ProfileImage from "@/Element/User/ProfileImage"; import classNames from "classnames"; import { formatShort } from "@/Number"; diff --git a/packages/app/src/Pages/Layout/RightColumn.tsx b/packages/app/src/Pages/Layout/RightColumn.tsx index ab577b04d..0d1986a38 100644 --- a/packages/app/src/Pages/Layout/RightColumn.tsx +++ b/packages/app/src/Pages/Layout/RightColumn.tsx @@ -1,7 +1,7 @@ import SearchBox from "@/Element/SearchBox"; -import TrendingUsers from "@/Element/TrendingUsers"; -import TrendingHashtags from "@/Element/TrendingHashtags"; -import TrendingNotes from "@/Element/TrendingPosts"; +import TrendingUsers from "@/Element/Trending/TrendingUsers"; +import TrendingHashtags from "@/Element/Trending/TrendingHashtags"; +import TrendingNotes from "@/Element/Trending/TrendingPosts"; import { FormattedMessage } from "react-intl"; import classNames from "classnames"; diff --git a/packages/app/src/Pages/Messages/MessagesPage.tsx b/packages/app/src/Pages/Messages/MessagesPage.tsx index cc88a8dfb..9d15b64a4 100644 --- a/packages/app/src/Pages/Messages/MessagesPage.tsx +++ b/packages/app/src/Pages/Messages/MessagesPage.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { useNavigate, useParams } from "react-router-dom"; -import UnreadCount from "@/Element/UnreadCount"; +import UnreadCount from "@/Pages/Messages/UnreadCount"; import ProfileImage from "@/Element/User/ProfileImage"; import { parseId } from "@/SnortUtils"; import NoteToSelf from "@/Element/User/NoteToSelf"; diff --git a/packages/app/src/Element/UnreadCount.css b/packages/app/src/Pages/Messages/UnreadCount.css similarity index 100% rename from packages/app/src/Element/UnreadCount.css rename to packages/app/src/Pages/Messages/UnreadCount.css diff --git a/packages/app/src/Element/UnreadCount.tsx b/packages/app/src/Pages/Messages/UnreadCount.tsx similarity index 100% rename from packages/app/src/Element/UnreadCount.tsx rename to packages/app/src/Pages/Messages/UnreadCount.tsx diff --git a/packages/app/src/Element/NotificationChart.tsx b/packages/app/src/Pages/Notifications/NotificationChart.tsx similarity index 98% rename from packages/app/src/Element/NotificationChart.tsx rename to packages/app/src/Pages/Notifications/NotificationChart.tsx index bb235e863..490d1b1c1 100644 --- a/packages/app/src/Element/NotificationChart.tsx +++ b/packages/app/src/Pages/Notifications/NotificationChart.tsx @@ -7,8 +7,8 @@ import { TaggedNostrEvent, EventKind } from "@snort/system"; import classNames from "classnames"; import { useState, useMemo } from "react"; import { FormattedMessage } from "react-intl"; -import { AsyncIcon } from "./AsyncIcon"; -import Tabs, { Tab } from "./Tabs"; +import { AsyncIcon } from "../../Element/Button/AsyncIcon"; +import Tabs, { Tab } from "../../Element/Tabs"; import { Bar, BarChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts"; interface StatSlot { diff --git a/packages/app/src/Pages/Notifications.css b/packages/app/src/Pages/Notifications/Notifications.css similarity index 100% rename from packages/app/src/Pages/Notifications.css rename to packages/app/src/Pages/Notifications/Notifications.css diff --git a/packages/app/src/Pages/Notifications.tsx b/packages/app/src/Pages/Notifications/Notifications.tsx similarity index 98% rename from packages/app/src/Pages/Notifications.tsx rename to packages/app/src/Pages/Notifications/Notifications.tsx index 451283c42..0e6be0b0d 100644 --- a/packages/app/src/Pages/Notifications.tsx +++ b/packages/app/src/Pages/Notifications/Notifications.tsx @@ -20,7 +20,7 @@ import { LiveEvent } from "@/Element/LiveEvent"; import ProfilePreview from "@/Element/User/ProfilePreview"; import { ShowMoreInView } from "@/Element/Event/ShowMore"; import PageSpinner from "@/Element/PageSpinner"; -const NotificationGraph = lazy(() => import("@/Element/NotificationChart")); +const NotificationGraph = lazy(() => import("@/Pages/Notifications/NotificationChart")); function notificationContext(ev: TaggedNostrEvent) { switch (ev.kind) { diff --git a/packages/app/src/Pages/Profile/ProfilePage.tsx b/packages/app/src/Pages/Profile/ProfilePage.tsx index 3e60f43d2..973985e90 100644 --- a/packages/app/src/Pages/Profile/ProfilePage.tsx +++ b/packages/app/src/Pages/Profile/ProfilePage.tsx @@ -35,7 +35,7 @@ import ProfileImage from "@/Element/User/ProfileImage"; import BlockList from "@/Element/User/BlockList"; import MutedList from "@/Element/User/MutedList"; import FollowsList from "@/Element/User/FollowListBase"; -import IconButton from "@/Element/IconButton"; +import IconButton from "@/Element/Button/IconButton"; import FollowsYou from "@/Element/User/FollowsYou"; import QrCode from "@/Element/QrCode"; import Modal from "@/Element/Modal"; diff --git a/packages/app/src/Pages/Root.tsx b/packages/app/src/Pages/Root.tsx index c2d593b2e..a8fac6282 100644 --- a/packages/app/src/Pages/Root.tsx +++ b/packages/app/src/Pages/Root.tsx @@ -10,16 +10,16 @@ import { TimelineSubject } from "@/Feed/TimelineFeed"; import { debounce, getRelayName, sha256 } from "@/SnortUtils"; import useLogin from "@/Hooks/useLogin"; import Discover from "@/Pages/Discover"; -import TrendingUsers from "@/Element/TrendingUsers"; -import TrendingNotes from "@/Element/TrendingPosts"; +import TrendingUsers from "@/Element/Trending/TrendingUsers"; +import TrendingNotes from "@/Element/Trending/TrendingPosts"; import HashTagsPage from "@/Pages/HashTagsPage"; import SuggestedProfiles from "@/Element/SuggestedProfiles"; import { TaskList } from "@/Tasks/TaskList"; import TimelineFollows from "@/Element/Feed/TimelineFollows"; -import { RootTabs } from "@/Element/RootTabs"; +import { RootTabs } from "@/Element/Feed/RootTabs"; import { DeckContext } from "@/Pages/DeckLayout"; import { TopicsPage } from "./TopicsPage"; -import TrendingHashtags from "@/Element/TrendingHashtags"; +import TrendingHashtags from "@/Element/Trending/TrendingHashtags"; import messages from "./messages"; diff --git a/packages/app/src/Pages/SearchPage.tsx b/packages/app/src/Pages/SearchPage.tsx index 901be0887..a7a16bfb6 100644 --- a/packages/app/src/Pages/SearchPage.tsx +++ b/packages/app/src/Pages/SearchPage.tsx @@ -5,9 +5,9 @@ import Tabs, { Tab } from "@/Element/Tabs"; import { useEffect, useState } from "react"; import { debounce } from "@/SnortUtils"; import { router } from "@/index"; -import TrendingUsers from "@/Element/TrendingUsers"; +import TrendingUsers from "@/Element/Trending/TrendingUsers"; -import TrendingNotes from "@/Element/TrendingPosts"; +import TrendingNotes from "@/Element/Trending/TrendingPosts"; const NOTES = 0; const PROFILES = 1; diff --git a/packages/app/src/Pages/WalletPage.tsx b/packages/app/src/Pages/WalletPage.tsx index 89a751669..927504643 100644 --- a/packages/app/src/Pages/WalletPage.tsx +++ b/packages/app/src/Pages/WalletPage.tsx @@ -6,7 +6,7 @@ import { FormattedMessage, FormattedNumber, useIntl } from "react-intl"; import NoteTime from "@/Element/Event/NoteTime"; import { WalletInvoice, Sats, WalletInfo, WalletInvoiceState, useWallet, LNWallet, Wallets } from "@/Wallet"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { unwrap } from "@/SnortUtils"; import { WebLNWallet } from "@/Wallet/WebLN"; import Icon from "@/Icons/Icon"; diff --git a/packages/app/src/Pages/ZapPool.tsx b/packages/app/src/Pages/ZapPool.tsx index 04ab3a402..f310dffdf 100644 --- a/packages/app/src/Pages/ZapPool.tsx +++ b/packages/app/src/Pages/ZapPool.tsx @@ -10,7 +10,7 @@ import useLogin from "@/Hooks/useLogin"; import { UploaderServices } from "@/Upload"; import { bech32ToHex, getRelayName, unwrap } from "@/SnortUtils"; import { ZapPoolController, ZapPoolRecipient, ZapPoolRecipientType } from "@/ZapPoolController"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { useWallet } from "@/Wallet"; import useEventPublisher from "@/Hooks/useEventPublisher"; diff --git a/packages/app/src/Pages/onboarding/discover.tsx b/packages/app/src/Pages/onboarding/discover.tsx index e60edcf7c..02be6590e 100644 --- a/packages/app/src/Pages/onboarding/discover.tsx +++ b/packages/app/src/Pages/onboarding/discover.tsx @@ -1,8 +1,8 @@ import { FormattedMessage } from "react-intl"; import { useLocation, useNavigate } from "react-router-dom"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { NewUserState } from "."; -import TrendingUsers from "@/Element/TrendingUsers"; +import TrendingUsers from "@/Element/Trending/TrendingUsers"; export function Discover() { const location = useLocation(); diff --git a/packages/app/src/Pages/onboarding/moderation.tsx b/packages/app/src/Pages/onboarding/moderation.tsx index f99ace7cd..7fb6240e9 100644 --- a/packages/app/src/Pages/onboarding/moderation.tsx +++ b/packages/app/src/Pages/onboarding/moderation.tsx @@ -3,7 +3,7 @@ import { FormattedMessage } from "react-intl"; import { useNavigate } from "react-router-dom"; import { unixNowMs } from "@snort/shared"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { appendDedupe } from "@/SnortUtils"; import { ToggleSwitch } from "@/Icons/Toggle"; import { updateAppData } from "@/Login"; diff --git a/packages/app/src/Pages/onboarding/profile.tsx b/packages/app/src/Pages/onboarding/profile.tsx index 6cf15d165..967f035c4 100644 --- a/packages/app/src/Pages/onboarding/profile.tsx +++ b/packages/app/src/Pages/onboarding/profile.tsx @@ -1,4 +1,4 @@ -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import AvatarEditor from "@/Element/User/AvatarEditor"; import { useContext, useState } from "react"; import { FormattedMessage } from "react-intl"; diff --git a/packages/app/src/Pages/onboarding/start.tsx b/packages/app/src/Pages/onboarding/start.tsx index e229b498c..7ab824d57 100644 --- a/packages/app/src/Pages/onboarding/start.tsx +++ b/packages/app/src/Pages/onboarding/start.tsx @@ -3,7 +3,7 @@ import { useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { unwrap } from "@snort/shared"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import Icon from "@/Icons/Icon"; import { NewUserState } from "."; import { LoginSessionType, LoginStore } from "@/Login"; diff --git a/packages/app/src/Pages/onboarding/topics.tsx b/packages/app/src/Pages/onboarding/topics.tsx index b3d1fdfed..4c81bc00b 100644 --- a/packages/app/src/Pages/onboarding/topics.tsx +++ b/packages/app/src/Pages/onboarding/topics.tsx @@ -1,7 +1,7 @@ import { ReactNode, useState } from "react"; import { FormattedMessage } from "react-intl"; import { useNavigate } from "react-router-dom"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import classNames from "classnames"; import { appendDedupe } from "@/SnortUtils"; import useEventPublisher from "@/Hooks/useEventPublisher"; diff --git a/packages/app/src/Pages/settings/Cache.tsx b/packages/app/src/Pages/settings/Cache.tsx index 5d3c1b95f..0ea0d57b1 100644 --- a/packages/app/src/Pages/settings/Cache.tsx +++ b/packages/app/src/Pages/settings/Cache.tsx @@ -10,7 +10,7 @@ import { UserCache, UserRelays, } from "@/Cache"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { ReactNode, useSyncExternalStore } from "react"; import { FormattedMessage, FormattedNumber } from "react-intl"; diff --git a/packages/app/src/Pages/settings/Profile.tsx b/packages/app/src/Pages/settings/Profile.tsx index 7e9445d1b..0909f47aa 100644 --- a/packages/app/src/Pages/settings/Profile.tsx +++ b/packages/app/src/Pages/settings/Profile.tsx @@ -7,7 +7,7 @@ import { useUserProfile } from "@snort/system-react"; import useEventPublisher from "@/Hooks/useEventPublisher"; import { openFile } from "@/SnortUtils"; import useFileUpload from "@/Upload"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { UserCache } from "@/Cache"; import useLogin from "@/Hooks/useLogin"; import Icon from "@/Icons/Icon"; diff --git a/packages/app/src/Pages/settings/Relays.tsx b/packages/app/src/Pages/settings/Relays.tsx index c03ecd0d4..eacfeec81 100644 --- a/packages/app/src/Pages/settings/Relays.tsx +++ b/packages/app/src/Pages/settings/Relays.tsx @@ -7,7 +7,7 @@ import Relay from "@/Element/Relay/Relay"; import useEventPublisher from "@/Hooks/useEventPublisher"; import useLogin from "@/Hooks/useLogin"; import { setRelays } from "@/Login"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import SnortApi, { RelayDistance } from "@/External/SnortApi"; import { getCountry, getRelayName, sanitizeRelayUrl } from "@/SnortUtils"; import { formatShort } from "@/Number"; diff --git a/packages/app/src/Pages/settings/handle/LNAddress.tsx b/packages/app/src/Pages/settings/handle/LNAddress.tsx index 6c9179d00..60fb73a08 100644 --- a/packages/app/src/Pages/settings/handle/LNAddress.tsx +++ b/packages/app/src/Pages/settings/handle/LNAddress.tsx @@ -3,7 +3,7 @@ import { FormattedMessage, useIntl } from "react-intl"; import { LNURL } from "@snort/shared"; import { ApiHost } from "@/Const"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import useEventPublisher from "@/Hooks/useEventPublisher"; import SnortServiceProvider, { ForwardType, ManageHandle } from "@/Nip05/SnortServiceProvider"; diff --git a/packages/app/src/Pages/settings/handle/TransferHandle.tsx b/packages/app/src/Pages/settings/handle/TransferHandle.tsx index ea9899b9f..d57d4c3b1 100644 --- a/packages/app/src/Pages/settings/handle/TransferHandle.tsx +++ b/packages/app/src/Pages/settings/handle/TransferHandle.tsx @@ -3,7 +3,7 @@ import { FormattedMessage, useIntl } from "react-intl"; import { useNavigate } from "react-router-dom"; import { ApiHost } from "@/Const"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import useEventPublisher from "@/Hooks/useEventPublisher"; import { ServiceError } from "@/Nip05/ServiceProvider"; import SnortServiceProvider, { ManageHandle } from "@/Nip05/SnortServiceProvider"; diff --git a/packages/app/src/Pages/settings/wallet/Cashu.tsx b/packages/app/src/Pages/settings/wallet/Cashu.tsx index ec457f64e..65597d88b 100644 --- a/packages/app/src/Pages/settings/wallet/Cashu.tsx +++ b/packages/app/src/Pages/settings/wallet/Cashu.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { v4 as uuid } from "uuid"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { unwrap } from "@/SnortUtils"; import { WalletConfig, WalletKind, Wallets } from "@/Wallet"; import { useNavigate } from "react-router-dom"; diff --git a/packages/app/src/Pages/settings/wallet/LNC.tsx b/packages/app/src/Pages/settings/wallet/LNC.tsx index 78eac6b03..46fbd36ea 100644 --- a/packages/app/src/Pages/settings/wallet/LNC.tsx +++ b/packages/app/src/Pages/settings/wallet/LNC.tsx @@ -3,7 +3,7 @@ import { FormattedMessage, useIntl } from "react-intl"; import { useNavigate } from "react-router-dom"; import { v4 as uuid } from "uuid"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { LNWallet, WalletInfo, WalletKind, Wallets } from "@/Wallet"; import { unwrap } from "@/SnortUtils"; diff --git a/packages/app/src/Pages/settings/wallet/LNDHub.tsx b/packages/app/src/Pages/settings/wallet/LNDHub.tsx index 56f54b5f2..61761b05f 100644 --- a/packages/app/src/Pages/settings/wallet/LNDHub.tsx +++ b/packages/app/src/Pages/settings/wallet/LNDHub.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { v4 as uuid } from "uuid"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { unwrap } from "@/SnortUtils"; import LNDHubWallet from "@/Wallet/LNDHub"; import { WalletConfig, WalletKind, Wallets } from "@/Wallet"; diff --git a/packages/app/src/Pages/settings/wallet/NWC.tsx b/packages/app/src/Pages/settings/wallet/NWC.tsx index c04db480f..68ac26c6c 100644 --- a/packages/app/src/Pages/settings/wallet/NWC.tsx +++ b/packages/app/src/Pages/settings/wallet/NWC.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { v4 as uuid } from "uuid"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import { unwrap } from "@/SnortUtils"; import { WalletConfig, WalletKind, Wallets } from "@/Wallet"; import { Link, useNavigate } from "react-router-dom"; diff --git a/packages/app/src/Pages/subscribe/RenewSub.tsx b/packages/app/src/Pages/subscribe/RenewSub.tsx index 5bdc369f0..efd99eb57 100644 --- a/packages/app/src/Pages/subscribe/RenewSub.tsx +++ b/packages/app/src/Pages/subscribe/RenewSub.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { unixNow, unwrap } from "@snort/shared"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import SendSats from "@/Element/SendSats"; import useEventPublisher from "@/Hooks/useEventPublisher"; import SnortApi, { Subscription, SubscriptionError } from "@/External/SnortApi"; diff --git a/packages/app/src/Pages/subscribe/index.tsx b/packages/app/src/Pages/subscribe/index.tsx index 5a584db48..a2b642386 100644 --- a/packages/app/src/Pages/subscribe/index.tsx +++ b/packages/app/src/Pages/subscribe/index.tsx @@ -7,7 +7,7 @@ import { RouteObject } from "react-router-dom"; import { formatShort } from "@/Number"; import { LockedFeatures, Plans, SubscriptionType } from "@/Subscription"; import ManageSubscriptionPage from "@/Pages/subscribe/ManageSubscription"; -import AsyncButton from "@/Element/AsyncButton"; +import AsyncButton from "@/Element/Button/AsyncButton"; import useEventPublisher from "@/Hooks/useEventPublisher"; import SnortApi, { SubscriptionError, SubscriptionErrorCode } from "@/External/SnortApi"; import SendSats from "@/Element/SendSats"; diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx index 1eee4e60d..6c4ae348a 100644 --- a/packages/app/src/index.tsx +++ b/packages/app/src/index.tsx @@ -31,7 +31,7 @@ import { getCountry, unwrap } from "@/SnortUtils"; import Layout from "@/Pages/Layout"; import ProfilePage from "@/Pages/Profile/ProfilePage"; import { RootRoutes, RootTabRoutes } from "@/Pages/Root"; -import NotificationsPage from "@/Pages/Notifications"; +import NotificationsPage from "@/Pages/Notifications/Notifications"; import SettingsPage, { SettingsRoutes } from "@/Pages/SettingsPage"; import ErrorPage from "@/Pages/ErrorPage"; import NostrAddressPage from "@/Pages/NostrAddressPage";