From 59821df735feb9661123a9583e64f382209414be Mon Sep 17 00:00:00 2001 From: hzrd149 Date: Thu, 28 Dec 2023 08:54:13 -0600 Subject: [PATCH] Fix broken quote repost in drawer reorganize providers --- src/app.tsx | 18 +++--- .../common-menu-items/delete-event.tsx | 2 +- .../common-menu-items/mute-user.tsx | 2 +- src/components/common-menu-items/pin-note.tsx | 2 +- .../embed-event/event-types/embedded-dm.tsx | 2 +- .../embed-event/event-types/embedded-note.tsx | 2 +- .../event-types/embedded-reaction.tsx | 2 +- .../event-types/embedded-stream.tsx | 2 +- .../event-types/embedded-torrent-comment.tsx | 2 +- src/components/embed-types/image.tsx | 4 +- src/components/embed-types/video.tsx | 2 +- .../event-reactions/common-hooks.tsx | 2 +- src/components/layout/desktop-side-nav.tsx | 2 +- src/components/layout/index.tsx | 2 +- src/components/layout/mobile-bottom-nav.tsx | 2 +- src/components/magic-textarea.tsx | 4 +- src/components/message-block.tsx | 2 +- src/components/message-bubble.tsx | 2 +- .../note/components/add-reaction-button.tsx | 2 +- .../note/components/bookmark-button.tsx | 2 +- .../note/components/note-reactions.tsx | 2 +- .../note/components/quote-repost-button.tsx | 2 +- .../note/components/repost-modal.tsx | 2 +- src/components/note/index.tsx | 8 +-- .../note/note-content-with-warning.tsx | 2 +- src/components/note/note-relays.tsx | 2 +- src/components/npub-autocomplete.tsx | 2 +- src/components/open-graph-card.tsx | 2 +- .../people-list-selection.tsx | 2 +- src/components/post-modal/index.tsx | 8 +-- .../relay-selection-button.tsx | 2 +- src/components/search-modal/index.tsx | 2 +- src/components/sensitive-content-warning.tsx | 4 +- .../generic-note-timeline/article-note.tsx | 2 +- .../generic-timeline-note.tsx | 2 +- .../generic-note-timeline/index.tsx | 5 +- .../relay-recommendation.tsx | 2 +- .../generic-note-timeline/reply-note.tsx | 2 +- .../generic-note-timeline/repost-note.tsx | 4 +- .../generic-note-timeline/stream-note.tsx | 2 +- src/components/timeline-page/index.tsx | 2 +- .../timeline-page/media-timeline/index.tsx | 6 +- .../timeline-page/timeline-health/index.tsx | 2 +- src/components/user-follow-button.tsx | 4 +- src/helpers/nostr/post.ts | 2 +- src/hooks/use-textarea-upload-file.ts | 2 +- ...e-timeline-cursor-intersection-callback.ts | 2 +- src/hooks/use-user-mute-functions.ts | 2 +- src/index.tsx | 2 +- src/providers/drawer-sub-view-provider.tsx | 34 ++++++----- .../{ => global}/breakpoint-provider.tsx | 0 .../{ => global}/dycryption-provider.tsx | 6 +- src/providers/{ => global}/emoji-provider.tsx | 10 ++-- src/providers/global/index.tsx | 38 +++++++++++++ .../{ => global}/notification-timeline.tsx | 14 ++--- .../{ => global}/signing-provider.tsx | 8 +-- .../{ => global}/user-directory-provider.tsx | 2 +- src/providers/index.tsx | 57 ------------------- .../{ => local}/additional-relay-context.tsx | 4 +- src/providers/{ => local}/expanded.tsx | 0 .../{ => local}/intersection-observer.tsx | 2 +- .../{ => local}/people-list-provider.tsx | 12 ++-- .../{ => local}/relay-selection-provider.tsx | 4 +- src/providers/{ => local}/thread-provider.tsx | 6 +- src/providers/{ => local}/trust.tsx | 8 +-- .../{ => route}/delete-event-provider.tsx | 24 ++++---- src/providers/route/index.tsx | 17 ++++++ src/providers/{ => route}/invoice-modal.tsx | 10 ++-- .../{ => route}/mute-modal-provider.tsx | 28 ++++----- .../{ => route}/post-modal-provider.tsx | 4 +- .../{ => route}/require-current-account.tsx | 7 +-- src/views/badges/badge-details.tsx | 2 +- src/views/badges/browse.tsx | 4 +- .../badges/components/badge-award-card.tsx | 2 +- src/views/badges/components/badge-card.tsx | 2 +- src/views/badges/components/badge-menu.tsx | 2 +- src/views/badges/index.tsx | 4 +- src/views/channels/channel.tsx | 6 +- .../channels/components/channel-card.tsx | 2 +- .../components/channel-join-button.tsx | 2 +- .../components/channel-message-content.tsx | 2 +- .../components/channel-metadata-drawer.tsx | 4 +- .../channels/components/send-message-form.tsx | 4 +- src/views/channels/index.tsx | 6 +- .../communities/components/community-card.tsx | 2 +- .../components/community-create-modal.tsx | 2 +- .../components/community-join-button.tsx | 2 +- src/views/communities/explore.tsx | 2 +- src/views/communities/index.tsx | 4 +- src/views/community/community-home.tsx | 6 +- .../components/community-edit-modal.tsx | 2 +- .../components/community-members-modal.tsx | 2 +- .../community/components/community-post.tsx | 2 +- .../components/post-vote-buttions.tsx | 4 +- src/views/community/find-by-name.tsx | 2 +- src/views/community/views/newest.tsx | 2 +- src/views/community/views/pending.tsx | 6 +- src/views/community/views/trending.tsx | 2 +- src/views/dms/chat.tsx | 8 +-- .../dms/components/decrypt-placeholder.tsx | 2 +- .../dms/components/direct-message-content.tsx | 2 +- .../dms/components/send-message-form.tsx | 4 +- src/views/dms/components/thread-button.tsx | 2 +- src/views/dms/components/thread-drawer.tsx | 4 +- src/views/dms/index.tsx | 4 +- src/views/dvm-feed/components/feed-status.tsx | 2 +- src/views/dvm-feed/feed.tsx | 4 +- src/views/dvm-feed/index.tsx | 2 +- src/views/emoji-packs/browse.tsx | 4 +- .../emoji-packs/components/create-modal.tsx | 2 +- .../components/emoji-pack-card.tsx | 2 +- .../components/emoji-pack-favorite-button.tsx | 2 +- src/views/emoji-packs/emoji-pack.tsx | 4 +- src/views/files/index.tsx | 10 ++-- src/views/goals/browse.tsx | 4 +- src/views/goals/components/goal-card.tsx | 2 +- src/views/hashtag/index.tsx | 4 +- src/views/home/index.tsx | 4 +- src/views/lists/browse.tsx | 4 +- src/views/lists/components/list-card.tsx | 2 +- .../lists/components/list-favorite-button.tsx | 2 +- src/views/lists/components/new-list-modal.tsx | 2 +- src/views/lists/components/user-card.tsx | 2 +- src/views/lists/list/index.tsx | 4 +- src/views/notifications/index.tsx | 10 ++-- src/views/notifications/notification-item.tsx | 4 +- src/views/notifications/threads.tsx | 10 ++-- src/views/profile/index.tsx | 2 +- .../relays/components/relay-review-note.tsx | 2 +- .../relays/components/relay-share-button.tsx | 2 +- src/views/relays/popular.tsx | 2 +- src/views/relays/relay/index.tsx | 2 +- src/views/relays/relay/relay-notes.tsx | 2 +- src/views/relays/relay/relay-review-form.tsx | 2 +- src/views/relays/relay/relay-reviews.tsx | 2 +- src/views/relays/reviews.tsx | 4 +- src/views/search/article-results.tsx | 6 +- src/views/search/community-results.tsx | 8 ++- src/views/search/index.tsx | 4 +- src/views/search/note-results.tsx | 6 +- src/views/search/profile-results.tsx | 6 +- src/views/settings/display-settings.tsx | 2 +- src/views/streams/components/stream-card.tsx | 2 +- .../components/stream-share-button.tsx | 2 +- .../streams/components/stream-zap-button.tsx | 2 +- .../streams/components/streamer-cards.tsx | 2 +- src/views/streams/dashboard/chat-card.tsx | 2 +- src/views/streams/dashboard/index.tsx | 4 +- src/views/streams/dashboard/users-card.tsx | 2 +- src/views/streams/index.tsx | 6 +- src/views/streams/stream/index.tsx | 6 +- .../stream/stream-chat/chat-message.tsx | 4 +- .../streams/stream/stream-chat/index.tsx | 2 +- .../stream/stream-chat/stream-chat-form.tsx | 6 +- .../stream-chat/use-stream-chat-timeline.ts | 2 +- .../stream/stream-chat/zap-message.tsx | 4 +- src/views/things/index.tsx | 6 +- src/views/things/upload/index.tsx | 2 +- src/views/thread/components/reply-form.tsx | 6 +- src/views/thread/components/thread-post.tsx | 6 +- src/views/thread/index.tsx | 2 +- src/views/tools/dm-timeline.tsx | 6 +- src/views/tools/network-dm-graph.tsx | 4 +- src/views/tools/network-mute-graph.tsx | 2 +- .../satellite-cdn/delete-file-button.tsx | 2 +- src/views/tools/satellite-cdn/index.tsx | 2 +- .../tools/satellite-cdn/share-file-button.tsx | 2 +- .../transform-note/text-to-speech/index.tsx | 2 +- .../transform-note/translation/index.tsx | 2 +- src/views/tools/wot-test.tsx | 2 +- .../torrents/components/torrent-table-row.tsx | 2 +- .../torrents/components/torrents-comments.tsx | 6 +- src/views/torrents/index.tsx | 6 +- src/views/torrents/new.tsx | 4 +- src/views/user/about/index.tsx | 2 +- src/views/user/about/user-joined-channels.tsx | 4 +- .../user/about/user-joined-communities.tsx | 4 +- src/views/user/about/user-pinned-events.tsx | 2 +- src/views/user/about/user-stats-accordion.tsx | 2 +- src/views/user/articles.tsx | 4 +- src/views/user/components/header.tsx | 2 +- src/views/user/components/user-zap-button.tsx | 2 +- src/views/user/dms.tsx | 6 +- src/views/user/emoji-packs.tsx | 4 +- src/views/user/followers.tsx | 4 +- src/views/user/following.tsx | 2 +- src/views/user/goals.tsx | 4 +- src/views/user/index.tsx | 2 +- src/views/user/lists.tsx | 4 +- src/views/user/muted-by.tsx | 4 +- src/views/user/notes.tsx | 2 +- src/views/user/reactions.tsx | 8 ++- src/views/user/relays.tsx | 2 +- src/views/user/reports.tsx | 6 +- src/views/user/streams.tsx | 4 +- src/views/user/torrents.tsx | 4 +- src/views/user/tracks.tsx | 6 +- src/views/user/zaps.tsx | 6 +- 198 files changed, 459 insertions(+), 425 deletions(-) rename src/providers/{ => global}/breakpoint-provider.tsx (100%) rename src/providers/{ => global}/dycryption-provider.tsx (96%) rename src/providers/{ => global}/emoji-provider.tsx (81%) create mode 100644 src/providers/global/index.tsx rename src/providers/{ => global}/notification-timeline.tsx (75%) rename src/providers/{ => global}/signing-provider.tsx (89%) rename src/providers/{ => global}/user-directory-provider.tsx (98%) delete mode 100644 src/providers/index.tsx rename src/providers/{ => local}/additional-relay-context.tsx (86%) rename src/providers/{ => local}/expanded.tsx (100%) rename src/providers/{ => local}/intersection-observer.tsx (98%) rename src/providers/{ => local}/people-list-provider.tsx (85%) rename src/providers/{ => local}/relay-selection-provider.tsx (93%) rename src/providers/{ => local}/thread-provider.tsx (90%) rename src/providers/{ => local}/trust.tsx (76%) rename src/providers/{ => route}/delete-event-provider.tsx (87%) create mode 100644 src/providers/route/index.tsx rename src/providers/{ => route}/invoice-modal.tsx (84%) rename src/providers/{ => route}/mute-modal-provider.tsx (92%) rename src/providers/{ => route}/post-modal-provider.tsx (88%) rename src/providers/{ => route}/require-current-account.tsx (84%) diff --git a/src/app.tsx b/src/app.tsx index 98862fa99..c07db22ca 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -5,7 +5,6 @@ import { css, Global } from "@emotion/react"; import { ErrorBoundary } from "./components/error-boundary"; import Layout from "./components/layout"; -import { PageProviders } from "./providers"; import DrawerSubViewProvider from "./providers/drawer-sub-view-provider"; import useSetColorMode from "./hooks/use-set-color-mode"; @@ -79,6 +78,7 @@ import DVMFeedView from "./views/dvm-feed/feed"; import TransformNoteView from "./views/tools/transform-note"; import SatelliteCDNView from "./views/tools/satellite-cdn"; import OtherStuffView from "./views/other-stuff"; +import { RouteProviders } from "./providers/route"; const UserTracksTab = lazy(() => import("./views/user/tracks")); const ToolsHomeView = lazy(() => import("./views/tools")); @@ -133,24 +133,24 @@ const RootPage = () => { useSetColorMode(); return ( - + }> - + ); }; const NoLayoutPage = () => { return ( - + }> - + ); }; @@ -183,17 +183,17 @@ const router = createHashRouter([ { path: "streams/moderation", element: ( - + - + ), }, { path: "streams/:naddr", element: ( - + - + ), }, { diff --git a/src/components/common-menu-items/delete-event.tsx b/src/components/common-menu-items/delete-event.tsx index 8b62db3ab..d2518e54f 100644 --- a/src/components/common-menu-items/delete-event.tsx +++ b/src/components/common-menu-items/delete-event.tsx @@ -1,7 +1,7 @@ import { MenuItem } from "@chakra-ui/react"; import { NostrEvent } from "../../types/nostr-event"; -import { useDeleteEventContext } from "../../providers/delete-event-provider"; +import { useDeleteEventContext } from "../../providers/route/delete-event-provider"; import useCurrentAccount from "../../hooks/use-current-account"; import { TrashIcon } from "../icons"; diff --git a/src/components/common-menu-items/mute-user.tsx b/src/components/common-menu-items/mute-user.tsx index b7eb2de16..af3be9100 100644 --- a/src/components/common-menu-items/mute-user.tsx +++ b/src/components/common-menu-items/mute-user.tsx @@ -3,7 +3,7 @@ import { MenuItem } from "@chakra-ui/react"; import { NostrEvent } from "../../types/nostr-event"; import useCurrentAccount from "../../hooks/use-current-account"; import { MuteIcon, UnmuteIcon } from "../icons"; -import { useMuteModalContext } from "../../providers/mute-modal-provider"; +import { useMuteModalContext } from "../../providers/route/mute-modal-provider"; import useUserMuteFunctions from "../../hooks/use-user-mute-functions"; export default function MuteUserMenuItem({ event }: { event: NostrEvent }) { diff --git a/src/components/common-menu-items/pin-note.tsx b/src/components/common-menu-items/pin-note.tsx index aeaacd2e3..426acb81d 100644 --- a/src/components/common-menu-items/pin-note.tsx +++ b/src/components/common-menu-items/pin-note.tsx @@ -3,7 +3,7 @@ import { MenuItem, useToast } from "@chakra-ui/react"; import dayjs from "dayjs"; import useCurrentAccount from "../../hooks/use-current-account"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import useUserPinList from "../../hooks/use-user-pin-list"; import { DraftNostrEvent, NostrEvent, isETag } from "../../types/nostr-event"; import { PIN_LIST_KIND, listAddEvent, listRemoveEvent } from "../../helpers/nostr/lists"; diff --git a/src/components/embed-event/event-types/embedded-dm.tsx b/src/components/embed-event/event-types/embedded-dm.tsx index 8cb2ef565..4fdf06736 100644 --- a/src/components/embed-event/event-types/embedded-dm.tsx +++ b/src/components/embed-event/event-types/embedded-dm.tsx @@ -1,7 +1,7 @@ import { Card, CardBody, CardHeader, CardProps, LinkBox, Text } from "@chakra-ui/react"; import { NostrEvent } from "../../../types/nostr-event"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import UserAvatarLink from "../../user-avatar-link"; import UserLink from "../../user-link"; import Timestamp from "../../timestamp"; diff --git a/src/components/embed-event/event-types/embedded-note.tsx b/src/components/embed-event/event-types/embedded-note.tsx index 807aeed32..1b7089515 100644 --- a/src/components/embed-event/event-types/embedded-note.tsx +++ b/src/components/embed-event/event-types/embedded-note.tsx @@ -9,7 +9,7 @@ import { UserDnsIdentityIcon } from "../../user-dns-identity-icon"; import useSubject from "../../../hooks/use-subject"; import appSettings from "../../../services/settings/app-settings"; import EventVerificationIcon from "../../event-verification-icon"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import { NoteLink } from "../../note-link"; import Timestamp from "../../timestamp"; import { getSharableEventAddress } from "../../../helpers/nip19"; diff --git a/src/components/embed-event/event-types/embedded-reaction.tsx b/src/components/embed-event/event-types/embedded-reaction.tsx index 6cd3eea81..469b6a2fe 100644 --- a/src/components/embed-event/event-types/embedded-reaction.tsx +++ b/src/components/embed-event/event-types/embedded-reaction.tsx @@ -1,7 +1,7 @@ import { Card, CardProps, Flex, LinkBox, Spacer, Text } from "@chakra-ui/react"; import { NostrEvent } from "../../../types/nostr-event"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import UserAvatarLink from "../../user-avatar-link"; import UserLink from "../../user-link"; import Timestamp from "../../timestamp"; diff --git a/src/components/embed-event/event-types/embedded-stream.tsx b/src/components/embed-event/event-types/embedded-stream.tsx index d9a8b024f..5720f8c58 100644 --- a/src/components/embed-event/event-types/embedded-stream.tsx +++ b/src/components/embed-event/event-types/embedded-stream.tsx @@ -8,7 +8,7 @@ import UserLink from "../../user-link"; import UserAvatar from "../../user-avatar"; import useEventNaddr from "../../../hooks/use-event-naddr"; import Timestamp from "../../timestamp"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; export default function EmbeddedStream({ event, ...props }: Omit & { event: NostrEvent }) { const stream = parseStreamEvent(event); diff --git a/src/components/embed-event/event-types/embedded-torrent-comment.tsx b/src/components/embed-event/event-types/embedded-torrent-comment.tsx index 632dfcbd8..b0775d9e3 100644 --- a/src/components/embed-event/event-types/embedded-torrent-comment.tsx +++ b/src/components/embed-event/event-types/embedded-torrent-comment.tsx @@ -7,7 +7,7 @@ import UserLink from "../../user-link"; import useSubject from "../../../hooks/use-subject"; import appSettings from "../../../services/settings/app-settings"; import EventVerificationIcon from "../../event-verification-icon"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import Timestamp from "../../timestamp"; import { getNeventForEventId } from "../../../helpers/nip19"; import { CompactNoteContent } from "../../compact-note-content"; diff --git a/src/components/embed-types/image.tsx b/src/components/embed-types/image.tsx index a863ac813..4a7c0f640 100644 --- a/src/components/embed-types/image.tsx +++ b/src/components/embed-types/image.tsx @@ -2,7 +2,7 @@ import { MouseEventHandler, MutableRefObject, forwardRef, useCallback, useMemo, import { Image, ImageProps, Link, LinkProps } from "@chakra-ui/react"; import appSettings from "../../services/settings/app-settings"; -import { useTrusted } from "../../providers/trust"; +import { useTrusted } from "../../providers/local/trust"; import { EmbedableContent, defaultGetLocation } from "../../helpers/embeds"; import { getMatchLink } from "../../helpers/regexp"; import { useRegisterSlide } from "../lightbox-provider"; @@ -10,7 +10,7 @@ import { isImageURL } from "../../helpers/url"; import PhotoGallery, { PhotoWithoutSize } from "../photo-gallery"; import { NostrEvent } from "../../types/nostr-event"; import useAppSettings from "../../hooks/use-app-settings"; -import { useBreakpointValue } from "../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../providers/global/breakpoint-provider"; import useElementBlur from "../../hooks/use-element-blur"; export type TrustImageProps = ImageProps; diff --git a/src/components/embed-types/video.tsx b/src/components/embed-types/video.tsx index fdb597b8f..266fbdadf 100644 --- a/src/components/embed-types/video.tsx +++ b/src/components/embed-types/video.tsx @@ -2,7 +2,7 @@ import styled from "@emotion/styled"; import { isVideoURL } from "../../helpers/url"; import useAppSettings from "../../hooks/use-app-settings"; import useElementBlur from "../../hooks/use-element-blur"; -import { useTrusted } from "../../providers/trust"; +import { useTrusted } from "../../providers/local/trust"; const StyledVideo = styled.video` max-width: 30rem; diff --git a/src/components/event-reactions/common-hooks.tsx b/src/components/event-reactions/common-hooks.tsx index 76d2042a6..dba210604 100644 --- a/src/components/event-reactions/common-hooks.tsx +++ b/src/components/event-reactions/common-hooks.tsx @@ -3,7 +3,7 @@ import { useToast } from "@chakra-ui/react"; import { ReactionGroup, draftEventReaction } from "../../helpers/nostr/reactions"; import useCurrentAccount from "../../hooks/use-current-account"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import { NostrEvent } from "../../types/nostr-event"; import clientRelaysService from "../../services/client-relays"; import NostrPublishAction from "../../classes/nostr-publish-action"; diff --git a/src/components/layout/desktop-side-nav.tsx b/src/components/layout/desktop-side-nav.tsx index da0f2fdd5..f9123b021 100644 --- a/src/components/layout/desktop-side-nav.tsx +++ b/src/components/layout/desktop-side-nav.tsx @@ -7,7 +7,7 @@ import useCurrentAccount from "../../hooks/use-current-account"; import AccountSwitcher from "./account-switcher"; import PublishLog from "../publish-log"; import NavItems from "./nav-items"; -import { PostModalContext } from "../../providers/post-modal-provider"; +import { PostModalContext } from "../../providers/route/post-modal-provider"; import { WritingIcon } from "../icons"; const hideScrollbar = css` diff --git a/src/components/layout/index.tsx b/src/components/layout/index.tsx index a9d7c19f7..b0ac07a6c 100644 --- a/src/components/layout/index.tsx +++ b/src/components/layout/index.tsx @@ -9,7 +9,7 @@ import MobileBottomNav from "./mobile-bottom-nav"; import useSubject from "../../hooks/use-subject"; import accountService from "../../services/account"; import GhostToolbar from "./ghost-toolbar"; -import { useBreakpointValue } from "../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../providers/global/breakpoint-provider"; import SearchModal from "../search-modal"; import { useLocation } from "react-router-dom"; diff --git a/src/components/layout/mobile-bottom-nav.tsx b/src/components/layout/mobile-bottom-nav.tsx index f90e96f86..320d54b90 100644 --- a/src/components/layout/mobile-bottom-nav.tsx +++ b/src/components/layout/mobile-bottom-nav.tsx @@ -3,7 +3,7 @@ import { useContext, useEffect } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import useCurrentAccount from "../../hooks/use-current-account"; -import { PostModalContext } from "../../providers/post-modal-provider"; +import { PostModalContext } from "../../providers/route/post-modal-provider"; import { DirectMessagesIcon, NotesIcon, NotificationsIcon, PlusCircleIcon, SearchIcon } from "../icons"; import UserAvatar from "../user-avatar"; import MobileSideDrawer from "./mobile-side-drawer"; diff --git a/src/components/magic-textarea.tsx b/src/components/magic-textarea.tsx index 588905fee..b06ceacfc 100644 --- a/src/components/magic-textarea.tsx +++ b/src/components/magic-textarea.tsx @@ -9,8 +9,8 @@ import "@webscopeio/react-textarea-autocomplete/style.css"; import { nip19 } from "nostr-tools"; import { matchSorter } from "match-sorter/dist/match-sorter.esm.js"; -import { Emoji, useContextEmojis } from "../providers/emoji-provider"; -import { useUserSearchDirectoryContext } from "../providers/user-directory-provider"; +import { Emoji, useContextEmojis } from "../providers/global/emoji-provider"; +import { useUserSearchDirectoryContext } from "../providers/global/user-directory-provider"; import UserAvatar from "./user-avatar"; import { UserDnsIdentityIcon } from "./user-dns-identity-icon"; diff --git a/src/components/message-block.tsx b/src/components/message-block.tsx index 3134ad802..bba9ed44b 100644 --- a/src/components/message-block.tsx +++ b/src/components/message-block.tsx @@ -4,7 +4,7 @@ import useCurrentAccount from "../hooks/use-current-account"; import { NostrEvent } from "../types/nostr-event"; import UserAvatar from "./user-avatar"; import MessageBubble, { MessageBubbleProps } from "./message-bubble"; -import { useThreadsContext } from "../providers/thread-provider"; +import { useThreadsContext } from "../providers/local/thread-provider"; import ThreadButton from "../views/dms/components/thread-button"; function MessageBubbleWithThread({ message, showThreadButton = true, ...props }: MessageBubbleProps) { diff --git a/src/components/message-bubble.tsx b/src/components/message-bubble.tsx index 707252ed3..fe5f91e1b 100644 --- a/src/components/message-bubble.tsx +++ b/src/components/message-bubble.tsx @@ -2,7 +2,7 @@ import { ReactNode, useRef } from "react"; import { ButtonGroup, Card, CardBody, CardFooter, CardHeader, CardProps } from "@chakra-ui/react"; import { NostrEvent } from "../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../providers/local/intersection-observer"; import { getEventUID } from "../helpers/nostr/events"; import Timestamp from "./timestamp"; import NoteZapButton from "./note/note-zap-button"; diff --git a/src/components/note/components/add-reaction-button.tsx b/src/components/note/components/add-reaction-button.tsx index 7c8b4ee2c..2c9495d9f 100644 --- a/src/components/note/components/add-reaction-button.tsx +++ b/src/components/note/components/add-reaction-button.tsx @@ -12,7 +12,7 @@ import { } from "@chakra-ui/react"; import useEventReactions from "../../../hooks/use-event-reactions"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import clientRelaysService from "../../../services/client-relays"; import eventReactionsService from "../../../services/event-reactions"; import { NostrEvent } from "../../../types/nostr-event"; diff --git a/src/components/note/components/bookmark-button.tsx b/src/components/note/components/bookmark-button.tsx index 06508225c..8077a9a80 100644 --- a/src/components/note/components/bookmark-button.tsx +++ b/src/components/note/components/bookmark-button.tsx @@ -15,7 +15,7 @@ import { import dayjs from "dayjs"; import useCurrentAccount from "../../../hooks/use-current-account"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import useUserLists from "../../../hooks/use-user-lists"; import { NOTE_LIST_KIND, diff --git a/src/components/note/components/note-reactions.tsx b/src/components/note/components/note-reactions.tsx index 22bbcde14..799e29c77 100644 --- a/src/components/note/components/note-reactions.tsx +++ b/src/components/note/components/note-reactions.tsx @@ -4,7 +4,7 @@ import { NostrEvent } from "../../../types/nostr-event"; import AddReactionButton from "./add-reaction-button"; import EventReactionButtons from "../../event-reactions/event-reactions"; import useEventReactions from "../../../hooks/use-event-reactions"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; export default function NoteReactions({ event, ...props }: Omit & { event: NostrEvent }) { const reactions = useEventReactions(event.id) ?? []; diff --git a/src/components/note/components/quote-repost-button.tsx b/src/components/note/components/quote-repost-button.tsx index ac012ca64..82ad8d287 100644 --- a/src/components/note/components/quote-repost-button.tsx +++ b/src/components/note/components/quote-repost-button.tsx @@ -3,7 +3,7 @@ import { ButtonProps, IconButton } from "@chakra-ui/react"; import { NostrEvent } from "../../../types/nostr-event"; import { QuoteRepostIcon } from "../../icons"; -import { PostModalContext } from "../../../providers/post-modal-provider"; +import { PostModalContext } from "../../../providers/route/post-modal-provider"; import { getSharableEventAddress } from "../../../helpers/nip19"; export type QuoteRepostButtonProps = Omit & { diff --git a/src/components/note/components/repost-modal.tsx b/src/components/note/components/repost-modal.tsx index 04fafb358..9a3f582ed 100644 --- a/src/components/note/components/repost-modal.tsx +++ b/src/components/note/components/repost-modal.tsx @@ -21,7 +21,7 @@ import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; import { EmbedEvent } from "../../embed-event"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { ChevronDownIcon, ChevronUpIcon, ExternalLinkIcon } from "../../icons"; import useUserCommunitiesList from "../../../hooks/use-user-communities-list"; import useCurrentAccount from "../../../hooks/use-current-account"; diff --git a/src/components/note/index.tsx b/src/components/note/index.tsx index 80e5123f3..3b8968c7d 100644 --- a/src/components/note/index.tsx +++ b/src/components/note/index.tsx @@ -22,7 +22,7 @@ import NoteMenu from "./note-menu"; import UserLink from "../user-link"; import { UserDnsIdentityIcon } from "../user-dns-identity-icon"; import NoteZapButton from "./note-zap-button"; -import { ExpandProvider } from "../../providers/expanded"; +import { ExpandProvider } from "../../providers/local/expanded"; import useSubject from "../../hooks/use-subject"; import appSettings from "../../services/settings/app-settings"; import EventVerificationIcon from "../event-verification-icon"; @@ -30,8 +30,8 @@ import RepostButton from "./components/repost-button"; import QuoteRepostButton from "./components/quote-repost-button"; import { ReplyIcon } from "../icons"; import NoteContentWithWarning from "./note-content-with-warning"; -import { TrustProvider } from "../../providers/trust"; -import { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import { TrustProvider } from "../../providers/local/trust"; +import { useRegisterIntersectionEntity } from "../../providers/local/intersection-observer"; import BookmarkButton from "./components/bookmark-button"; import useCurrentAccount from "../../hooks/use-current-account"; import NoteReactions from "./components/note-reactions"; @@ -40,7 +40,7 @@ import { getReferences } from "../../helpers/nostr/events"; import Timestamp from "../timestamp"; import OpenInDrawerButton from "../open-in-drawer-button"; import { getSharableEventAddress } from "../../helpers/nip19"; -import { useBreakpointValue } from "../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../providers/global/breakpoint-provider"; import HoverLinkOverlay from "../hover-link-overlay"; import NoteCommunityMetadata from "./note-community-metadata"; import useSingleEvent from "../../hooks/use-single-event"; diff --git a/src/components/note/note-content-with-warning.tsx b/src/components/note/note-content-with-warning.tsx index 3c6605c1d..d70a3c6d2 100644 --- a/src/components/note/note-content-with-warning.tsx +++ b/src/components/note/note-content-with-warning.tsx @@ -1,7 +1,7 @@ import { NostrEvent } from "../../types/nostr-event"; import { NoteContents } from "./text-note-contents"; -import { useExpand } from "../../providers/expanded"; +import { useExpand } from "../../providers/local/expanded"; import SensitiveContentWarning from "../sensitive-content-warning"; import useAppSettings from "../../hooks/use-app-settings"; diff --git a/src/components/note/note-relays.tsx b/src/components/note/note-relays.tsx index 4f3d1ebac..3ca3479c8 100644 --- a/src/components/note/note-relays.tsx +++ b/src/components/note/note-relays.tsx @@ -5,7 +5,7 @@ import { NostrEvent } from "../../types/nostr-event"; import useSubject from "../../hooks/use-subject"; import { RelayIconStack, RelayIconStackProps } from "../relay-icon-stack"; import { getEventUID } from "../../helpers/nostr/events"; -import { useBreakpointValue } from "../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../providers/global/breakpoint-provider"; export type NoteRelaysProps = { event: NostrEvent; diff --git a/src/components/npub-autocomplete.tsx b/src/components/npub-autocomplete.tsx index 9e13880cf..6d829f99f 100644 --- a/src/components/npub-autocomplete.tsx +++ b/src/components/npub-autocomplete.tsx @@ -3,7 +3,7 @@ import { forwardRef } from "react"; import { useAsync } from "react-use"; import { nip19 } from "nostr-tools"; -import { useUserSearchDirectoryContext } from "../providers/user-directory-provider"; +import { useUserSearchDirectoryContext } from "../providers/global/user-directory-provider"; import userMetadataService from "../services/user-metadata"; import { getUserDisplayName } from "../helpers/user-metadata"; diff --git a/src/components/open-graph-card.tsx b/src/components/open-graph-card.tsx index 151192446..dec2bf136 100644 --- a/src/components/open-graph-card.tsx +++ b/src/components/open-graph-card.tsx @@ -12,7 +12,7 @@ import { Text, } from "@chakra-ui/react"; import useOpenGraphData from "../hooks/use-open-graph-data"; -import { useBreakpointValue } from "../providers/breakpoint-provider"; +import { useBreakpointValue } from "../providers/global/breakpoint-provider"; export default function OpenGraphCard({ url, ...props }: { url: URL } & Omit) { const { value: data } = useOpenGraphData(url); diff --git a/src/components/people-list-selection/people-list-selection.tsx b/src/components/people-list-selection/people-list-selection.tsx index 86bdcf68e..8578c96a3 100644 --- a/src/components/people-list-selection/people-list-selection.tsx +++ b/src/components/people-list-selection/people-list-selection.tsx @@ -9,7 +9,7 @@ import { MenuOptionGroup, } from "@chakra-ui/react"; -import { usePeopleListContext } from "../../providers/people-list-provider"; +import { usePeopleListContext } from "../../providers/local/people-list-provider"; import useUserLists from "../../hooks/use-user-lists"; import useCurrentAccount from "../../hooks/use-current-account"; import { PEOPLE_LIST_KIND, getListName } from "../../helpers/nostr/lists"; diff --git a/src/components/post-modal/index.tsx b/src/components/post-modal/index.tsx index 61ed3a010..e7f359389 100644 --- a/src/components/post-modal/index.tsx +++ b/src/components/post-modal/index.tsx @@ -25,10 +25,10 @@ import { Kind } from "nostr-tools"; import { ChevronDownIcon, ChevronUpIcon, UploadImageIcon } from "../icons"; import NostrPublishAction from "../../classes/nostr-publish-action"; import { useWriteRelayUrls } from "../../hooks/use-client-relays"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import { NoteContents } from "../note/text-note-contents"; import { PublishDetails } from "../publish-details"; -import { TrustProvider } from "../../providers/trust"; +import { TrustProvider } from "../../providers/local/trust"; import { correctContentMentions, createEmojiTags, @@ -39,13 +39,13 @@ import { } from "../../helpers/nostr/post"; import { UserAvatarStack } from "../compact-user-stack"; import MagicTextArea, { RefType } from "../magic-textarea"; -import { useContextEmojis } from "../../providers/emoji-provider"; +import { useContextEmojis } from "../../providers/global/emoji-provider"; import CommunitySelect from "./community-select"; import ZapSplitCreator, { fillRemainingPercent } from "./zap-split-creator"; import { EventSplit } from "../../helpers/nostr/zaps"; import useCurrentAccount from "../../hooks/use-current-account"; import useCacheForm from "../../hooks/use-cache-form"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import { useTextAreaUploadFileWithForm } from "../../hooks/use-textarea-upload-file"; import { useThrottle } from "react-use"; diff --git a/src/components/relay-selection/relay-selection-button.tsx b/src/components/relay-selection/relay-selection-button.tsx index 620924ca6..edc8350cf 100644 --- a/src/components/relay-selection/relay-selection-button.tsx +++ b/src/components/relay-selection/relay-selection-button.tsx @@ -1,7 +1,7 @@ import { Button, ButtonProps, useDisclosure } from "@chakra-ui/react"; import { RelayIcon } from "../icons"; -import { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import RelaySelectionModal from "./relay-selection-modal"; export default function RelaySelectionButton({ ...props }: ButtonProps) { diff --git a/src/components/search-modal/index.tsx b/src/components/search-modal/index.tsx index 4734ad34a..0f842b64e 100644 --- a/src/components/search-modal/index.tsx +++ b/src/components/search-modal/index.tsx @@ -5,7 +5,7 @@ import { useAsync, useThrottle } from "react-use"; import { matchSorter } from "match-sorter"; import { nip19 } from "nostr-tools"; -import { useUserSearchDirectoryContext } from "../../providers/user-directory-provider"; +import { useUserSearchDirectoryContext } from "../../providers/global/user-directory-provider"; import UserAvatar from "../user-avatar"; import { useUserMetadata } from "../../hooks/use-user-metadata"; import { getUserDisplayName } from "../../helpers/user-metadata"; diff --git a/src/components/sensitive-content-warning.tsx b/src/components/sensitive-content-warning.tsx index f64e74f75..a66a56f43 100644 --- a/src/components/sensitive-content-warning.tsx +++ b/src/components/sensitive-content-warning.tsx @@ -1,7 +1,7 @@ import { Alert, AlertDescription, AlertIcon, AlertProps, AlertTitle, Button, Spacer } from "@chakra-ui/react"; -import { useExpand } from "../providers/expanded"; -import { useBreakpointValue } from "../providers/breakpoint-provider"; +import { useExpand } from "../providers/local/expanded"; +import { useBreakpointValue } from "../providers/global/breakpoint-provider"; export default function SensitiveContentWarning({ description }: { description?: string } & AlertProps) { const expand = useExpand(); diff --git a/src/components/timeline-page/generic-note-timeline/article-note.tsx b/src/components/timeline-page/generic-note-timeline/article-note.tsx index e4a729214..6f981cf03 100644 --- a/src/components/timeline-page/generic-note-timeline/article-note.tsx +++ b/src/components/timeline-page/generic-note-timeline/article-note.tsx @@ -3,7 +3,7 @@ import { Box } from "@chakra-ui/react"; import { NostrEvent } from "../../../types/nostr-event"; import EmbeddedArticle from "../../embed-event/event-types/embedded-article"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID } from "../../../helpers/nostr/events"; function ArticleNote({ article }: { article: NostrEvent }) { diff --git a/src/components/timeline-page/generic-note-timeline/generic-timeline-note.tsx b/src/components/timeline-page/generic-note-timeline/generic-timeline-note.tsx index 65b6a540e..6986e7ca7 100644 --- a/src/components/timeline-page/generic-note-timeline/generic-timeline-note.tsx +++ b/src/components/timeline-page/generic-note-timeline/generic-timeline-note.tsx @@ -10,7 +10,7 @@ import ArticleNote from "./article-note"; import StreamNote from "./stream-note"; import RelayRecommendation from "./relay-recommendation"; import BadgeAwardCard from "../../../views/badges/components/badge-award-card"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID, isReply } from "../../../helpers/nostr/events"; import { STREAM_KIND } from "../../../helpers/nostr/stream"; import { NostrEvent } from "../../../types/nostr-event"; diff --git a/src/components/timeline-page/generic-note-timeline/index.tsx b/src/components/timeline-page/generic-note-timeline/index.tsx index 4b7553f53..04478bc90 100644 --- a/src/components/timeline-page/generic-note-timeline/index.tsx +++ b/src/components/timeline-page/generic-note-timeline/index.tsx @@ -8,7 +8,10 @@ import useSubject from "../../../hooks/use-subject"; import TimelineLoader from "../../../classes/timeline-loader"; import { NostrEvent } from "../../../types/nostr-event"; import { getEventUID } from "../../../helpers/nostr/events"; -import { ExtendedIntersectionObserverEntry, useIntersectionObserver } from "../../../providers/intersection-observer"; +import { + ExtendedIntersectionObserverEntry, + useIntersectionObserver, +} from "../../../providers/local/intersection-observer"; import GenericTimelineNote from "./generic-timeline-note"; const NOTE_BUFFER = 5; diff --git a/src/components/timeline-page/generic-note-timeline/relay-recommendation.tsx b/src/components/timeline-page/generic-note-timeline/relay-recommendation.tsx index fd7ef3c4a..2ff600889 100644 --- a/src/components/timeline-page/generic-note-timeline/relay-recommendation.tsx +++ b/src/components/timeline-page/generic-note-timeline/relay-recommendation.tsx @@ -6,7 +6,7 @@ import UserAvatar from "../../user-avatar"; import UserLink from "../../user-link"; import RelayCard from "../../../views/relays/components/relay-card"; import { safeRelayUrl } from "../../../helpers/url"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; export default function RelayRecommendation({ event }: { event: NostrEvent }) { const safeUrl = safeRelayUrl(event.content); diff --git a/src/components/timeline-page/generic-note-timeline/reply-note.tsx b/src/components/timeline-page/generic-note-timeline/reply-note.tsx index e1891cb73..fbc8fcc7c 100644 --- a/src/components/timeline-page/generic-note-timeline/reply-note.tsx +++ b/src/components/timeline-page/generic-note-timeline/reply-note.tsx @@ -1,7 +1,7 @@ import { memo, useRef } from "react"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import Note from "../../note"; function ReplyNote({ event }: { event: NostrEvent }) { diff --git a/src/components/timeline-page/generic-note-timeline/repost-note.tsx b/src/components/timeline-page/generic-note-timeline/repost-note.tsx index de8979146..baa4372df 100644 --- a/src/components/timeline-page/generic-note-timeline/repost-note.tsx +++ b/src/components/timeline-page/generic-note-timeline/repost-note.tsx @@ -9,9 +9,9 @@ import NoteMenu from "../../note/note-menu"; import UserAvatar from "../../user-avatar"; import { UserDnsIdentityIcon } from "../../user-dns-identity-icon"; import UserLink from "../../user-link"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import { useReadRelayUrls } from "../../../hooks/use-client-relays"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import useSingleEvent from "../../../hooks/use-single-event"; import { EmbedEvent } from "../../embed-event"; import useUserMuteFilter from "../../../hooks/use-user-mute-filter"; diff --git a/src/components/timeline-page/generic-note-timeline/stream-note.tsx b/src/components/timeline-page/generic-note-timeline/stream-note.tsx index 588dbfd45..35beca7f9 100644 --- a/src/components/timeline-page/generic-note-timeline/stream-note.tsx +++ b/src/components/timeline-page/generic-note-timeline/stream-note.tsx @@ -19,7 +19,7 @@ import { Link as RouterLink } from "react-router-dom"; import { NostrEvent } from "../../../types/nostr-event"; import { parseStreamEvent } from "../../../helpers/nostr/stream"; import useEventNaddr from "../../../hooks/use-event-naddr"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import UserAvatar from "../../user-avatar"; import UserLink from "../../user-link"; import StreamStatusBadge from "../../../views/streams/components/status-badge"; diff --git a/src/components/timeline-page/index.tsx b/src/components/timeline-page/index.tsx index 722428187..07a387963 100644 --- a/src/components/timeline-page/index.tsx +++ b/src/components/timeline-page/index.tsx @@ -2,7 +2,7 @@ import { useCallback } from "react"; import { Flex, FlexProps } from "@chakra-ui/react"; import { useSearchParams } from "react-router-dom"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import GenericNoteTimeline from "./generic-note-timeline"; import MediaTimeline from "./media-timeline"; import TimelineLoader from "../../classes/timeline-loader"; diff --git a/src/components/timeline-page/media-timeline/index.tsx b/src/components/timeline-page/media-timeline/index.tsx index b85e5fac1..d4670e4e0 100644 --- a/src/components/timeline-page/media-timeline/index.tsx +++ b/src/components/timeline-page/media-timeline/index.tsx @@ -8,12 +8,12 @@ import { getMatchLink } from "../../../helpers/regexp"; import { LightboxProvider } from "../../lightbox-provider"; import { isImageURL } from "../../../helpers/url"; import { EmbeddedImageProps, GalleryImage } from "../../embed-types"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import PhotoGallery, { PhotoWithoutSize } from "../../photo-gallery"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { NostrEvent } from "../../../types/nostr-event"; import { getEventUID } from "../../../helpers/nostr/events"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; function CustomGalleryImage({ event, ...props }: EmbeddedImageProps & { event: NostrEvent }) { const ref = useRef(null); diff --git a/src/components/timeline-page/timeline-health/index.tsx b/src/components/timeline-page/timeline-health/index.tsx index 1cad79b0d..64ee3a532 100644 --- a/src/components/timeline-page/timeline-health/index.tsx +++ b/src/components/timeline-page/timeline-health/index.tsx @@ -19,7 +19,7 @@ import TimelineLoader from "../../../classes/timeline-loader"; import useSubject from "../../../hooks/use-subject"; import { getEventRelays, handleEventFromRelay } from "../../../services/event-relays"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { RelayFavicon } from "../../relay-favicon"; import { NoteLink } from "../../note-link"; import NostrPublishAction from "../../../classes/nostr-publish-action"; diff --git a/src/components/user-follow-button.tsx b/src/components/user-follow-button.tsx index 9c7eac846..07f57f1c8 100644 --- a/src/components/user-follow-button.tsx +++ b/src/components/user-follow-button.tsx @@ -26,7 +26,7 @@ import { isPubkeyInList, } from "../helpers/nostr/lists"; import { getEventCoordinate } from "../helpers/nostr/events"; -import { useSigningContext } from "../providers/signing-provider"; +import { useSigningContext } from "../providers/global/signing-provider"; import NostrPublishAction from "../classes/nostr-publish-action"; import clientRelaysService from "../services/client-relays"; import useUserContactList from "../hooks/use-user-contact-list"; @@ -34,7 +34,7 @@ import replaceableEventLoaderService from "../services/replaceable-event-request import useAsyncErrorHandler from "../hooks/use-async-error-handler"; import NewListModal from "../views/lists/components/new-list-modal"; import useUserMuteFunctions from "../hooks/use-user-mute-functions"; -import { useMuteModalContext } from "../providers/mute-modal-provider"; +import { useMuteModalContext } from "../providers/route/mute-modal-provider"; function UsersLists({ pubkey }: { pubkey: string }) { const toast = useToast(); diff --git a/src/helpers/nostr/post.ts b/src/helpers/nostr/post.ts index 486c3e8b9..7039fd9df 100644 --- a/src/helpers/nostr/post.ts +++ b/src/helpers/nostr/post.ts @@ -2,7 +2,7 @@ import { DraftNostrEvent, NostrEvent, Tag } from "../../types/nostr-event"; import { getMatchEmoji, getMatchHashtag } from "../regexp"; import { getReferences } from "./events"; import { getPubkeyFromDecodeResult, safeDecode } from "../nip19"; -import { Emoji } from "../../providers/emoji-provider"; +import { Emoji } from "../../providers/global/emoji-provider"; import { EventSplit } from "./zaps"; import { unique } from "../array"; import relayHintService from "../../services/event-relay-hint"; diff --git a/src/hooks/use-textarea-upload-file.ts b/src/hooks/use-textarea-upload-file.ts index a8ae01a18..87366561f 100644 --- a/src/hooks/use-textarea-upload-file.ts +++ b/src/hooks/use-textarea-upload-file.ts @@ -3,7 +3,7 @@ import { useToast } from "@chakra-ui/react"; import { nostrBuildUploadImage } from "../helpers/nostr-build"; import { RefType } from "../components/magic-textarea"; -import { useSigningContext } from "../providers/signing-provider"; +import { useSigningContext } from "../providers/global/signing-provider"; import { UseFormGetValues, UseFormSetValue } from "react-hook-form"; export function useTextAreaUploadFileWithForm( diff --git a/src/hooks/use-timeline-cursor-intersection-callback.ts b/src/hooks/use-timeline-cursor-intersection-callback.ts index 2c8ed3f89..d4014472f 100644 --- a/src/hooks/use-timeline-cursor-intersection-callback.ts +++ b/src/hooks/use-timeline-cursor-intersection-callback.ts @@ -1,6 +1,6 @@ import { useInterval } from "react-use"; import TimelineLoader from "../classes/timeline-loader"; -import { useIntersectionMapCallback } from "../providers/intersection-observer"; +import { useIntersectionMapCallback } from "../providers/local/intersection-observer"; import { NostrEvent } from "../types/nostr-event"; export function useTimelineCurserIntersectionCallback(timeline: TimelineLoader) { diff --git a/src/hooks/use-user-mute-functions.ts b/src/hooks/use-user-mute-functions.ts index 41bb7e144..11d0976ec 100644 --- a/src/hooks/use-user-mute-functions.ts +++ b/src/hooks/use-user-mute-functions.ts @@ -7,7 +7,7 @@ import { muteListRemovePubkey, pruneExpiredPubkeys, } from "../helpers/nostr/mute-list"; -import { useSigningContext } from "../providers/signing-provider"; +import { useSigningContext } from "../providers/global/signing-provider"; import clientRelaysService from "../services/client-relays"; import replaceableEventLoaderService from "../services/replaceable-event-requester"; import useAsyncErrorHandler from "./use-async-error-handler"; diff --git a/src/index.tsx b/src/index.tsx index 4cb9eb773..b48d20d68 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,7 +1,7 @@ import "./polyfill"; import { createRoot } from "react-dom/client"; import { App } from "./app"; -import { GlobalProviders } from "./providers"; +import { GlobalProviders } from "./providers/global"; // setup dayjs import dayjs from "dayjs"; diff --git a/src/providers/drawer-sub-view-provider.tsx b/src/providers/drawer-sub-view-provider.tsx index 2dde85453..53b6ad322 100644 --- a/src/providers/drawer-sub-view-provider.tsx +++ b/src/providers/drawer-sub-view-provider.tsx @@ -28,8 +28,8 @@ import { Location, RouteObject, RouterProvider, To, createMemoryRouter, useNavig import { ErrorBoundary } from "../components/error-boundary"; import ThreadView from "../views/thread"; import { ChevronLeftIcon, ChevronRightIcon, ExternalLinkIcon } from "../components/icons"; -import { PageProviders } from "."; import { logger } from "../helpers/debug"; +import { RouteProviders } from "./route"; const TorrentDetailsView = lazy(() => import("../views/torrents/torrent")); @@ -68,17 +68,15 @@ function DrawerSubView({ - - - Loading page - - } - > - - - + + Loading page + + } + > + + @@ -90,11 +88,19 @@ function DrawerSubView({ const routes: RouteObject[] = [ { path: "/n/:id", - element: , + element: ( + + + + ), }, { path: "/torrents/:id", - element: , + element: ( + + + + ), }, ]; diff --git a/src/providers/breakpoint-provider.tsx b/src/providers/global/breakpoint-provider.tsx similarity index 100% rename from src/providers/breakpoint-provider.tsx rename to src/providers/global/breakpoint-provider.tsx diff --git a/src/providers/dycryption-provider.tsx b/src/providers/global/dycryption-provider.tsx similarity index 96% rename from src/providers/dycryption-provider.tsx rename to src/providers/global/dycryption-provider.tsx index a6653a2b0..3e767f9fa 100644 --- a/src/providers/dycryption-provider.tsx +++ b/src/providers/global/dycryption-provider.tsx @@ -1,10 +1,10 @@ import { PropsWithChildren, createContext, useCallback, useContext, useMemo, useRef } from "react"; import { nanoid } from "nanoid"; -import Subject from "../classes/subject"; +import Subject from "../../classes/subject"; import { useSigningContext } from "./signing-provider"; -import useSubject from "../hooks/use-subject"; -import createDefer, { Deferred } from "../classes/deferred"; +import useSubject from "../../hooks/use-subject"; +import createDefer, { Deferred } from "../../classes/deferred"; class DecryptionContainer { id = nanoid(); diff --git a/src/providers/emoji-provider.tsx b/src/providers/global/emoji-provider.tsx similarity index 81% rename from src/providers/emoji-provider.tsx rename to src/providers/global/emoji-provider.tsx index 7c25d2aed..d5dfcdd2d 100644 --- a/src/providers/emoji-provider.tsx +++ b/src/providers/global/emoji-provider.tsx @@ -1,11 +1,11 @@ import { PropsWithChildren, createContext, useContext } from "react"; import { lib } from "emojilib"; -import useReplaceableEvents from "../hooks/use-replaceable-events"; -import useCurrentAccount from "../hooks/use-current-account"; -import { isEmojiTag } from "../types/nostr-event"; -import useFavoriteEmojiPacks from "../hooks/use-favorite-emoji-packs"; -import { getPackCordsFromFavorites } from "../helpers/nostr/emoji-packs"; +import useReplaceableEvents from "../../hooks/use-replaceable-events"; +import useCurrentAccount from "../../hooks/use-current-account"; +import { isEmojiTag } from "../../types/nostr-event"; +import useFavoriteEmojiPacks from "../../hooks/use-favorite-emoji-packs"; +import { getPackCordsFromFavorites } from "../../helpers/nostr/emoji-packs"; const defaultEmojis = Object.entries(lib).map(([name, emojiObject]) => ({ ...emojiObject, diff --git a/src/providers/global/index.tsx b/src/providers/global/index.tsx new file mode 100644 index 000000000..810cedbd4 --- /dev/null +++ b/src/providers/global/index.tsx @@ -0,0 +1,38 @@ +import React, { PropsWithChildren, useMemo } from "react"; +import { ChakraProvider, localStorageManager } from "@chakra-ui/react"; + +import { SigningProvider } from "./signing-provider"; +import buildTheme from "../../theme"; +import useAppSettings from "../../hooks/use-app-settings"; +import NotificationTimelineProvider from "./notification-timeline"; +import { DefaultEmojiProvider, UserEmojiProvider } from "./emoji-provider"; +import { AllUserSearchDirectoryProvider } from "./user-directory-provider"; +import BreakpointProvider from "./breakpoint-provider"; +import DecryptionProvider from "./dycryption-provider"; + +// Top level providers, should be render as close to the root as possible +export const GlobalProviders = ({ children }: { children: React.ReactNode }) => { + const { theme: themeName, primaryColor, maxPageWidth } = useAppSettings(); + const theme = useMemo( + () => buildTheme(themeName, primaryColor, maxPageWidth !== "none" ? maxPageWidth : undefined), + [themeName, primaryColor, maxPageWidth], + ); + + return ( + + + + + + + + {children} + + + + + + + + ); +}; diff --git a/src/providers/notification-timeline.tsx b/src/providers/global/notification-timeline.tsx similarity index 75% rename from src/providers/notification-timeline.tsx rename to src/providers/global/notification-timeline.tsx index 8bb9aaf85..a9216f5d9 100644 --- a/src/providers/notification-timeline.tsx +++ b/src/providers/global/notification-timeline.tsx @@ -1,13 +1,13 @@ import { PropsWithChildren, createContext, useCallback, useContext, useMemo } from "react"; import { Kind } from "nostr-tools"; -import { useReadRelayUrls } from "../hooks/use-client-relays"; -import useCurrentAccount from "../hooks/use-current-account"; -import TimelineLoader from "../classes/timeline-loader"; -import { NostrEvent } from "../types/nostr-event"; -import useClientSideMuteFilter from "../hooks/use-client-side-mute-filter"; -import useTimelineLoader from "../hooks/use-timeline-loader"; -import { TORRENT_COMMENT_KIND } from "../helpers/nostr/torrents"; +import { useReadRelayUrls } from "../../hooks/use-client-relays"; +import useCurrentAccount from "../../hooks/use-current-account"; +import TimelineLoader from "../../classes/timeline-loader"; +import { NostrEvent } from "../../types/nostr-event"; +import useClientSideMuteFilter from "../../hooks/use-client-side-mute-filter"; +import useTimelineLoader from "../../hooks/use-timeline-loader"; +import { TORRENT_COMMENT_KIND } from "../../helpers/nostr/torrents"; type NotificationTimelineContextType = { timeline?: TimelineLoader; diff --git a/src/providers/signing-provider.tsx b/src/providers/global/signing-provider.tsx similarity index 89% rename from src/providers/signing-provider.tsx rename to src/providers/global/signing-provider.tsx index c2320e7a5..575e518f7 100644 --- a/src/providers/signing-provider.tsx +++ b/src/providers/global/signing-provider.tsx @@ -1,9 +1,9 @@ import { useToast } from "@chakra-ui/react"; import React, { useCallback, useContext, useMemo } from "react"; -import useSubject from "../hooks/use-subject"; -import accountService from "../services/account"; -import signingService from "../services/signing"; -import { DraftNostrEvent, NostrEvent } from "../types/nostr-event"; +import useSubject from "../../hooks/use-subject"; +import accountService from "../../services/account"; +import signingService from "../../services/signing"; +import { DraftNostrEvent, NostrEvent } from "../../types/nostr-event"; export type SigningContextType = { requestSignature: (draft: DraftNostrEvent) => Promise; diff --git a/src/providers/user-directory-provider.tsx b/src/providers/global/user-directory-provider.tsx similarity index 98% rename from src/providers/user-directory-provider.tsx rename to src/providers/global/user-directory-provider.tsx index c46dc991a..69452ad19 100644 --- a/src/providers/user-directory-provider.tsx +++ b/src/providers/global/user-directory-provider.tsx @@ -1,6 +1,6 @@ import { PropsWithChildren, createContext, useCallback, useContext } from "react"; -import db from "../services/db"; +import db from "../../services/db"; export type UserDirectory = { pubkey: string; names: [] }[]; export type GetDirectoryFn = () => Promise | UserDirectory; diff --git a/src/providers/index.tsx b/src/providers/index.tsx deleted file mode 100644 index 8055b115b..000000000 --- a/src/providers/index.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import React, { useMemo } from "react"; -import { ChakraProvider, localStorageManager } from "@chakra-ui/react"; - -import { SigningProvider } from "./signing-provider"; -import buildTheme from "../theme"; -import useAppSettings from "../hooks/use-app-settings"; -import DeleteEventProvider from "./delete-event-provider"; -import { InvoiceModalProvider } from "./invoice-modal"; -import NotificationTimelineProvider from "./notification-timeline"; -import PostModalProvider from "./post-modal-provider"; -import { DefaultEmojiProvider, UserEmojiProvider } from "./emoji-provider"; -import { AllUserSearchDirectoryProvider } from "./user-directory-provider"; -import MuteModalProvider from "./mute-modal-provider"; -import BreakpointProvider from "./breakpoint-provider"; -import DecryptionProvider from "./dycryption-provider"; - -// Top level providers, should be render as close to the root as possible -export const GlobalProviders = ({ children }: { children: React.ReactNode }) => { - const { theme: themeName, primaryColor, maxPageWidth } = useAppSettings(); - const theme = useMemo( - () => buildTheme(themeName, primaryColor, maxPageWidth !== "none" ? maxPageWidth : undefined), - [themeName, primaryColor, maxPageWidth], - ); - - return ( - - {children} - - ); -}; - -/** Providers that provider functionality to pages (needs to be rendered under a router) */ -export function PageProviders({ children }: { children: React.ReactNode }) { - return ( - - - - - - - - - - - {children} - - - - - - - - - - - ); -} diff --git a/src/providers/additional-relay-context.tsx b/src/providers/local/additional-relay-context.tsx similarity index 86% rename from src/providers/additional-relay-context.tsx rename to src/providers/local/additional-relay-context.tsx index 2ae0fd927..30130423c 100644 --- a/src/providers/additional-relay-context.tsx +++ b/src/providers/local/additional-relay-context.tsx @@ -1,6 +1,6 @@ import React, { useContext } from "react"; -import { unique } from "../helpers/array"; -import { safeRelayUrl } from "../helpers/url"; +import { unique } from "../../helpers/array"; +import { safeRelayUrl } from "../../helpers/url"; export const RelayContext = React.createContext([]); diff --git a/src/providers/expanded.tsx b/src/providers/local/expanded.tsx similarity index 100% rename from src/providers/expanded.tsx rename to src/providers/local/expanded.tsx diff --git a/src/providers/intersection-observer.tsx b/src/providers/local/intersection-observer.tsx similarity index 98% rename from src/providers/intersection-observer.tsx rename to src/providers/local/intersection-observer.tsx index d186efb0b..3f76d5ed0 100644 --- a/src/providers/intersection-observer.tsx +++ b/src/providers/local/intersection-observer.tsx @@ -11,7 +11,7 @@ import { } from "react"; import { useMount, useUnmount } from "react-use"; -import Subject from "../classes/subject"; +import Subject from "../../classes/subject"; export type ExtendedIntersectionObserverEntry = { entry: IntersectionObserverEntry; id: string | undefined }; export type ExtendedIntersectionObserverCallback = ( diff --git a/src/providers/people-list-provider.tsx b/src/providers/local/people-list-provider.tsx similarity index 85% rename from src/providers/people-list-provider.tsx rename to src/providers/local/people-list-provider.tsx index d30340429..38d6807ba 100644 --- a/src/providers/people-list-provider.tsx +++ b/src/providers/local/people-list-provider.tsx @@ -1,12 +1,12 @@ import { PropsWithChildren, createContext, useCallback, useContext, useMemo } from "react"; import { Kind } from "nostr-tools"; -import useCurrentAccount from "../hooks/use-current-account"; -import { getPubkeysFromList } from "../helpers/nostr/lists"; -import useReplaceableEvent from "../hooks/use-replaceable-event"; -import { NostrEvent } from "../types/nostr-event"; -import { NostrQuery } from "../types/nostr-query"; -import useRouteSearchValue from "../hooks/use-route-search-value"; +import useCurrentAccount from "../../hooks/use-current-account"; +import { getPubkeysFromList } from "../../helpers/nostr/lists"; +import useReplaceableEvent from "../../hooks/use-replaceable-event"; +import { NostrEvent } from "../../types/nostr-event"; +import { NostrQuery } from "../../types/nostr-query"; +import useRouteSearchValue from "../../hooks/use-route-search-value"; export type ListId = "following" | "global" | string; export type Person = { pubkey: string; relay?: string }; diff --git a/src/providers/relay-selection-provider.tsx b/src/providers/local/relay-selection-provider.tsx similarity index 93% rename from src/providers/relay-selection-provider.tsx rename to src/providers/local/relay-selection-provider.tsx index 8a93bc5e2..849963f7e 100644 --- a/src/providers/relay-selection-provider.tsx +++ b/src/providers/local/relay-selection-provider.tsx @@ -1,8 +1,8 @@ import { PropsWithChildren, createContext, useCallback, useContext, useMemo } from "react"; import { useLocation, useNavigate } from "react-router-dom"; -import { useReadRelayUrls } from "../hooks/use-client-relays"; -import { unique } from "../helpers/array"; +import { useReadRelayUrls } from "../../hooks/use-client-relays"; +import { unique } from "../../helpers/array"; type RelaySelectionContextType = { relays: string[]; diff --git a/src/providers/thread-provider.tsx b/src/providers/local/thread-provider.tsx similarity index 90% rename from src/providers/thread-provider.tsx rename to src/providers/local/thread-provider.tsx index 931167717..487f4836e 100644 --- a/src/providers/thread-provider.tsx +++ b/src/providers/local/thread-provider.tsx @@ -1,8 +1,8 @@ import { PropsWithChildren, createContext, useCallback, useContext, useMemo } from "react"; -import TimelineLoader from "../classes/timeline-loader"; -import { NostrEvent } from "../types/nostr-event"; -import useSubject from "../hooks/use-subject"; +import TimelineLoader from "../../classes/timeline-loader"; +import { NostrEvent } from "../../types/nostr-event"; +import useSubject from "../../hooks/use-subject"; export type Thread = { root?: NostrEvent; diff --git a/src/providers/trust.tsx b/src/providers/local/trust.tsx similarity index 76% rename from src/providers/trust.tsx rename to src/providers/local/trust.tsx index 1fc627f9b..40dfee0ef 100644 --- a/src/providers/trust.tsx +++ b/src/providers/local/trust.tsx @@ -1,8 +1,8 @@ import React, { PropsWithChildren, useContext } from "react"; -import { NostrEvent } from "../types/nostr-event"; -import useCurrentAccount from "../hooks/use-current-account"; -import useUserContactList from "../hooks/use-user-contact-list"; -import { getPubkeysFromList } from "../helpers/nostr/lists"; +import { NostrEvent } from "../../types/nostr-event"; +import useCurrentAccount from "../../hooks/use-current-account"; +import useUserContactList from "../../hooks/use-user-contact-list"; +import { getPubkeysFromList } from "../../helpers/nostr/lists"; const TrustContext = React.createContext(false); diff --git a/src/providers/delete-event-provider.tsx b/src/providers/route/delete-event-provider.tsx similarity index 87% rename from src/providers/delete-event-provider.tsx rename to src/providers/route/delete-event-provider.tsx index a5fc1e490..08bc2acda 100644 --- a/src/providers/delete-event-provider.tsx +++ b/src/providers/route/delete-event-provider.tsx @@ -23,18 +23,18 @@ import { import { Event, Kind } from "nostr-tools"; import dayjs from "dayjs"; -import useCurrentAccount from "../hooks/use-current-account"; -import signingService from "../services/signing"; -import createDefer, { Deferred } from "../classes/deferred"; -import useEventRelays from "../hooks/use-event-relays"; -import { useWriteRelayUrls } from "../hooks/use-client-relays"; -import { RelayFavicon } from "../components/relay-favicon"; -import { ExternalLinkIcon } from "../components/icons"; -import { getEventCoordinate, getEventUID, isReplaceable } from "../helpers/nostr/events"; -import NostrPublishAction from "../classes/nostr-publish-action"; -import { Tag } from "../types/nostr-event"; -import deleteEventService from "../services/delete-events"; -import { EmbedEvent } from "../components/embed-event"; +import useCurrentAccount from "../../hooks/use-current-account"; +import signingService from "../../services/signing"; +import createDefer, { Deferred } from "../../classes/deferred"; +import useEventRelays from "../../hooks/use-event-relays"; +import { useWriteRelayUrls } from "../../hooks/use-client-relays"; +import { RelayFavicon } from "../../components/relay-favicon"; +import { ExternalLinkIcon } from "../../components/icons"; +import { getEventCoordinate, getEventUID, isReplaceable } from "../../helpers/nostr/events"; +import NostrPublishAction from "../../classes/nostr-publish-action"; +import { Tag } from "../../types/nostr-event"; +import deleteEventService from "../../services/delete-events"; +import { EmbedEvent } from "../../components/embed-event"; type DeleteEventContextType = { isLoading: boolean; diff --git a/src/providers/route/index.tsx b/src/providers/route/index.tsx new file mode 100644 index 000000000..b035c5ef7 --- /dev/null +++ b/src/providers/route/index.tsx @@ -0,0 +1,17 @@ +import DeleteEventProvider from "./delete-event-provider"; +import InvoiceModalProvider from "./invoice-modal"; +import MuteModalProvider from "./mute-modal-provider"; +import PostModalProvider from "./post-modal-provider"; + +/** Providers that provider functionality to pages (needs to be rendered under a router) */ +export function RouteProviders({ children }: { children: React.ReactNode }) { + return ( + + + + {children} + + + + ); +} diff --git a/src/providers/invoice-modal.tsx b/src/providers/route/invoice-modal.tsx similarity index 84% rename from src/providers/invoice-modal.tsx rename to src/providers/route/invoice-modal.tsx index 40ee52133..837747498 100644 --- a/src/providers/invoice-modal.tsx +++ b/src/providers/route/invoice-modal.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useContext, useState } from "react"; -import InvoiceModal from "../components/invoice-modal"; -import createDefer, { Deferred } from "../classes/deferred"; -import appSettings from "../services/settings/app-settings"; +import InvoiceModal from "../../components/invoice-modal"; +import createDefer, { Deferred } from "../../classes/deferred"; +import appSettings from "../../services/settings/app-settings"; export type InvoiceModalContext = { requestPay: (invoice: string) => Promise; @@ -17,7 +17,7 @@ export function useInvoiceModalContext() { return useContext(InvoiceModalContext); } -export const InvoiceModalProvider = ({ children }: { children: React.ReactNode }) => { +export default function InvoiceModalProvider({ children }: { children: React.ReactNode }) { const [invoice, setInvoice] = useState(); const [defer, setDefer] = useState>(); @@ -60,4 +60,4 @@ export const InvoiceModalProvider = ({ children }: { children: React.ReactNode } {invoice && } ); -}; +} diff --git a/src/providers/mute-modal-provider.tsx b/src/providers/route/mute-modal-provider.tsx similarity index 92% rename from src/providers/mute-modal-provider.tsx rename to src/providers/route/mute-modal-provider.tsx index 805bd1f30..32784eddf 100644 --- a/src/providers/mute-modal-provider.tsx +++ b/src/providers/route/mute-modal-provider.tsx @@ -21,26 +21,26 @@ import { PropsWithChildren, createContext, useCallback, useContext, useMemo, use import dayjs from "dayjs"; import { useInterval } from "react-use"; -import { getUserDisplayName } from "../helpers/user-metadata"; -import { useUserMetadata } from "../hooks/use-user-metadata"; -import useCurrentAccount from "../hooks/use-current-account"; +import { getUserDisplayName } from "../../helpers/user-metadata"; +import { useUserMetadata } from "../../hooks/use-user-metadata"; +import useCurrentAccount from "../../hooks/use-current-account"; import { createEmptyMuteList, getPubkeysExpiration, muteListAddPubkey, muteListRemovePubkey, pruneExpiredPubkeys, -} from "../helpers/nostr/mute-list"; -import { cloneList } from "../helpers/nostr/lists"; -import { useSigningContext } from "./signing-provider"; -import NostrPublishAction from "../classes/nostr-publish-action"; -import clientRelaysService from "../services/client-relays"; -import replaceableEventLoaderService from "../services/replaceable-event-requester"; -import useUserMuteList from "../hooks/use-user-mute-list"; -import { DraftNostrEvent } from "../types/nostr-event"; -import UserAvatar from "../components/user-avatar"; -import UserLink from "../components/user-link"; -import { ChevronDownIcon } from "../components/icons"; +} from "../../helpers/nostr/mute-list"; +import { cloneList } from "../../helpers/nostr/lists"; +import { useSigningContext } from "../global/signing-provider"; +import NostrPublishAction from "../../classes/nostr-publish-action"; +import clientRelaysService from "../../services/client-relays"; +import replaceableEventLoaderService from "../../services/replaceable-event-requester"; +import useUserMuteList from "../../hooks/use-user-mute-list"; +import { DraftNostrEvent } from "../../types/nostr-event"; +import UserAvatar from "../../components/user-avatar"; +import UserLink from "../../components/user-link"; +import { ChevronDownIcon } from "../../components/icons"; type MuteModalContextType = { openModal: (pubkey: string) => void; diff --git a/src/providers/post-modal-provider.tsx b/src/providers/route/post-modal-provider.tsx similarity index 88% rename from src/providers/post-modal-provider.tsx rename to src/providers/route/post-modal-provider.tsx index 75e206caa..be31d8617 100644 --- a/src/providers/post-modal-provider.tsx +++ b/src/providers/route/post-modal-provider.tsx @@ -1,7 +1,7 @@ import React, { PropsWithChildren, useCallback, useMemo, useState } from "react"; import { useDisclosure } from "@chakra-ui/react"; -import { ErrorBoundary } from "../components/error-boundary"; -import PostModal, { PostModalProps } from "../components/post-modal"; +import { ErrorBoundary } from "../../components/error-boundary"; +import PostModal, { PostModalProps } from "../../components/post-modal"; export type PostModalContextType = { openModal: (props?: PostModalProps) => void; diff --git a/src/providers/require-current-account.tsx b/src/providers/route/require-current-account.tsx similarity index 84% rename from src/providers/require-current-account.tsx rename to src/providers/route/require-current-account.tsx index f164b9a63..afadd19ec 100644 --- a/src/providers/require-current-account.tsx +++ b/src/providers/route/require-current-account.tsx @@ -1,9 +1,8 @@ import { Link, useLocation } from "react-router-dom"; -import useSubject from "../hooks/use-subject"; -import accountService from "../services/account"; +import useSubject from "../../hooks/use-subject"; +import accountService from "../../services/account"; import { Button, Flex, Heading, Spinner, Text } from "@chakra-ui/react"; -import { deleteDatabase } from "../services/db"; -import { ExternalLinkIcon } from "../components/icons"; +import { deleteDatabase } from "../../services/db"; export default function RequireCurrentAccount({ children }: { children: JSX.Element }) { let location = useLocation(); diff --git a/src/views/badges/badge-details.tsx b/src/views/badges/badge-details.tsx index 45ebb9662..e66f8962d 100644 --- a/src/views/badges/badge-details.tsx +++ b/src/views/badges/badge-details.tsx @@ -23,7 +23,7 @@ import { getBadgeAwardPubkeys, getBadgeDescription, getBadgeImage, getBadgeName import BadgeMenu from "./components/badge-menu"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useSubject from "../../hooks/use-subject"; import { NostrEvent } from "../../types/nostr-event"; diff --git a/src/views/badges/browse.tsx b/src/views/badges/browse.tsx index ac5115368..d0f216a94 100644 --- a/src/views/badges/browse.tsx +++ b/src/views/badges/browse.tsx @@ -1,11 +1,11 @@ import { Flex, SimpleGrid } from "@chakra-ui/react"; import { Kind } from "nostr-tools"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useSubject from "../../hooks/use-subject"; import { getEventUID } from "../../helpers/nostr/events"; diff --git a/src/views/badges/components/badge-award-card.tsx b/src/views/badges/components/badge-award-card.tsx index 3f30781a8..eaee74962 100644 --- a/src/views/badges/components/badge-award-card.tsx +++ b/src/views/badges/components/badge-award-card.tsx @@ -5,7 +5,7 @@ import { Link as RouterLink } from "react-router-dom"; import { getBadgeAwardBadge, getBadgeAwardPubkeys, getBadgeImage, getBadgeName } from "../../../helpers/nostr/badges"; import useReplaceableEvent from "../../../hooks/use-replaceable-event"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID } from "../../../helpers/nostr/events"; import { getSharableEventAddress } from "../../../helpers/nip19"; import UserLink from "../../../components/user-link"; diff --git a/src/views/badges/components/badge-card.tsx b/src/views/badges/components/badge-card.tsx index 61f78abdb..9c98a1249 100644 --- a/src/views/badges/components/badge-card.tsx +++ b/src/views/badges/components/badge-card.tsx @@ -6,7 +6,7 @@ import UserAvatarLink from "../../../components/user-avatar-link"; import UserLink from "../../../components/user-link"; import { getSharableEventAddress } from "../../../helpers/nip19"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventCoordinate, getEventUID } from "../../../helpers/nostr/events"; import BadgeMenu from "./badge-menu"; import { getBadgeImage, getBadgeName } from "../../../helpers/nostr/badges"; diff --git a/src/views/badges/components/badge-menu.tsx b/src/views/badges/components/badge-menu.tsx index 00071137e..5dff69f00 100644 --- a/src/views/badges/components/badge-menu.tsx +++ b/src/views/badges/components/badge-menu.tsx @@ -5,7 +5,7 @@ import { CustomMenuIconButton, MenuIconButtonProps } from "../../../components/m import useCurrentAccount from "../../../hooks/use-current-account"; import NoteDebugModal from "../../../components/debug-modals/note-debug-modal"; import { CodeIcon, TrashIcon } from "../../../components/icons"; -import { useDeleteEventContext } from "../../../providers/delete-event-provider"; +import { useDeleteEventContext } from "../../../providers/route/delete-event-provider"; import OpenInAppMenuItem from "../../../components/common-menu-items/open-in-app"; import CopyEmbedCodeMenuItem from "../../../components/common-menu-items/copy-embed-code"; diff --git a/src/views/badges/index.tsx b/src/views/badges/index.tsx index aa74d6cae..6cb57a5fd 100644 --- a/src/views/badges/index.tsx +++ b/src/views/badges/index.tsx @@ -6,11 +6,11 @@ import { Kind } from "nostr-tools"; import { ExternalLinkIcon } from "../../components/icons"; import VerticalPageLayout from "../../components/vertical-page-layout"; import useTimelineLoader from "../../hooks/use-timeline-loader"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import BadgeAwardCard from "./components/badge-award-card"; import { ErrorBoundary } from "../../components/error-boundary"; diff --git a/src/views/channels/channel.tsx b/src/views/channels/channel.tsx index 742c34787..596a82950 100644 --- a/src/views/channels/channel.tsx +++ b/src/views/channels/channel.tsx @@ -7,7 +7,7 @@ import useSingleEvent from "../../hooks/use-single-event"; import { ErrorBoundary } from "../../components/error-boundary"; import { NostrEvent } from "../../types/nostr-event"; import useChannelMetadata from "../../hooks/use-channel-metadata"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import { ChevronLeftIcon } from "../../components/icons"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; import ChannelMetadataDrawer from "./components/channel-metadata-drawer"; @@ -16,8 +16,8 @@ import ChannelMenu from "./components/channel-menu"; import useClientSideMuteFilter from "../../hooks/use-client-side-mute-filter"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; -import ThreadsProvider from "../../providers/thread-provider"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; +import ThreadsProvider from "../../providers/local/thread-provider"; import TimelineLoader from "../../classes/timeline-loader"; import useSubject from "../../hooks/use-subject"; import { groupMessages } from "../../helpers/nostr/dms"; diff --git a/src/views/channels/components/channel-card.tsx b/src/views/channels/components/channel-card.tsx index 31baaa503..2e0f0729f 100644 --- a/src/views/channels/components/channel-card.tsx +++ b/src/views/channels/components/channel-card.tsx @@ -18,7 +18,7 @@ import { import useChannelMetadata from "../../../hooks/use-channel-metadata"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import HoverLinkOverlay from "../../../components/hover-link-overlay"; import UserAvatarLink from "../../../components/user-avatar-link"; import UserLink from "../../../components/user-link"; diff --git a/src/views/channels/components/channel-join-button.tsx b/src/views/channels/components/channel-join-button.tsx index 559bd286b..90d2571d5 100644 --- a/src/views/channels/components/channel-join-button.tsx +++ b/src/views/channels/components/channel-join-button.tsx @@ -5,7 +5,7 @@ import { Button, ButtonProps, useToast } from "@chakra-ui/react"; import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; import useCurrentAccount from "../../../hooks/use-current-account"; import { CHANNELS_LIST_KIND, listAddEvent, listRemoveEvent } from "../../../helpers/nostr/lists"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; import useUserChannelsList from "../../../hooks/use-user-channels-list"; diff --git a/src/views/channels/components/channel-message-content.tsx b/src/views/channels/components/channel-message-content.tsx index 128709305..fe4e0eb0e 100644 --- a/src/views/channels/components/channel-message-content.tsx +++ b/src/views/channels/components/channel-message-content.tsx @@ -2,7 +2,7 @@ import { memo, useMemo } from "react"; import { Box, BoxProps } from "@chakra-ui/react"; import { NostrEvent } from "../../../types/nostr-event"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import { EmbedableContent, embedUrls } from "../../../helpers/embeds"; import { embedCashuTokens, diff --git a/src/views/channels/components/channel-metadata-drawer.tsx b/src/views/channels/components/channel-metadata-drawer.tsx index cf9ed81f4..682ef0052 100644 --- a/src/views/channels/components/channel-metadata-drawer.tsx +++ b/src/views/channels/components/channel-metadata-drawer.tsx @@ -21,11 +21,11 @@ import useChannelMetadata from "../../../hooks/use-channel-metadata"; import useTimelineLoader from "../../../hooks/use-timeline-loader"; import useSubject from "../../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../../providers/local/intersection-observer"; import UserLink from "../../../components/user-link"; import HoverLinkOverlay from "../../../components/hover-link-overlay"; import UserAvatar from "../../../components/user-avatar"; -import { useRelaySelectionContext } from "../../../providers/relay-selection-provider"; +import { useRelaySelectionContext } from "../../../providers/local/relay-selection-provider"; import { UserDnsIdentityIcon } from "../../../components/user-dns-identity-icon"; import ChannelJoinButton from "./channel-join-button"; import { ExternalLinkIcon } from "../../../components/icons"; diff --git a/src/views/channels/components/send-message-form.tsx b/src/views/channels/components/send-message-form.tsx index 73b8a3364..a154e5893 100644 --- a/src/views/channels/components/send-message-form.tsx +++ b/src/views/channels/components/send-message-form.tsx @@ -4,14 +4,14 @@ import dayjs from "dayjs"; import { Kind } from "nostr-tools"; import { Button, Flex, FlexProps, Heading, useToast } from "@chakra-ui/react"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import MagicTextArea, { RefType } from "../../../components/magic-textarea"; import { useTextAreaUploadFileWithForm } from "../../../hooks/use-textarea-upload-file"; import clientRelaysService from "../../../services/client-relays"; import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import { createEmojiTags, ensureNotifyPubkeys, getContentMentions } from "../../../helpers/nostr/post"; -import { useContextEmojis } from "../../../providers/emoji-provider"; +import { useContextEmojis } from "../../../providers/global/emoji-provider"; export default function ChannelMessageForm({ channel, diff --git a/src/views/channels/index.tsx b/src/views/channels/index.tsx index dadd1ac22..9725526b0 100644 --- a/src/views/channels/index.tsx +++ b/src/views/channels/index.tsx @@ -3,17 +3,17 @@ import { Box, Card, CardBody, CardHeader, Flex, LinkBox, Text } from "@chakra-ui import { Link as RouterLink } from "react-router-dom"; import useTimelineLoader from "../../hooks/use-timeline-loader"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import VerticalPageLayout from "../../components/vertical-page-layout"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { NostrEvent } from "../../types/nostr-event"; import { ErrorBoundary } from "../../components/error-boundary"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; import { useCallback, useRef } from "react"; import useClientSideMuteFilter from "../../hooks/use-client-side-mute-filter"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import ChannelCard from "./components/channel-card"; diff --git a/src/views/communities/components/community-card.tsx b/src/views/communities/components/community-card.tsx index 96a64aa3b..3a92ed003 100644 --- a/src/views/communities/components/community-card.tsx +++ b/src/views/communities/components/community-card.tsx @@ -16,7 +16,7 @@ import { } from "@chakra-ui/react"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID } from "../../../helpers/nostr/events"; import { getCommunityImage, getCommunityName } from "../../../helpers/nostr/communities"; import UserAvatarLink from "../../../components/user-avatar-link"; diff --git a/src/views/communities/components/community-create-modal.tsx b/src/views/communities/components/community-create-modal.tsx index 5f4634710..36c589080 100644 --- a/src/views/communities/components/community-create-modal.tsx +++ b/src/views/communities/components/community-create-modal.tsx @@ -34,7 +34,7 @@ import UserLink from "../../../components/user-link"; import { TrashIcon } from "../../../components/icons"; import Upload01 from "../../../components/icons/upload-01"; import { nostrBuildUploadImage } from "../../../helpers/nostr-build"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { RelayUrlInput } from "../../../components/relay-url-input"; import { safeRelayUrl } from "../../../helpers/url"; import { RelayFavicon } from "../../../components/relay-favicon"; diff --git a/src/views/communities/components/community-join-button.tsx b/src/views/communities/components/community-join-button.tsx index bff4b0353..3dab022f9 100644 --- a/src/views/communities/components/community-join-button.tsx +++ b/src/views/communities/components/community-join-button.tsx @@ -8,7 +8,7 @@ import useCurrentAccount from "../../../hooks/use-current-account"; import { getCommunityName } from "../../../helpers/nostr/communities"; import { COMMUNITIES_LIST_KIND, listAddCoordinate, listRemoveCoordinate } from "../../../helpers/nostr/lists"; import { getEventCoordinate } from "../../../helpers/nostr/events"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; diff --git a/src/views/communities/explore.tsx b/src/views/communities/explore.tsx index 425ceeae6..f1140b37f 100644 --- a/src/views/communities/explore.tsx +++ b/src/views/communities/explore.tsx @@ -1,7 +1,7 @@ import { useMemo } from "react"; import { AvatarGroup, Button, Flex, SimpleGrid, Switch, useDisclosure } from "@chakra-ui/react"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import { PointerCommunityCard } from "./components/community-card"; import VerticalPageLayout from "../../components/vertical-page-layout"; diff --git a/src/views/communities/index.tsx b/src/views/communities/index.tsx index f306829de..bc377192c 100644 --- a/src/views/communities/index.tsx +++ b/src/views/communities/index.tsx @@ -29,7 +29,7 @@ import useUserCommunitiesList from "../../hooks/use-user-communities-list"; import useCurrentAccount from "../../hooks/use-current-account"; import CommunityCard from "./components/community-card"; import CommunityCreateModal, { FormValues } from "./components/community-create-modal"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import { DraftNostrEvent } from "../../types/nostr-event"; import { COMMUNITY_APPROVAL_KIND, @@ -50,7 +50,7 @@ import useUserMuteFilter from "../../hooks/use-user-mute-filter"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useReplaceableEvents from "../../hooks/use-replaceable-events"; import { getEventCoordinate, sortByDate } from "../../helpers/nostr/events"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import ApprovedEvent from "../community/components/community-approved-post"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; diff --git a/src/views/community/community-home.tsx b/src/views/community/community-home.tsx index c7e8b02ec..15444c523 100644 --- a/src/views/community/community-home.tsx +++ b/src/views/community/community-home.tsx @@ -15,19 +15,19 @@ import { NostrEvent } from "../../types/nostr-event"; import VerticalPageLayout from "../../components/vertical-page-layout"; import UserAvatarLink from "../../components/user-avatar-link"; import UserLink from "../../components/user-link"; -import { AdditionalRelayProvider } from "../../providers/additional-relay-context"; +import { AdditionalRelayProvider } from "../../providers/local/additional-relay-context"; import TrendUp01 from "../../components/icons/trend-up-01"; import Clock from "../../components/icons/clock"; import Hourglass03 from "../../components/icons/hourglass-03"; import VerticalCommunityDetails from "./components/vertical-community-details"; -import { useBreakpointValue } from "../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../providers/global/breakpoint-provider"; import HorizontalCommunityDetails from "./components/horizonal-community-details"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { getEventCoordinate, getEventUID } from "../../helpers/nostr/events"; import { WritingIcon } from "../../components/icons"; -import { PostModalContext } from "../../providers/post-modal-provider"; +import { PostModalContext } from "../../providers/route/post-modal-provider"; import CommunityEditModal from "./components/community-edit-modal"; import TimelineLoader from "../../classes/timeline-loader"; import useSubject from "../../hooks/use-subject"; diff --git a/src/views/community/components/community-edit-modal.tsx b/src/views/community/components/community-edit-modal.tsx index aa991bd25..8ce5944a0 100644 --- a/src/views/community/components/community-edit-modal.tsx +++ b/src/views/community/components/community-edit-modal.tsx @@ -3,7 +3,7 @@ import { ModalProps, useToast } from "@chakra-ui/react"; import dayjs from "dayjs"; import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { COMMUNITY_DEFINITION_KIND, getCommunityDescription, diff --git a/src/views/community/components/community-members-modal.tsx b/src/views/community/components/community-members-modal.tsx index 32c41d926..a11869d0b 100644 --- a/src/views/community/components/community-members-modal.tsx +++ b/src/views/community/components/community-members-modal.tsx @@ -18,7 +18,7 @@ import { useReadRelayUrls } from "../../../hooks/use-client-relays"; import { getCommunityRelays } from "../../../helpers/nostr/communities"; import { getEventCoordinate } from "../../../helpers/nostr/events"; import { COMMUNITIES_LIST_KIND } from "../../../helpers/nostr/lists"; -import IntersectionObserverProvider from "../../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../../providers/local/intersection-observer"; import useSubject from "../../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; import TimelineActionAndStatus from "../../../components/timeline-page/timeline-action-and-status"; diff --git a/src/views/community/components/community-post.tsx b/src/views/community/components/community-post.tsx index 1c6f629dd..77a76f7a6 100644 --- a/src/views/community/components/community-post.tsx +++ b/src/views/community/components/community-post.tsx @@ -22,7 +22,7 @@ import { useNavigateInDrawer } from "../../../providers/drawer-sub-view-provider import { getSharableEventAddress } from "../../../helpers/nip19"; import HoverLinkOverlay from "../../../components/hover-link-overlay"; import { CompactNoteContent } from "../../../components/compact-note-content"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID, parseHardcodedNoteContent } from "../../../helpers/nostr/events"; import UserLink from "../../../components/user-link"; import UserAvatarLink from "../../../components/user-avatar-link"; diff --git a/src/views/community/components/post-vote-buttions.tsx b/src/views/community/components/post-vote-buttions.tsx index 8aadcd52c..1c3278768 100644 --- a/src/views/community/components/post-vote-buttions.tsx +++ b/src/views/community/components/post-vote-buttions.tsx @@ -3,7 +3,7 @@ import { Card, CardProps, IconButton, Text, useToast } from "@chakra-ui/react"; import useCurrentAccount from "../../../hooks/use-current-account"; import useEventReactions from "../../../hooks/use-event-reactions"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { draftEventReaction, groupReactions } from "../../../helpers/nostr/reactions"; import clientRelaysService from "../../../services/client-relays"; import { getCommunityPostVote } from "../../../helpers/nostr/communities"; @@ -12,7 +12,7 @@ import eventReactionsService from "../../../services/event-reactions"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import { ChevronDownIcon, ChevronUpIcon } from "../../../components/icons"; import { NostrEvent } from "../../../types/nostr-event"; -import { useAdditionalRelayContext } from "../../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context"; export default function PostVoteButtons({ event, ...props }: Omit & { event: NostrEvent }) { const account = useCurrentAccount(); diff --git a/src/views/community/find-by-name.tsx b/src/views/community/find-by-name.tsx index e6392318f..0c1443ba1 100644 --- a/src/views/community/find-by-name.tsx +++ b/src/views/community/find-by-name.tsx @@ -8,7 +8,7 @@ import useTimelineLoader from "../../hooks/use-timeline-loader"; import { NostrEvent } from "../../types/nostr-event"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import VerticalPageLayout from "../../components/vertical-page-layout"; import CommunityCard from "../communities/components/community-card"; import { getEventUID } from "../../helpers/nostr/events"; diff --git a/src/views/community/views/newest.tsx b/src/views/community/views/newest.tsx index 37eaa6221..abf56751d 100644 --- a/src/views/community/views/newest.tsx +++ b/src/views/community/views/newest.tsx @@ -3,7 +3,7 @@ import { useOutletContext } from "react-router-dom"; import { COMMUNITY_APPROVAL_KIND, buildApprovalMap, getCommunityMods } from "../../../helpers/nostr/communities"; import useSubject from "../../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../../providers/local/intersection-observer"; import TimelineActionAndStatus from "../../../components/timeline-page/timeline-action-and-status"; import useUserMuteFilter from "../../../hooks/use-user-mute-filter"; import ApprovedEvent from "../components/community-approved-post"; diff --git a/src/views/community/views/pending.tsx b/src/views/community/views/pending.tsx index a4e16b7f3..11694cb90 100644 --- a/src/views/community/views/pending.tsx +++ b/src/views/community/views/pending.tsx @@ -12,11 +12,13 @@ import { getCommunityRelays, } from "../../../helpers/nostr/communities"; import useSubject from "../../../hooks/use-subject"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; import TimelineActionAndStatus from "../../../components/timeline-page/timeline-action-and-status"; import { CheckIcon } from "../../../components/icons"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import useCurrentAccount from "../../../hooks/use-current-account"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import { useWriteRelayUrls } from "../../../hooks/use-client-relays"; diff --git a/src/views/community/views/trending.tsx b/src/views/community/views/trending.tsx index a71f0e67a..623da1527 100644 --- a/src/views/community/views/trending.tsx +++ b/src/views/community/views/trending.tsx @@ -10,7 +10,7 @@ import { } from "../../../helpers/nostr/communities"; import useSubject from "../../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../../providers/local/intersection-observer"; import TimelineActionAndStatus from "../../../components/timeline-page/timeline-action-and-status"; import useUserMuteFilter from "../../../hooks/use-user-mute-filter"; import useEventsReactions from "../../../hooks/use-events-reactions"; diff --git a/src/views/dms/chat.tsx b/src/views/dms/chat.tsx index c49de36b5..4607eab2e 100644 --- a/src/views/dms/chat.tsx +++ b/src/views/dms/chat.tsx @@ -8,19 +8,19 @@ import UserAvatar from "../../components/user-avatar"; import UserLink from "../../components/user-link"; import { isHexKey } from "../../helpers/nip19"; import useSubject from "../../hooks/use-subject"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useCurrentAccount from "../../hooks/use-current-account"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import { UserDnsIdentityIcon } from "../../components/user-dns-identity-icon"; -import { useDecryptionContext } from "../../providers/dycryption-provider"; +import { useDecryptionContext } from "../../providers/global/dycryption-provider"; import SendMessageForm from "./components/send-message-form"; import { groupMessages } from "../../helpers/nostr/dms"; import ThreadDrawer from "./components/thread-drawer"; -import ThreadsProvider from "../../providers/thread-provider"; +import ThreadsProvider from "../../providers/local/thread-provider"; import { useRouterMarker } from "../../providers/drawer-sub-view-provider"; import TimelineLoader from "../../classes/timeline-loader"; import DirectMessageBlock from "./components/direct-message-block"; diff --git a/src/views/dms/components/decrypt-placeholder.tsx b/src/views/dms/components/decrypt-placeholder.tsx index 1f9880e08..0878c712d 100644 --- a/src/views/dms/components/decrypt-placeholder.tsx +++ b/src/views/dms/components/decrypt-placeholder.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import { Alert, AlertDescription, AlertIcon, Button, ButtonProps } from "@chakra-ui/react"; import { UnlockIcon } from "../../../components/icons"; -import { useDecryptionContainer } from "../../../providers/dycryption-provider"; +import { useDecryptionContainer } from "../../../providers/global/dycryption-provider"; import useCurrentAccount from "../../../hooks/use-current-account"; import { getDMRecipient, getDMSender } from "../../../helpers/nostr/dms"; import { NostrEvent } from "../../../types/nostr-event"; diff --git a/src/views/dms/components/direct-message-content.tsx b/src/views/dms/components/direct-message-content.tsx index 0a07adc21..a972c9707 100644 --- a/src/views/dms/components/direct-message-content.tsx +++ b/src/views/dms/components/direct-message-content.tsx @@ -19,7 +19,7 @@ import { renderWavlakeUrl, renderYoutubeUrl, } from "../../../components/embed-types"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import { LightboxProvider } from "../../../components/lightbox-provider"; export default function DirectMessageContent({ diff --git a/src/views/dms/components/send-message-form.tsx b/src/views/dms/components/send-message-form.tsx index 1762d3d34..14583d2bb 100644 --- a/src/views/dms/components/send-message-form.tsx +++ b/src/views/dms/components/send-message-form.tsx @@ -4,7 +4,7 @@ import dayjs from "dayjs"; import { Kind } from "nostr-tools"; import { Button, Flex, FlexProps, Heading, useToast } from "@chakra-ui/react"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import MagicTextArea, { RefType } from "../../../components/magic-textarea"; import { useTextAreaUploadFileWithForm } from "../../../hooks/use-textarea-upload-file"; import clientRelaysService from "../../../services/client-relays"; @@ -13,7 +13,7 @@ import { DraftNostrEvent } from "../../../types/nostr-event"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import { useUserRelays } from "../../../hooks/use-user-relays"; import { RelayMode } from "../../../classes/relay"; -import { useDecryptionContext } from "../../../providers/dycryption-provider"; +import { useDecryptionContext } from "../../../providers/global/dycryption-provider"; export default function SendMessageForm({ pubkey, diff --git a/src/views/dms/components/thread-button.tsx b/src/views/dms/components/thread-button.tsx index 7f22f66f3..0fbe4219c 100644 --- a/src/views/dms/components/thread-button.tsx +++ b/src/views/dms/components/thread-button.tsx @@ -2,7 +2,7 @@ import { Button, IconButton } from "@chakra-ui/react"; import { useLocation, useNavigate } from "react-router-dom"; import UserAvatar from "../../../components/user-avatar"; -import { Thread } from "../../../providers/thread-provider"; +import { Thread } from "../../../providers/local/thread-provider"; import { ChevronRightIcon, ThreadIcon } from "../../../components/icons"; import { IconButtonProps } from "yet-another-react-lightbox"; import { NostrEvent } from "../../../types/nostr-event"; diff --git a/src/views/dms/components/thread-drawer.tsx b/src/views/dms/components/thread-drawer.tsx index 97d41199c..b8e39553c 100644 --- a/src/views/dms/components/thread-drawer.tsx +++ b/src/views/dms/components/thread-drawer.tsx @@ -23,11 +23,11 @@ import UserAvatar from "../../../components/user-avatar"; import UserLink from "../../../components/user-link"; import DecryptPlaceholder from "./decrypt-placeholder"; import Timestamp from "../../../components/timestamp"; -import { Thread, useThreadsContext } from "../../../providers/thread-provider"; +import { Thread, useThreadsContext } from "../../../providers/local/thread-provider"; import ThreadButton from "./thread-button"; import SendMessageForm from "./send-message-form"; import { groupMessages } from "../../../helpers/nostr/dms"; -import { useDecryptionContext } from "../../../providers/dycryption-provider"; +import { useDecryptionContext } from "../../../providers/global/dycryption-provider"; import DirectMessageBlock from "./direct-message-block"; function MessagePreview({ message, ...props }: { message: NostrEvent } & Omit) { diff --git a/src/views/dms/index.tsx b/src/views/dms/index.tsx index d91270fb2..84468c7c7 100644 --- a/src/views/dms/index.tsx +++ b/src/views/dms/index.tsx @@ -9,10 +9,10 @@ import { getUserDisplayName } from "../../helpers/user-metadata"; import useSubject from "../../hooks/use-subject"; import { useUserMetadata } from "../../hooks/use-user-metadata"; import directMessagesService from "../../services/direct-messages"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import Timestamp from "../../components/timestamp"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; function ContactCard({ pubkey }: { pubkey: string }) { const subject = useMemo(() => directMessagesService.getUserMessages(pubkey), [pubkey]); diff --git a/src/views/dvm-feed/components/feed-status.tsx b/src/views/dvm-feed/components/feed-status.tsx index 60355eb9f..84bc3a0dd 100644 --- a/src/views/dvm-feed/components/feed-status.tsx +++ b/src/views/dvm-feed/components/feed-status.tsx @@ -9,7 +9,7 @@ import { } from "../../../helpers/nostr/dvm"; import { InlineInvoiceCard } from "../../../components/inline-invoice-card"; import NostrPublishAction from "../../../classes/nostr-publish-action"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { DraftNostrEvent } from "../../../types/nostr-event"; import { unique } from "../../../helpers/array"; import clientRelaysService from "../../../services/client-relays"; diff --git a/src/views/dvm-feed/feed.tsx b/src/views/dvm-feed/feed.tsx index e26f6d51b..fcc42046a 100644 --- a/src/views/dvm-feed/feed.tsx +++ b/src/views/dvm-feed/feed.tsx @@ -32,9 +32,9 @@ import useSubject from "../../hooks/use-subject"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import { useUserRelays } from "../../hooks/use-user-relays"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import useCurrentAccount from "../../hooks/use-current-account"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import { CodeIcon } from "../../components/icons"; import { unique } from "../../helpers/array"; import DebugChains from "./components/debug-chains"; diff --git a/src/views/dvm-feed/index.tsx b/src/views/dvm-feed/index.tsx index 5795a0673..4c447f4a0 100644 --- a/src/views/dvm-feed/index.tsx +++ b/src/views/dvm-feed/index.tsx @@ -6,7 +6,7 @@ import { DVM_CONTENT_DISCOVERY_JOB_KIND } from "../../helpers/nostr/dvm"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import useSubject from "../../hooks/use-subject"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import { getEventCoordinate } from "../../helpers/nostr/events"; function DVMFeedHomePage() { diff --git a/src/views/emoji-packs/browse.tsx b/src/views/emoji-packs/browse.tsx index 3959f92c0..dbaa75546 100644 --- a/src/views/emoji-packs/browse.tsx +++ b/src/views/emoji-packs/browse.tsx @@ -1,12 +1,12 @@ import { useCallback } from "react"; import { Flex, SimpleGrid, Switch, useDisclosure } from "@chakra-ui/react"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import { NostrEvent } from "../../types/nostr-event"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useSubject from "../../hooks/use-subject"; import EmojiPackCard from "./components/emoji-pack-card"; diff --git a/src/views/emoji-packs/components/create-modal.tsx b/src/views/emoji-packs/components/create-modal.tsx index 7a41a5dc2..1a14be4ea 100644 --- a/src/views/emoji-packs/components/create-modal.tsx +++ b/src/views/emoji-packs/components/create-modal.tsx @@ -19,7 +19,7 @@ import dayjs from "dayjs"; import { EMOJI_PACK_KIND } from "../../../helpers/nostr/emoji-packs"; import { DraftNostrEvent } from "../../../types/nostr-event"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; import replaceableEventLoaderService from "../../../services/replaceable-event-requester"; diff --git a/src/views/emoji-packs/components/emoji-pack-card.tsx b/src/views/emoji-packs/components/emoji-pack-card.tsx index c4067731c..c2c97f70f 100644 --- a/src/views/emoji-packs/components/emoji-pack-card.tsx +++ b/src/views/emoji-packs/components/emoji-pack-card.tsx @@ -17,7 +17,7 @@ import UserAvatarLink from "../../../components/user-avatar-link"; import UserLink from "../../../components/user-link"; import { getSharableEventAddress } from "../../../helpers/nip19"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import EmojiPackFavoriteButton from "./emoji-pack-favorite-button"; import { getEventUID } from "../../../helpers/nostr/events"; import { getEmojisFromPack, getPackName } from "../../../helpers/nostr/emoji-packs"; diff --git a/src/views/emoji-packs/components/emoji-pack-favorite-button.tsx b/src/views/emoji-packs/components/emoji-pack-favorite-button.tsx index f1a7eda01..ac29eb5bc 100644 --- a/src/views/emoji-packs/components/emoji-pack-favorite-button.tsx +++ b/src/views/emoji-packs/components/emoji-pack-favorite-button.tsx @@ -5,7 +5,7 @@ import dayjs from "dayjs"; import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; import { StarEmptyIcon, StarFullIcon } from "../../../components/icons"; import { getEventCoordinate } from "../../../helpers/nostr/events"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; import replaceableEventLoaderService from "../../../services/replaceable-event-requester"; diff --git a/src/views/emoji-packs/emoji-pack.tsx b/src/views/emoji-packs/emoji-pack.tsx index 08f0ccb41..b66e48409 100644 --- a/src/views/emoji-packs/emoji-pack.tsx +++ b/src/views/emoji-packs/emoji-pack.tsx @@ -22,12 +22,12 @@ import { import UserLink from "../../components/user-link"; import { ChevronLeftIcon } from "../../components/icons"; import useCurrentAccount from "../../hooks/use-current-account"; -import { useDeleteEventContext } from "../../providers/delete-event-provider"; +import { useDeleteEventContext } from "../../providers/route/delete-event-provider"; import useReplaceableEvent from "../../hooks/use-replaceable-event"; import EmojiPackMenu from "./components/emoji-pack-menu"; import EmojiPackFavoriteButton from "./components/emoji-pack-favorite-button"; import { EMOJI_PACK_KIND, getEmojisFromPack, getPackName } from "../../helpers/nostr/emoji-packs"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import NostrPublishAction from "../../classes/nostr-publish-action"; import clientRelaysService from "../../services/client-relays"; import replaceableEventLoaderService from "../../services/replaceable-event-requester"; diff --git a/src/views/files/index.tsx b/src/views/files/index.tsx index 5e45424ec..91c927085 100644 --- a/src/views/files/index.tsx +++ b/src/views/files/index.tsx @@ -7,10 +7,10 @@ import { NostrEvent } from "../../types/nostr-event"; import { FILE_KIND, IMAGE_TYPES, VIDEO_TYPES, getFileUrl, parseImageFile } from "../../helpers/nostr/files"; import { ErrorBoundary } from "../../components/error-boundary"; import useAppSettings from "../../hooks/use-app-settings"; -import { TrustProvider, useTrusted } from "../../providers/trust"; +import { TrustProvider, useTrusted } from "../../providers/local/trust"; import BlurredImage from "../../components/blured-image"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; import { UserAvatarLink } from "../../components/user-avatar-link"; @@ -20,7 +20,9 @@ import TimelineActionAndStatus from "../../components/timeline-page/timeline-act import VerticalPageLayout from "../../components/vertical-page-layout"; import Timestamp from "../../components/timestamp"; import NoteZapButton from "../../components/note/note-zap-button"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; function ImageFile({ event }: { event: NostrEvent }) { diff --git a/src/views/goals/browse.tsx b/src/views/goals/browse.tsx index ea02ab3da..c05d6810d 100644 --- a/src/views/goals/browse.tsx +++ b/src/views/goals/browse.tsx @@ -2,11 +2,11 @@ import { useCallback } from "react"; import { Flex, SimpleGrid, Switch, useDisclosure } from "@chakra-ui/react"; import dayjs from "dayjs"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useSubject from "../../hooks/use-subject"; import GoalCard from "./components/goal-card"; diff --git a/src/views/goals/components/goal-card.tsx b/src/views/goals/components/goal-card.tsx index a30d111bb..811f800da 100644 --- a/src/views/goals/components/goal-card.tsx +++ b/src/views/goals/components/goal-card.tsx @@ -6,7 +6,7 @@ import UserAvatarLink from "../../../components/user-avatar-link"; import UserLink from "../../../components/user-link"; import { getSharableEventAddress } from "../../../helpers/nip19"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID } from "../../../helpers/nostr/events"; import { getGoalClosedDate, getGoalName } from "../../../helpers/nostr/goal"; import GoalMenu from "./goal-menu"; diff --git a/src/views/hashtag/index.tsx b/src/views/hashtag/index.tsx index 83b86827b..9f6287d6c 100644 --- a/src/views/hashtag/index.tsx +++ b/src/views/hashtag/index.tsx @@ -19,12 +19,12 @@ import { isReply, isRepost } from "../../helpers/nostr/events"; import { CheckIcon, EditIcon } from "../../components/icons"; import { NostrEvent } from "../../types/nostr-event"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; -import RelaySelectionProvider, { useRelaySelectionRelays } from "../../providers/relay-selection-provider"; +import RelaySelectionProvider, { useRelaySelectionRelays } from "../../providers/local/relay-selection-provider"; import useRelaysChanged from "../../hooks/use-relays-changed"; import TimelinePage, { useTimelinePageEventFilter } from "../../components/timeline-page"; import TimelineViewTypeButtons from "../../components/timeline-page/timeline-view-type"; import useClientSideMuteFilter from "../../hooks/use-client-side-mute-filter"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import NoteFilterTypeButtons from "../../components/note-filter-type-buttons"; import { useRouteStateBoolean } from "../../hooks/use-route-state-value"; diff --git a/src/views/home/index.tsx b/src/views/home/index.tsx index c9b4c90f8..02444c8a2 100644 --- a/src/views/home/index.tsx +++ b/src/views/home/index.tsx @@ -9,8 +9,8 @@ import TimelinePage, { useTimelinePageEventFilter } from "../../components/timel import TimelineViewTypeButtons from "../../components/timeline-page/timeline-view-type"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import useClientSideMuteFilter from "../../hooks/use-client-side-mute-filter"; import NoteFilterTypeButtons from "../../components/note-filter-type-buttons"; diff --git a/src/views/lists/browse.tsx b/src/views/lists/browse.tsx index e140a0e65..e01c2b1b4 100644 --- a/src/views/lists/browse.tsx +++ b/src/views/lists/browse.tsx @@ -1,6 +1,6 @@ import { Flex, Select, SimpleGrid, Switch, useDisclosure } from "@chakra-ui/react"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; @@ -14,7 +14,7 @@ import { } from "../../helpers/nostr/lists"; import { useCallback, useState } from "react"; import { NostrEvent } from "../../types/nostr-event"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useSubject from "../../hooks/use-subject"; import ListCard from "./components/list-card"; diff --git a/src/views/lists/components/list-card.tsx b/src/views/lists/components/list-card.tsx index abdc86d20..202161ae8 100644 --- a/src/views/lists/components/list-card.tsx +++ b/src/views/lists/components/list-card.tsx @@ -30,7 +30,7 @@ import { getSharableEventAddress } from "../../../helpers/nip19"; import { NostrEvent } from "../../../types/nostr-event"; import useReplaceableEvent from "../../../hooks/use-replaceable-event"; import { createCoordinate } from "../../../services/replaceable-event-requester"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import ListFavoriteButton from "./list-favorite-button"; import { getEventUID } from "../../../helpers/nostr/events"; import ListMenu from "./list-menu"; diff --git a/src/views/lists/components/list-favorite-button.tsx b/src/views/lists/components/list-favorite-button.tsx index 46bde396e..2d63e3446 100644 --- a/src/views/lists/components/list-favorite-button.tsx +++ b/src/views/lists/components/list-favorite-button.tsx @@ -5,7 +5,7 @@ import dayjs from "dayjs"; import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; import { StarEmptyIcon, StarFullIcon } from "../../../components/icons"; import { getEventCoordinate } from "../../../helpers/nostr/events"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; import replaceableEventLoaderService from "../../../services/replaceable-event-requester"; diff --git a/src/views/lists/components/new-list-modal.tsx b/src/views/lists/components/new-list-modal.tsx index bfebc0ea7..939e12455 100644 --- a/src/views/lists/components/new-list-modal.tsx +++ b/src/views/lists/components/new-list-modal.tsx @@ -19,7 +19,7 @@ import dayjs from "dayjs"; import { NOTE_LIST_KIND, PEOPLE_LIST_KIND } from "../../../helpers/nostr/lists"; import { DraftNostrEvent, NostrEvent } from "../../../types/nostr-event"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; diff --git a/src/views/lists/components/user-card.tsx b/src/views/lists/components/user-card.tsx index 50168ff2e..c45a4a295 100644 --- a/src/views/lists/components/user-card.tsx +++ b/src/views/lists/components/user-card.tsx @@ -9,7 +9,7 @@ import { UserDnsIdentityIcon } from "../../../components/user-dns-identity-icon" import { NostrEvent } from "../../../types/nostr-event"; import useAsyncErrorHandler from "../../../hooks/use-async-error-handler"; import { listRemovePerson } from "../../../helpers/nostr/lists"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import clientRelaysService from "../../../services/client-relays"; import useCurrentAccount from "../../../hooks/use-current-account"; diff --git a/src/views/lists/list/index.tsx b/src/views/lists/list/index.tsx index 1f904c1fb..c4ed1efc4 100644 --- a/src/views/lists/list/index.tsx +++ b/src/views/lists/list/index.tsx @@ -6,7 +6,7 @@ import { Box, Button, Flex, Heading, SimpleGrid, Spacer, Spinner, Text } from "@ import UserLink from "../../../components/user-link"; import { ChevronLeftIcon } from "../../../components/icons"; import useCurrentAccount from "../../../hooks/use-current-account"; -import { useDeleteEventContext } from "../../../providers/delete-event-provider"; +import { useDeleteEventContext } from "../../../providers/route/delete-event-provider"; import { getEventsFromList, getListDescription, @@ -19,7 +19,7 @@ import { import useReplaceableEvent from "../../../hooks/use-replaceable-event"; import UserCard from "../components/user-card"; import OpenGraphCard from "../../../components/open-graph-card"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import ListMenu from "../components/list-menu"; import ListFavoriteButton from "../components/list-favorite-button"; import ListFeedButton from "../components/list-feed-button"; diff --git a/src/views/notifications/index.tsx b/src/views/notifications/index.tsx index a39af76c4..087bb0e48 100644 --- a/src/views/notifications/index.tsx +++ b/src/views/notifications/index.tsx @@ -3,14 +3,16 @@ import { Button, ButtonGroup, Flex, useDisclosure } from "@chakra-ui/react"; import { Kind } from "nostr-tools"; import { Link as RouterLink } from "react-router-dom"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import { useNotificationTimeline } from "../../providers/notification-timeline"; +import { useNotificationTimeline } from "../../providers/global/notification-timeline"; import { getEventUID, isReply } from "../../helpers/nostr/events"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import VerticalPageLayout from "../../components/vertical-page-layout"; import NotificationItem from "./notification-item"; diff --git a/src/views/notifications/notification-item.tsx b/src/views/notifications/notification-item.tsx index 37a076e5a..0067b1df1 100644 --- a/src/views/notifications/notification-item.tsx +++ b/src/views/notifications/notification-item.tsx @@ -4,14 +4,14 @@ import { Kind, nip18, nip25 } from "nostr-tools"; import useCurrentAccount from "../../hooks/use-current-account"; import { NostrEvent, isATag, isETag } from "../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../providers/local/intersection-observer"; import { parseZapEvent } from "../../helpers/nostr/zaps"; import { readablizeSats } from "../../helpers/bolt11"; import { getEventUID, getReferences, isMentionedInContent, parseCoordinate } from "../../helpers/nostr/events"; import { EmbedEvent, EmbedEventPointer } from "../../components/embed-event"; import EmbeddedUnknown from "../../components/embed-event/event-types/embedded-unknown"; import { ErrorBoundary } from "../../components/error-boundary"; -import { TrustProvider } from "../../providers/trust"; +import { TrustProvider } from "../../providers/local/trust"; import Heart from "../../components/icons/heart"; import UserAvatarLink from "../../components/user-avatar-link"; import { AtIcon, ChevronDownIcon, ChevronUpIcon, LightningIcon, ReplyIcon, RepostIcon } from "../../components/icons"; diff --git a/src/views/notifications/threads.tsx b/src/views/notifications/threads.tsx index ac08e5da5..4cdf0ec76 100644 --- a/src/views/notifications/threads.tsx +++ b/src/views/notifications/threads.tsx @@ -3,12 +3,12 @@ import { Kind } from "nostr-tools"; import { Link as RouterLink, useNavigate } from "react-router-dom"; import useCurrentAccount from "../../hooks/use-current-account"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import VerticalPageLayout from "../../components/vertical-page-layout"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import { useNotificationTimeline } from "../../providers/notification-timeline"; +import { useNotificationTimeline } from "../../providers/global/notification-timeline"; import { TORRENT_COMMENT_KIND } from "../../helpers/nostr/torrents"; import { groupByRoot } from "../../helpers/notification"; import { NostrEvent } from "../../types/nostr-event"; @@ -23,7 +23,9 @@ import Timestamp from "../../components/timestamp"; import HoverLinkOverlay from "../../components/hover-link-overlay"; import { getSharableEventAddress } from "../../helpers/nip19"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { getEventUID } from "../../helpers/nostr/events"; import { useNavigateInDrawer } from "../../providers/drawer-sub-view-provider"; diff --git a/src/views/profile/index.tsx b/src/views/profile/index.tsx index b212d9f0b..3f1a4c7e7 100644 --- a/src/views/profile/index.tsx +++ b/src/views/profile/index.tsx @@ -1,4 +1,4 @@ -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import { ProfileEditView } from "./edit"; export default function ProfileView() { diff --git a/src/views/relays/components/relay-review-note.tsx b/src/views/relays/components/relay-review-note.tsx index d68c9b2f4..0d5d65d9a 100644 --- a/src/views/relays/components/relay-review-note.tsx +++ b/src/views/relays/components/relay-review-note.tsx @@ -8,7 +8,7 @@ import { UserDnsIdentityIcon } from "../../../components/user-dns-identity-icon" import StarRating from "../../../components/star-rating"; import { safeJson } from "../../../helpers/parse"; import { NostrEvent } from "../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { NoteContents } from "../../../components/note/text-note-contents"; import { Metadata } from "./relay-card"; import { getEventUID } from "../../../helpers/nostr/events"; diff --git a/src/views/relays/components/relay-share-button.tsx b/src/views/relays/components/relay-share-button.tsx index ebd2945b8..56c2f5caf 100644 --- a/src/views/relays/components/relay-share-button.tsx +++ b/src/views/relays/components/relay-share-button.tsx @@ -2,7 +2,7 @@ import { useCallback } from "react"; import dayjs from "dayjs"; import { IconButton, IconButtonProps, useToast } from "@chakra-ui/react"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import clientRelaysService from "../../../services/client-relays"; import { DraftNostrEvent } from "../../../types/nostr-event"; import NostrPublishAction from "../../../classes/nostr-publish-action"; diff --git a/src/views/relays/popular.tsx b/src/views/relays/popular.tsx index 08c579711..054a046ae 100644 --- a/src/views/relays/popular.tsx +++ b/src/views/relays/popular.tsx @@ -20,7 +20,7 @@ import { useClientRelays, useReadRelayUrls } from "../../hooks/use-client-relays import useCurrentAccount from "../../hooks/use-current-account"; import useSubjects from "../../hooks/use-subjects"; import useUserContactList from "../../hooks/use-user-contact-list"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import userRelaysService from "../../services/user-relays"; import { NostrEvent } from "../../types/nostr-event"; import { RelayFavicon } from "../../components/relay-favicon"; diff --git a/src/views/relays/relay/index.tsx b/src/views/relays/relay/index.tsx index 64513147e..895d9208b 100644 --- a/src/views/relays/relay/index.tsx +++ b/src/views/relays/relay/index.tsx @@ -21,7 +21,7 @@ import { ExternalLinkIcon } from "../../../components/icons"; import RelayReviewForm from "./relay-review-form"; import RelayReviews from "./relay-reviews"; import RelayNotes from "./relay-notes"; -import PeopleListProvider from "../../../providers/people-list-provider"; +import PeopleListProvider from "../../../providers/local/people-list-provider"; import PeopleListSelection from "../../../components/people-list-selection/people-list-selection"; import { RelayFavicon } from "../../../components/relay-favicon"; import VerticalPageLayout from "../../../components/vertical-page-layout"; diff --git a/src/views/relays/relay/relay-notes.tsx b/src/views/relays/relay/relay-notes.tsx index c89344f00..e8eedbc3d 100644 --- a/src/views/relays/relay/relay-notes.tsx +++ b/src/views/relays/relay/relay-notes.tsx @@ -9,7 +9,7 @@ import { NostrEvent } from "../../../types/nostr-event"; import TimelinePage, { useTimelinePageEventFilter } from "../../../components/timeline-page"; import TimelineViewTypeButtons from "../../../components/timeline-page/timeline-view-type"; import PeopleListSelection from "../../../components/people-list-selection/people-list-selection"; -import { usePeopleListContext } from "../../../providers/people-list-provider"; +import { usePeopleListContext } from "../../../providers/local/people-list-provider"; import { NostrRequestFilter } from "../../../types/nostr-query"; import useClientSideMuteFilter from "../../../hooks/use-client-side-mute-filter"; import NoteFilterTypeButtons from "../../../components/note-filter-type-buttons"; diff --git a/src/views/relays/relay/relay-review-form.tsx b/src/views/relays/relay/relay-review-form.tsx index e9a080eab..5e2c660ac 100644 --- a/src/views/relays/relay/relay-review-form.tsx +++ b/src/views/relays/relay/relay-review-form.tsx @@ -6,7 +6,7 @@ import { useWriteRelayUrls } from "../../../hooks/use-client-relays"; import StarRating from "../../../components/star-rating"; import { DraftNostrEvent } from "../../../types/nostr-event"; import { RELAY_REVIEW_LABEL, RELAY_REVIEW_LABEL_NAMESPACE, REVIEW_KIND } from "../../../helpers/nostr/reviews"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import NostrPublishAction from "../../../classes/nostr-publish-action"; export default function RelayReviewForm({ diff --git a/src/views/relays/relay/relay-reviews.tsx b/src/views/relays/relay/relay-reviews.tsx index 96c085370..eca249b77 100644 --- a/src/views/relays/relay/relay-reviews.tsx +++ b/src/views/relays/relay/relay-reviews.tsx @@ -6,7 +6,7 @@ import useSubject from "../../../hooks/use-subject"; import useTimelineLoader from "../../../hooks/use-timeline-loader"; import RelayReviewNote from "../components/relay-review-note"; import { useAppTitle } from "../../../hooks/use-app-title"; -import { usePeopleListContext } from "../../../providers/people-list-provider"; +import { usePeopleListContext } from "../../../providers/local/people-list-provider"; export default function RelayReviews({ relay }: { relay: string }) { useAppTitle(`${relay} - Reviews`); diff --git a/src/views/relays/reviews.tsx b/src/views/relays/reviews.tsx index 4f17ba1d0..cd0e808dc 100644 --- a/src/views/relays/reviews.tsx +++ b/src/views/relays/reviews.tsx @@ -6,8 +6,8 @@ import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import RelayReviewNote from "./components/relay-review-note"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import VerticalPageLayout from "../../components/vertical-page-layout"; import { ChevronLeftIcon } from "../../components/icons"; diff --git a/src/views/search/article-results.tsx b/src/views/search/article-results.tsx index e579f0599..896a30f22 100644 --- a/src/views/search/article-results.tsx +++ b/src/views/search/article-results.tsx @@ -1,11 +1,11 @@ import { Kind } from "nostr-tools"; -import { useRelaySelectionRelays } from "../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../providers/local/relay-selection-provider"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import GenericNoteTimeline from "../../components/timeline-page/generic-note-timeline"; -import { usePeopleListContext } from "../../providers/people-list-provider"; +import { usePeopleListContext } from "../../providers/local/people-list-provider"; export default function ArticleSearchResults({ search }: { search: string }) { const searchRelays = useRelaySelectionRelays(); diff --git a/src/views/search/community-results.tsx b/src/views/search/community-results.tsx index 2a0b84f4a..b5e1a5bcc 100644 --- a/src/views/search/community-results.tsx +++ b/src/views/search/community-results.tsx @@ -1,14 +1,16 @@ -import { useRelaySelectionRelays } from "../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../providers/local/relay-selection-provider"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { COMMUNITY_DEFINITION_KIND } from "../../helpers/nostr/communities"; import { useRef } from "react"; import { getEventUID } from "../../helpers/nostr/events"; import { NostrEvent } from "../../types/nostr-event"; import CommunityCard from "../communities/components/community-card"; import useSubject from "../../hooks/use-subject"; -import { usePeopleListContext } from "../../providers/people-list-provider"; +import { usePeopleListContext } from "../../providers/local/people-list-provider"; function CommunityResult({ community }: { community: NostrEvent }) { const ref = useRef(null); diff --git a/src/views/search/index.tsx b/src/views/search/index.tsx index e6f36f054..a9ee77d21 100644 --- a/src/views/search/index.tsx +++ b/src/views/search/index.tsx @@ -8,7 +8,7 @@ import { getMatchHashtag } from "../../helpers/regexp"; import { CommunityIcon, CopyToClipboardIcon, NotesIcon, QrCodeIcon } from "../../components/icons"; import QrScannerModal from "../../components/qr-scanner-modal"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; -import RelaySelectionProvider from "../../providers/relay-selection-provider"; +import RelaySelectionProvider from "../../providers/local/relay-selection-provider"; import VerticalPageLayout from "../../components/vertical-page-layout"; import User01 from "../../components/icons/user-01"; import Feather from "../../components/icons/feather"; @@ -16,7 +16,7 @@ import ProfileSearchResults from "./profile-results"; import NoteSearchResults from "./note-results"; import ArticleSearchResults from "./article-results"; import CommunitySearchResults from "./community-results"; -import PeopleListProvider from "../../providers/people-list-provider"; +import PeopleListProvider from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import useRouteSearchValue from "../../hooks/use-route-search-value"; diff --git a/src/views/search/note-results.tsx b/src/views/search/note-results.tsx index 545790ce8..3737f9807 100644 --- a/src/views/search/note-results.tsx +++ b/src/views/search/note-results.tsx @@ -1,11 +1,11 @@ import { Kind } from "nostr-tools"; -import { useRelaySelectionRelays } from "../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../providers/local/relay-selection-provider"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import GenericNoteTimeline from "../../components/timeline-page/generic-note-timeline"; -import { usePeopleListContext } from "../../providers/people-list-provider"; +import { usePeopleListContext } from "../../providers/local/people-list-provider"; export default function NoteSearchResults({ search }: { search: string }) { const searchRelays = useRelaySelectionRelays(); diff --git a/src/views/search/profile-results.tsx b/src/views/search/profile-results.tsx index 27e2fc2fa..2f4ec3e2e 100644 --- a/src/views/search/profile-results.tsx +++ b/src/views/search/profile-results.tsx @@ -11,14 +11,14 @@ import { UserDnsIdentityIcon } from "../../components/user-dns-identity-icon"; import { embedNostrLinks, renderGenericUrl } from "../../components/embed-types"; import UserLink from "../../components/user-link"; import trustedUserStatsService, { NostrBandUserStats } from "../../services/trusted-user-stats"; -import { useRelaySelectionRelays } from "../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../providers/local/relay-selection-provider"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { Kind } from "nostr-tools"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; -import { usePeopleListContext } from "../../providers/people-list-provider"; +import { usePeopleListContext } from "../../providers/local/people-list-provider"; function ProfileResult({ profile }: { profile: NostrEvent }) { const metadata = parseKind0Event(profile); diff --git a/src/views/settings/display-settings.tsx b/src/views/settings/display-settings.tsx index 8c730e697..809ad8d62 100644 --- a/src/views/settings/display-settings.tsx +++ b/src/views/settings/display-settings.tsx @@ -28,7 +28,7 @@ import { matchSorter } from "match-sorter"; import { AppSettings } from "../../services/settings/migrations"; import { AppearanceIcon, EditIcon } from "../../components/icons"; -import { useContextEmojis } from "../../providers/emoji-provider"; +import { useContextEmojis } from "../../providers/global/emoji-provider"; export default function DisplaySettings() { const { register, setValue, getValues, watch } = useFormContext(); diff --git a/src/views/streams/components/stream-card.tsx b/src/views/streams/components/stream-card.tsx index 7fae2f306..4e7e4f260 100644 --- a/src/views/streams/components/stream-card.tsx +++ b/src/views/streams/components/stream-card.tsx @@ -6,7 +6,7 @@ import { Link as RouterLink } from "react-router-dom"; import UserAvatar from "../../../components/user-avatar"; import UserLink from "../../../components/user-link"; import StreamStatusBadge from "./status-badge"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import useEventNaddr from "../../../hooks/use-event-naddr"; import { getEventUID } from "../../../helpers/nostr/events"; import StreamHashtags from "./stream-hashtags"; diff --git a/src/views/streams/components/stream-share-button.tsx b/src/views/streams/components/stream-share-button.tsx index d7ff17bad..9da59b124 100644 --- a/src/views/streams/components/stream-share-button.tsx +++ b/src/views/streams/components/stream-share-button.tsx @@ -5,7 +5,7 @@ import dayjs from "dayjs"; import { getSharableEventAddress } from "../../../helpers/nip19"; import { DraftNostrEvent } from "../../../types/nostr-event"; -import { PostModalContext } from "../../../providers/post-modal-provider"; +import { PostModalContext } from "../../../providers/route/post-modal-provider"; import { RepostIcon } from "../../../components/icons"; import { ParsedStream } from "../../../helpers/nostr/stream"; diff --git a/src/views/streams/components/stream-zap-button.tsx b/src/views/streams/components/stream-zap-button.tsx index 1a7c57f9f..926bb1a36 100644 --- a/src/views/streams/components/stream-zap-button.tsx +++ b/src/views/streams/components/stream-zap-button.tsx @@ -3,7 +3,7 @@ import { ParsedStream } from "../../../helpers/nostr/stream"; import { LightningIcon } from "../../../components/icons"; import useUserLNURLMetadata from "../../../hooks/use-user-lnurl-metadata"; import ZapModal from "../../../components/event-zap-modal"; -import { useRelaySelectionRelays } from "../../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../../providers/local/relay-selection-provider"; import useStreamGoal from "../../../hooks/use-stream-goal"; export default function StreamZapButton({ diff --git a/src/views/streams/components/streamer-cards.tsx b/src/views/streams/components/streamer-cards.tsx index f87f59635..b1080225e 100644 --- a/src/views/streams/components/streamer-cards.tsx +++ b/src/views/streams/components/streamer-cards.tsx @@ -13,7 +13,7 @@ import { } from "@chakra-ui/react"; import { useReadRelayUrls } from "../../../hooks/use-client-relays"; -import { useRelaySelectionRelays } from "../../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../../providers/local/relay-selection-provider"; import replaceableEventLoaderService from "../../../services/replaceable-event-requester"; import useSubject from "../../../hooks/use-subject"; import { NoteContents } from "../../../components/note/text-note-contents"; diff --git a/src/views/streams/dashboard/chat-card.tsx b/src/views/streams/dashboard/chat-card.tsx index 2a597e7be..d4539018b 100644 --- a/src/views/streams/dashboard/chat-card.tsx +++ b/src/views/streams/dashboard/chat-card.tsx @@ -3,7 +3,7 @@ import { Flex } from "@chakra-ui/react"; import useStreamChatTimeline from "../stream/stream-chat/use-stream-chat-timeline"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../../providers/local/intersection-observer"; import StreamChatLog from "../stream/stream-chat/chat-log"; import ChatMessageForm from "../stream/stream-chat/stream-chat-form"; import { ParsedStream } from "../../../helpers/nostr/stream"; diff --git a/src/views/streams/dashboard/index.tsx b/src/views/streams/dashboard/index.tsx index 46f2c85cd..44d355bb9 100644 --- a/src/views/streams/dashboard/index.tsx +++ b/src/views/streams/dashboard/index.tsx @@ -10,12 +10,12 @@ import useParsedStreams from "../../../hooks/use-parsed-streams"; import useSubject from "../../../hooks/use-subject"; import { ParsedStream, STREAM_KIND, getATag } from "../../../helpers/nostr/stream"; import useTimelineLoader from "../../../hooks/use-timeline-loader"; -import RequireCurrentAccount from "../../../providers/require-current-account"; +import RequireCurrentAccount from "../../../providers/route/require-current-account"; import useCurrentAccount from "../../../hooks/use-current-account"; import { getEventUID } from "../../../helpers/nostr/events"; import { useReadRelayUrls } from "../../../hooks/use-client-relays"; import { ChevronLeftIcon } from "../../../components/icons"; -import RelaySelectionProvider from "../../../providers/relay-selection-provider"; +import RelaySelectionProvider from "../../../providers/local/relay-selection-provider"; import UsersCard from "./users-card"; import ZapsCard from "./zaps-card"; import ChatCard from "./chat-card"; diff --git a/src/views/streams/dashboard/users-card.tsx b/src/views/streams/dashboard/users-card.tsx index cc287c78a..dd3259c66 100644 --- a/src/views/streams/dashboard/users-card.tsx +++ b/src/views/streams/dashboard/users-card.tsx @@ -8,7 +8,7 @@ import useStreamChatTimeline from "../stream/stream-chat/use-stream-chat-timelin import UserAvatar from "../../../components/user-avatar"; import UserLink from "../../../components/user-link"; import useUserMuteFunctions from "../../../hooks/use-user-mute-functions"; -import { useMuteModalContext } from "../../../providers/mute-modal-provider"; +import { useMuteModalContext } from "../../../providers/route/mute-modal-provider"; import useUserMuteList from "../../../hooks/use-user-mute-list"; import { isPubkeyInList } from "../../../helpers/nostr/lists"; import { ParsedStream } from "../../../helpers/nostr/stream"; diff --git a/src/views/streams/index.tsx b/src/views/streams/index.tsx index 003a49326..4c2b99c85 100644 --- a/src/views/streams/index.tsx +++ b/src/views/streams/index.tsx @@ -2,16 +2,16 @@ import { useCallback, useMemo } from "react"; import { Divider, Flex, Heading, SimpleGrid } from "@chakra-ui/react"; import useTimelineLoader from "../../hooks/use-timeline-loader"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useSubject from "../../hooks/use-subject"; import StreamCard from "./components/stream-card"; import { STREAM_KIND } from "../../helpers/nostr/stream"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; -import RelaySelectionProvider, { useRelaySelectionRelays } from "../../providers/relay-selection-provider"; +import RelaySelectionProvider, { useRelaySelectionRelays } from "../../providers/local/relay-selection-provider"; import useRelaysChanged from "../../hooks/use-relays-changed"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import useParsedStreams from "../../hooks/use-parsed-streams"; import { NostrRequestFilter } from "../../types/nostr-query"; diff --git a/src/views/streams/stream/index.tsx b/src/views/streams/stream/index.tsx index 0f6fdcaa3..e21a2a79b 100644 --- a/src/views/streams/stream/index.tsx +++ b/src/views/streams/stream/index.tsx @@ -35,11 +35,11 @@ import StreamDebugButton from "../components/stream-debug-button"; import replaceableEventLoaderService from "../../../services/replaceable-event-requester"; import useSubject from "../../../hooks/use-subject"; import RelaySelectionButton from "../../../components/relay-selection/relay-selection-button"; -import RelaySelectionProvider from "../../../providers/relay-selection-provider"; +import RelaySelectionProvider from "../../../providers/local/relay-selection-provider"; import StreamerCards from "../components/streamer-cards"; import { useAppTitle } from "../../../hooks/use-app-title"; import StreamSatsPerMinute from "../components/stream-sats-per-minute"; -import { UserEmojiProvider } from "../../../providers/emoji-provider"; +import { UserEmojiProvider } from "../../../providers/global/emoji-provider"; import StreamStatusBadge from "../components/status-badge"; import ChatMessageForm from "./stream-chat/stream-chat-form"; import StreamChatLog from "./stream-chat/chat-log"; @@ -49,7 +49,7 @@ import StreamZapButton from "../components/stream-zap-button"; import StreamGoal from "../components/stream-goal"; import StreamShareButton from "../components/stream-share-button"; import VerticalPageLayout from "../../../components/vertical-page-layout"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; function DesktopStreamPage({ stream }: { stream: ParsedStream }) { useAppTitle(stream.title); diff --git a/src/views/streams/stream/stream-chat/chat-message.tsx b/src/views/streams/stream/stream-chat/chat-message.tsx index 5f269d8be..a62f74905 100644 --- a/src/views/streams/stream/stream-chat/chat-message.tsx +++ b/src/views/streams/stream/stream-chat/chat-message.tsx @@ -5,8 +5,8 @@ import { ParsedStream } from "../../../../helpers/nostr/stream"; import UserAvatar from "../../../../components/user-avatar"; import UserLink from "../../../../components/user-link"; import { NostrEvent } from "../../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../../providers/intersection-observer"; -import { TrustProvider } from "../../../../providers/trust"; +import { useRegisterIntersectionEntity } from "../../../../providers/local/intersection-observer"; +import { TrustProvider } from "../../../../providers/local/trust"; import ChatMessageContent from "./chat-message-content"; import NoteZapButton from "../../../../components/note/note-zap-button"; diff --git a/src/views/streams/stream/stream-chat/index.tsx b/src/views/streams/stream/stream-chat/index.tsx index 2a0c1b24c..621d24407 100644 --- a/src/views/streams/stream/stream-chat/index.tsx +++ b/src/views/streams/stream/stream-chat/index.tsx @@ -3,7 +3,7 @@ import { Card, CardBody, CardHeader, CardProps, Heading } from "@chakra-ui/react import { ParsedStream } from "../../../../helpers/nostr/stream"; import { LightboxProvider } from "../../../../components/lightbox-provider"; -import IntersectionObserverProvider from "../../../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../../../hooks/use-timeline-cursor-intersection-callback"; import TopZappers from "../../components/top-zappers"; import ChatMessageForm from "./stream-chat-form"; diff --git a/src/views/streams/stream/stream-chat/stream-chat-form.tsx b/src/views/streams/stream/stream-chat/stream-chat-form.tsx index 820507e0c..37a6ddcfc 100644 --- a/src/views/streams/stream/stream-chat/stream-chat-form.tsx +++ b/src/views/streams/stream/stream-chat/stream-chat-form.tsx @@ -3,14 +3,14 @@ import { Box, Button, Flex, useToast } from "@chakra-ui/react"; import { useForm } from "react-hook-form"; import { ParsedStream, buildChatMessage } from "../../../../helpers/nostr/stream"; -import { useRelaySelectionRelays } from "../../../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../../../providers/local/relay-selection-provider"; import { useUserRelays } from "../../../../hooks/use-user-relays"; import { RelayMode } from "../../../../classes/relay"; import { unique } from "../../../../helpers/array"; -import { useSigningContext } from "../../../../providers/signing-provider"; +import { useSigningContext } from "../../../../providers/global/signing-provider"; import NostrPublishAction from "../../../../classes/nostr-publish-action"; import { createEmojiTags, ensureNotifyContentMentions } from "../../../../helpers/nostr/post"; -import { useContextEmojis } from "../../../../providers/emoji-provider"; +import { useContextEmojis } from "../../../../providers/global/emoji-provider"; import { MagicInput, RefType } from "../../../../components/magic-textarea"; import StreamZapButton from "../../components/stream-zap-button"; import { nostrBuildUploadImage } from "../../../../helpers/nostr-build"; diff --git a/src/views/streams/stream/stream-chat/use-stream-chat-timeline.ts b/src/views/streams/stream/stream-chat/use-stream-chat-timeline.ts index 5f0c8454d..c4643407b 100644 --- a/src/views/streams/stream/stream-chat/use-stream-chat-timeline.ts +++ b/src/views/streams/stream/stream-chat/use-stream-chat-timeline.ts @@ -5,7 +5,7 @@ import { getEventUID } from "../../../../helpers/nostr/events"; import { ParsedStream, STREAM_CHAT_MESSAGE_KIND, getATag } from "../../../../helpers/nostr/stream"; import useTimelineLoader from "../../../../hooks/use-timeline-loader"; import { NostrEvent } from "../../../../types/nostr-event"; -import { useRelaySelectionRelays } from "../../../../providers/relay-selection-provider"; +import { useRelaySelectionRelays } from "../../../../providers/local/relay-selection-provider"; import useStreamGoal from "../../../../hooks/use-stream-goal"; import { NostrQuery } from "../../../../types/nostr-query"; import useUserMuteFilter from "../../../../hooks/use-user-mute-filter"; diff --git a/src/views/streams/stream/stream-chat/zap-message.tsx b/src/views/streams/stream/stream-chat/zap-message.tsx index 7855f392e..27824e030 100644 --- a/src/views/streams/stream/stream-chat/zap-message.tsx +++ b/src/views/streams/stream/stream-chat/zap-message.tsx @@ -5,11 +5,11 @@ import { ParsedStream } from "../../../../helpers/nostr/stream"; import UserAvatar from "../../../../components/user-avatar"; import UserLink from "../../../../components/user-link"; import { NostrEvent } from "../../../../types/nostr-event"; -import { useRegisterIntersectionEntity } from "../../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../../providers/local/intersection-observer"; import { LightningIcon } from "../../../../components/icons"; import { parseZapEvent } from "../../../../helpers/nostr/zaps"; import { readablizeSats } from "../../../../helpers/bolt11"; -import { TrustProvider } from "../../../../providers/trust"; +import { TrustProvider } from "../../../../providers/local/trust"; import ChatMessageContent from "./chat-message-content"; import useClientSideMuteFilter from "../../../../hooks/use-client-side-mute-filter"; diff --git a/src/views/things/index.tsx b/src/views/things/index.tsx index e4efda271..3840acf1e 100644 --- a/src/views/things/index.tsx +++ b/src/views/things/index.tsx @@ -4,15 +4,15 @@ import { Link as RouterLink } from "react-router-dom"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import { FILE_KIND } from "../../helpers/nostr/files"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import VerticalPageLayout from "../../components/vertical-page-layout"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import Upload01 from "../../components/icons/upload-01"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; function FilesPage() { const { listId, filter } = usePeopleListContext(); diff --git a/src/views/things/upload/index.tsx b/src/views/things/upload/index.tsx index ff9e8a7a6..0ca4dfbc3 100644 --- a/src/views/things/upload/index.tsx +++ b/src/views/things/upload/index.tsx @@ -15,7 +15,7 @@ import { } from "@chakra-ui/react"; import VerticalPageLayout from "../../../components/vertical-page-layout"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { useNavigate } from "react-router-dom"; import useRouteStateValue from "../../../hooks/use-route-state-value"; import SelectFileStep from "./select-file-step"; diff --git a/src/views/thread/components/reply-form.tsx b/src/views/thread/components/reply-form.tsx index 8ad59bed2..39e4da27c 100644 --- a/src/views/thread/components/reply-form.tsx +++ b/src/views/thread/components/reply-form.tsx @@ -16,13 +16,13 @@ import { getContentMentions, } from "../../../helpers/nostr/post"; import useCurrentAccount from "../../../hooks/use-current-account"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { useWriteRelayUrls } from "../../../hooks/use-client-relays"; import NostrPublishAction from "../../../classes/nostr-publish-action"; import { unique } from "../../../helpers/array"; import MagicTextArea, { RefType } from "../../../components/magic-textarea"; -import { useContextEmojis } from "../../../providers/emoji-provider"; -import { TrustProvider } from "../../../providers/trust"; +import { useContextEmojis } from "../../../providers/global/emoji-provider"; +import { TrustProvider } from "../../../providers/local/trust"; import { nostrBuildUploadImage } from "../../../helpers/nostr-build"; import { UploadImageIcon } from "../../../components/icons"; import { useThrottle } from "react-use"; diff --git a/src/views/thread/components/thread-post.tsx b/src/views/thread/components/thread-post.tsx index 32305a99c..760df20ee 100644 --- a/src/views/thread/components/thread-post.tsx +++ b/src/views/thread/components/thread-post.tsx @@ -15,7 +15,7 @@ import { Link as RouterLink } from "react-router-dom"; import { ReplyIcon } from "../../../components/icons"; import { countReplies, ThreadItem } from "../../../helpers/thread"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import ReplyForm from "./reply-form"; import useClientSideMuteFilter from "../../../hooks/use-client-side-mute-filter"; import UserAvatarLink from "../../../components/user-avatar-link"; @@ -28,7 +28,7 @@ import NoteZapButton from "../../../components/note/note-zap-button"; import QuoteRepostButton from "../../../components/note/components/quote-repost-button"; import RepostButton from "../../../components/note/components/repost-button"; import NoteMenu from "../../../components/note/note-menu"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; import NoteReactions from "../../../components/note/components/note-reactions"; import BookmarkButton from "../../../components/note/components/bookmark-button"; import NoteCommunityMetadata from "../../../components/note/note-community-metadata"; @@ -37,7 +37,7 @@ import NoteProxyLink from "../../../components/note/components/note-proxy-link"; import { NoteDetailsButton } from "../../../components/note/components/note-details-button"; import EventInteractionDetailsModal from "../../../components/event-interactions-modal"; import { getSharableEventAddress } from "../../../helpers/nip19"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import useAppSettings from "../../../hooks/use-app-settings"; import useThreadColorLevelProps from "../../../hooks/use-thread-color-level-props"; import NoteToolsMenu from "../../../components/note/note-tools-menu"; diff --git a/src/views/thread/index.tsx b/src/views/thread/index.tsx index 1fe844e72..765692724 100644 --- a/src/views/thread/index.tsx +++ b/src/views/thread/index.tsx @@ -9,7 +9,7 @@ import { ThreadPost } from "./components/thread-post"; import VerticalPageLayout from "../../components/vertical-page-layout"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import { ThreadItem, buildThread } from "../../helpers/thread"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useThreadTimelineLoader from "../../hooks/use-thread-timeline-loader"; import useSingleEvent from "../../hooks/use-single-event"; diff --git a/src/views/tools/dm-timeline.tsx b/src/views/tools/dm-timeline.tsx index 8d346c695..e413e0b74 100644 --- a/src/views/tools/dm-timeline.tsx +++ b/src/views/tools/dm-timeline.tsx @@ -3,12 +3,14 @@ import { memo, useCallback, useRef } from "react"; import { Kind } from "nostr-tools"; import VerticalPageLayout from "../../components/vertical-page-layout"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import useSubject from "../../hooks/use-subject"; import EmbeddedDM from "../../components/embed-event/event-types/embedded-dm"; import { NostrEvent } from "../../types/nostr-event"; diff --git a/src/views/tools/network-dm-graph.tsx b/src/views/tools/network-dm-graph.tsx index 975eeac68..932ed81a6 100644 --- a/src/views/tools/network-dm-graph.tsx +++ b/src/views/tools/network-dm-graph.tsx @@ -16,7 +16,7 @@ import { } from "three"; import useCurrentAccount from "../../hooks/use-current-account"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import { useUsersMetadata } from "../../hooks/use-user-network"; import { getPubkeysFromList } from "../../helpers/nostr/lists"; import useUserContactList from "../../hooks/use-user-contact-list"; @@ -24,7 +24,7 @@ import { useUserMetadata } from "../../hooks/use-user-metadata"; import EventStore from "../../classes/event-store"; import NostrRequest from "../../classes/nostr-request"; import { isPTag } from "../../types/nostr-event"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; import { useDebounce } from "react-use"; import useSubject from "../../hooks/use-subject"; diff --git a/src/views/tools/network-mute-graph.tsx b/src/views/tools/network-mute-graph.tsx index fcc650604..6ce515462 100644 --- a/src/views/tools/network-mute-graph.tsx +++ b/src/views/tools/network-mute-graph.tsx @@ -14,7 +14,7 @@ import { } from "three"; import useCurrentAccount from "../../hooks/use-current-account"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import { useUsersMetadata } from "../../hooks/use-user-network"; import { MUTE_LIST_KIND, getPubkeysFromList, isPubkeyInList } from "../../helpers/nostr/lists"; import useUserContactList from "../../hooks/use-user-contact-list"; diff --git a/src/views/tools/satellite-cdn/delete-file-button.tsx b/src/views/tools/satellite-cdn/delete-file-button.tsx index f12afe861..ae82c5ea0 100644 --- a/src/views/tools/satellite-cdn/delete-file-button.tsx +++ b/src/views/tools/satellite-cdn/delete-file-button.tsx @@ -2,7 +2,7 @@ import { useCallback, useState } from "react"; import { IconButton, useToast } from "@chakra-ui/react"; import { SatelliteCDNFile, deleteFile } from "../../../helpers/satellite-cdn"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { TrashIcon } from "../../../components/icons"; export default function FileDeleteButton({ file }: { file: SatelliteCDNFile }) { diff --git a/src/views/tools/satellite-cdn/index.tsx b/src/views/tools/satellite-cdn/index.tsx index 087575926..5a90e36de 100644 --- a/src/views/tools/satellite-cdn/index.tsx +++ b/src/views/tools/satellite-cdn/index.tsx @@ -19,7 +19,7 @@ import { import { useAsync } from "react-use"; import VerticalPageLayout from "../../../components/vertical-page-layout"; -import { useSigningContext } from "../../../providers/signing-provider"; +import { useSigningContext } from "../../../providers/global/signing-provider"; import { NostrEvent } from "../../../types/nostr-event"; import { formatBytes } from "../../../helpers/number"; import { CopyIconButton } from "../../../components/copy-icon-button"; diff --git a/src/views/tools/satellite-cdn/share-file-button.tsx b/src/views/tools/satellite-cdn/share-file-button.tsx index 8c4ef74c0..927ee28de 100644 --- a/src/views/tools/satellite-cdn/share-file-button.tsx +++ b/src/views/tools/satellite-cdn/share-file-button.tsx @@ -1,6 +1,6 @@ import { useContext } from "react"; import { SatelliteCDNFile } from "../../../helpers/satellite-cdn"; -import { PostModalContext } from "../../../providers/post-modal-provider"; +import { PostModalContext } from "../../../providers/route/post-modal-provider"; import { ButtonProps, IconButton } from "@chakra-ui/react"; import { QuoteRepostIcon } from "../../../components/icons"; diff --git a/src/views/tools/transform-note/text-to-speech/index.tsx b/src/views/tools/transform-note/text-to-speech/index.tsx index 69f0ac6c0..9bdf0b9a8 100644 --- a/src/views/tools/transform-note/text-to-speech/index.tsx +++ b/src/views/tools/transform-note/text-to-speech/index.tsx @@ -14,7 +14,7 @@ import { } from "../../../../helpers/nostr/dvm"; import useSubject from "../../../../hooks/use-subject"; import { DraftNostrEvent, NostrEvent } from "../../../../types/nostr-event"; -import { useSigningContext } from "../../../../providers/signing-provider"; +import { useSigningContext } from "../../../../providers/global/signing-provider"; import relayScoreboardService from "../../../../services/relay-scoreboard"; import NostrPublishAction from "../../../../classes/nostr-publish-action"; import clientRelaysService from "../../../../services/client-relays"; diff --git a/src/views/tools/transform-note/translation/index.tsx b/src/views/tools/transform-note/translation/index.tsx index 2a5cafb6c..eb27a70e1 100644 --- a/src/views/tools/transform-note/translation/index.tsx +++ b/src/views/tools/transform-note/translation/index.tsx @@ -20,7 +20,7 @@ import useTimelineLoader from "../../../../hooks/use-timeline-loader"; import { getEventUID } from "../../../../helpers/nostr/events"; import { useReadRelayUrls } from "../../../../hooks/use-client-relays"; import useSubject from "../../../../hooks/use-subject"; -import { useSigningContext } from "../../../../providers/signing-provider"; +import { useSigningContext } from "../../../../providers/global/signing-provider"; import relayScoreboardService from "../../../../services/relay-scoreboard"; import NostrPublishAction from "../../../../classes/nostr-publish-action"; import clientRelaysService from "../../../../services/client-relays"; diff --git a/src/views/tools/wot-test.tsx b/src/views/tools/wot-test.tsx index 86c091949..3c2152ff2 100644 --- a/src/views/tools/wot-test.tsx +++ b/src/views/tools/wot-test.tsx @@ -2,7 +2,7 @@ import { memo, useMemo, useState } from "react"; import { Button, Flex, Select, SimpleGrid, Text } from "@chakra-ui/react"; import useCurrentAccount from "../../hooks/use-current-account"; -import RequireCurrentAccount from "../../providers/require-current-account"; +import RequireCurrentAccount from "../../providers/route/require-current-account"; import { useNetworkConnectionCount } from "../../hooks/use-user-network"; import UserAvatarLink from "../../components/user-avatar-link"; import UserLink from "../../components/user-link"; diff --git a/src/views/torrents/components/torrent-table-row.tsx b/src/views/torrents/components/torrent-table-row.tsx index de60507f4..11644058e 100644 --- a/src/views/torrents/components/torrent-table-row.tsx +++ b/src/views/torrents/components/torrent-table-row.tsx @@ -8,7 +8,7 @@ import Timestamp from "../../../components/timestamp"; import UserLink from "../../../components/user-link"; import Magnet from "../../../components/icons/magnet"; import { getNeventForEventId } from "../../../helpers/nip19"; -import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import { useRegisterIntersectionEntity } from "../../../providers/local/intersection-observer"; import { getEventUID } from "../../../helpers/nostr/events"; import { formatBytes } from "../../../helpers/number"; import NoteZapButton from "../../../components/note/note-zap-button"; diff --git a/src/views/torrents/components/torrents-comments.tsx b/src/views/torrents/components/torrents-comments.tsx index ef8790a4c..fed6d6091 100644 --- a/src/views/torrents/components/torrents-comments.tsx +++ b/src/views/torrents/components/torrents-comments.tsx @@ -6,7 +6,9 @@ import { useReadRelayUrls } from "../../../hooks/use-client-relays"; import useThreadTimelineLoader from "../../../hooks/use-thread-timeline-loader"; import { ThreadItem, buildThread, countReplies } from "../../../helpers/thread"; import { useTimelineCurserIntersectionCallback } from "../../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../../providers/local/intersection-observer"; import useAppSettings from "../../../hooks/use-app-settings"; import { Alert, @@ -26,7 +28,7 @@ import { UserDnsIdentityIcon } from "../../../components/user-dns-identity-icon" import Timestamp from "../../../components/timestamp"; import Minus from "../../../components/icons/minus"; import Expand01 from "../../../components/icons/expand-01"; -import { TrustProvider } from "../../../providers/trust"; +import { TrustProvider } from "../../../providers/local/trust"; import { NoteContents } from "../../../components/note/text-note-contents"; import NoteReactions from "../../../components/note/components/note-reactions"; import { ReplyIcon } from "../../../components/icons"; diff --git a/src/views/torrents/index.tsx b/src/views/torrents/index.tsx index 8326dee7c..54d5ed1f7 100644 --- a/src/views/torrents/index.tsx +++ b/src/views/torrents/index.tsx @@ -5,8 +5,8 @@ import { generatePrivateKey, getPublicKey } from "nostr-tools"; import PeopleListSelection from "../../components/people-list-selection/people-list-selection"; import VerticalPageLayout from "../../components/vertical-page-layout"; -import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/relay-selection-provider"; -import PeopleListProvider, { usePeopleListContext } from "../../providers/people-list-provider"; +import RelaySelectionProvider, { useRelaySelectionContext } from "../../providers/local/relay-selection-provider"; +import PeopleListProvider, { usePeopleListContext } from "../../providers/local/people-list-provider"; import RelaySelectionButton from "../../components/relay-selection/relay-selection-button"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useClientSideMuteFilter from "../../hooks/use-client-side-mute-filter"; @@ -15,7 +15,7 @@ import { TORRENT_KIND, validateTorrent } from "../../helpers/nostr/torrents"; import useSubject from "../../hooks/use-subject"; import TorrentTableRow from "./components/torrent-table-row"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import useCurrentAccount from "../../hooks/use-current-account"; import { useUserMetadata } from "../../hooks/use-user-metadata"; import accountService from "../../services/account"; diff --git a/src/views/torrents/new.tsx b/src/views/torrents/new.tsx index d79d9340d..f9a51a818 100644 --- a/src/views/torrents/new.tsx +++ b/src/views/torrents/new.tsx @@ -28,9 +28,9 @@ import { sha1 } from "@noble/hashes/sha1"; import { BencodeValue, decode, encode } from "../../lib/bencode"; import VerticalPageLayout from "../../components/vertical-page-layout"; import { Category, TORRENT_KIND, torrentCatagories } from "../../helpers/nostr/torrents"; -import { useBreakpointValue } from "../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../providers/global/breakpoint-provider"; import { DraftNostrEvent } from "../../types/nostr-event"; -import { useSigningContext } from "../../providers/signing-provider"; +import { useSigningContext } from "../../providers/global/signing-provider"; import NostrPublishAction from "../../classes/nostr-publish-action"; import clientRelaysService from "../../services/client-relays"; import { useNavigate } from "react-router-dom"; diff --git a/src/views/user/about/index.tsx b/src/views/user/about/index.tsx index 9e728a93f..fc33740c9 100644 --- a/src/views/user/about/index.tsx +++ b/src/views/user/about/index.tsx @@ -7,7 +7,7 @@ import { getLudEndpoint } from "../../../helpers/lnurl"; import { EmbedableContent, embedUrls } from "../../../helpers/embeds"; import { truncatedId } from "../../../helpers/nostr/events"; import { parseAddress } from "../../../services/dns-identity"; -import { useAdditionalRelayContext } from "../../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context"; import { useUserMetadata } from "../../../hooks/use-user-metadata"; import { embedNostrLinks, renderGenericUrl } from "../../../components/embed-types"; import { diff --git a/src/views/user/about/user-joined-channels.tsx b/src/views/user/about/user-joined-channels.tsx index f21f09d9d..b47b2cd5d 100644 --- a/src/views/user/about/user-joined-channels.tsx +++ b/src/views/user/about/user-joined-channels.tsx @@ -1,8 +1,8 @@ import { Button, Flex, Heading, SimpleGrid, useDisclosure } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context"; import { ErrorBoundary } from "../../../components/error-boundary"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; import useUserChannelsList from "../../../hooks/use-user-channels-list"; import { PointerChannelCard } from "../../channels/components/channel-card"; diff --git a/src/views/user/about/user-joined-communities.tsx b/src/views/user/about/user-joined-communities.tsx index 361d7f568..d46e5bae0 100644 --- a/src/views/user/about/user-joined-communities.tsx +++ b/src/views/user/about/user-joined-communities.tsx @@ -1,10 +1,10 @@ import { Button, Flex, Heading, SimpleGrid, useDisclosure } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context"; import useUserCommunitiesList from "../../../hooks/use-user-communities-list"; import { PointerCommunityCard } from "../../communities/components/community-card"; import { ErrorBoundary } from "../../../components/error-boundary"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; export default function UserJoinedCommunities({ pubkey }: { pubkey: string }) { const contextRelays = useAdditionalRelayContext(); diff --git a/src/views/user/about/user-pinned-events.tsx b/src/views/user/about/user-pinned-events.tsx index c9b8cb5e1..6aad80f8b 100644 --- a/src/views/user/about/user-pinned-events.tsx +++ b/src/views/user/about/user-pinned-events.tsx @@ -1,6 +1,6 @@ import { Button, Flex, Heading, useDisclosure } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context"; import useUserPinList from "../../../hooks/use-user-pin-list"; import { EmbedEventPointer } from "../../../components/embed-event"; diff --git a/src/views/user/about/user-stats-accordion.tsx b/src/views/user/about/user-stats-accordion.tsx index 6d4e4fe4d..646434622 100644 --- a/src/views/user/about/user-stats-accordion.tsx +++ b/src/views/user/about/user-stats-accordion.tsx @@ -18,7 +18,7 @@ import { Kind } from "nostr-tools"; import { readablizeSats } from "../../../helpers/bolt11"; import trustedUserStatsService from "../../../services/trusted-user-stats"; -import { useAdditionalRelayContext } from "../../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../../providers/local/additional-relay-context"; import useUserContactList from "../../../hooks/use-user-contact-list"; import { getPubkeysFromList } from "../../../helpers/nostr/lists"; import Timestamp from "../../../components/timestamp"; diff --git a/src/views/user/articles.tsx b/src/views/user/articles.tsx index 5e1c8807a..154c70040 100644 --- a/src/views/user/articles.tsx +++ b/src/views/user/articles.tsx @@ -1,10 +1,10 @@ import { useOutletContext } from "react-router-dom"; import { Kind } from "nostr-tools"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import VerticalPageLayout from "../../components/vertical-page-layout"; diff --git a/src/views/user/components/header.tsx b/src/views/user/components/header.tsx index 7224e4bea..362ddee55 100644 --- a/src/views/user/components/header.tsx +++ b/src/views/user/components/header.tsx @@ -10,7 +10,7 @@ import { useUserMetadata } from "../../../hooks/use-user-metadata"; import { UserProfileMenu } from "./user-profile-menu"; import { UserFollowButton } from "../../../components/user-follow-button"; import accountService from "../../../services/account"; -import { useBreakpointValue } from "../../../providers/breakpoint-provider"; +import { useBreakpointValue } from "../../../providers/global/breakpoint-provider"; export default function Header({ pubkey, diff --git a/src/views/user/components/user-zap-button.tsx b/src/views/user/components/user-zap-button.tsx index 28ac4b9b1..178682b4d 100644 --- a/src/views/user/components/user-zap-button.tsx +++ b/src/views/user/components/user-zap-button.tsx @@ -2,7 +2,7 @@ import { IconButton, IconButtonProps, useDisclosure } from "@chakra-ui/react"; import { useUserMetadata } from "../../../hooks/use-user-metadata"; import { LightningIcon } from "../../../components/icons"; import ZapModal from "../../../components/event-zap-modal"; -import { useInvoiceModalContext } from "../../../providers/invoice-modal"; +import { useInvoiceModalContext } from "../../../providers/route/invoice-modal"; export default function UserZapButton({ pubkey, ...props }: { pubkey: string } & Omit) { const metadata = useUserMetadata(pubkey); diff --git a/src/views/user/dms.tsx b/src/views/user/dms.tsx index 760d89827..56defb1a0 100644 --- a/src/views/user/dms.tsx +++ b/src/views/user/dms.tsx @@ -4,10 +4,12 @@ import { Kind } from "nostr-tools"; import { useOutletContext } from "react-router-dom"; import useTimelineLoader from "../../hooks/use-timeline-loader"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import VerticalPageLayout from "../../components/vertical-page-layout"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import { NostrEvent, isPTag } from "../../types/nostr-event"; diff --git a/src/views/user/emoji-packs.tsx b/src/views/user/emoji-packs.tsx index b60b94db8..a642db472 100644 --- a/src/views/user/emoji-packs.tsx +++ b/src/views/user/emoji-packs.tsx @@ -1,11 +1,11 @@ import { useOutletContext } from "react-router-dom"; import { Heading, SimpleGrid } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import { getEventUID } from "../../helpers/nostr/events"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import EmojiPackCard from "../emoji-packs/components/emoji-pack-card"; import { EMOJI_PACK_KIND, getPackCordsFromFavorites } from "../../helpers/nostr/emoji-packs"; diff --git a/src/views/user/followers.tsx b/src/views/user/followers.tsx index 55cf586d6..de8ec1263 100644 --- a/src/views/user/followers.tsx +++ b/src/views/user/followers.tsx @@ -6,7 +6,9 @@ import { useReadRelayUrls } from "../../hooks/use-client-relays"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import { useMemo, useRef } from "react"; import { getEventUID } from "../../helpers/nostr/events"; diff --git a/src/views/user/following.tsx b/src/views/user/following.tsx index a870c5fe5..74e1023aa 100644 --- a/src/views/user/following.tsx +++ b/src/views/user/following.tsx @@ -2,7 +2,7 @@ import { SimpleGrid, Spinner } from "@chakra-ui/react"; import { useOutletContext } from "react-router-dom"; import { UserCard } from "./components/user-card"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useUserContactList from "../../hooks/use-user-contact-list"; import { getPubkeysFromList } from "../../helpers/nostr/lists"; diff --git a/src/views/user/goals.tsx b/src/views/user/goals.tsx index 284748a83..79c426009 100644 --- a/src/views/user/goals.tsx +++ b/src/views/user/goals.tsx @@ -1,11 +1,11 @@ import { useOutletContext } from "react-router-dom"; import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import { getEventUID } from "../../helpers/nostr/events"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import { GOAL_KIND } from "../../helpers/nostr/goal"; import GoalCard from "../goals/components/goal-card"; diff --git a/src/views/user/index.tsx b/src/views/user/index.tsx index c2528053e..8f7d65c1c 100644 --- a/src/views/user/index.tsx +++ b/src/views/user/index.tsx @@ -35,7 +35,7 @@ import { useAppTitle } from "../../hooks/use-app-title"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import relayScoreboardService from "../../services/relay-scoreboard"; import { RelayMode } from "../../classes/relay"; -import { AdditionalRelayProvider } from "../../providers/additional-relay-context"; +import { AdditionalRelayProvider } from "../../providers/local/additional-relay-context"; import { unique } from "../../helpers/array"; import { RelayFavicon } from "../../components/relay-favicon"; import { useUserRelays } from "../../hooks/use-user-relays"; diff --git a/src/views/user/lists.tsx b/src/views/user/lists.tsx index f426958aa..22ed5249c 100644 --- a/src/views/user/lists.tsx +++ b/src/views/user/lists.tsx @@ -2,7 +2,7 @@ import { useCallback } from "react"; import { useOutletContext } from "react-router-dom"; import { Divider, Heading, SimpleGrid } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import { @@ -15,7 +15,7 @@ import { } from "../../helpers/nostr/lists"; import { getEventUID } from "../../helpers/nostr/events"; import ListCard from "../lists/components/list-card"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import { Kind } from "nostr-tools"; import VerticalPageLayout from "../../components/vertical-page-layout"; diff --git a/src/views/user/muted-by.tsx b/src/views/user/muted-by.tsx index 378fd3ce5..42c635142 100644 --- a/src/views/user/muted-by.tsx +++ b/src/views/user/muted-by.tsx @@ -8,7 +8,9 @@ import useTimelineLoader from "../../hooks/use-timeline-loader"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import { MUTE_LIST_KIND, PEOPLE_LIST_KIND, getListName, getPubkeysFromList } from "../../helpers/nostr/lists"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import { getEventUID } from "../../helpers/nostr/events"; import VerticalPageLayout from "../../components/vertical-page-layout"; diff --git a/src/views/user/notes.tsx b/src/views/user/notes.tsx index 4cfccba60..9cadcb853 100644 --- a/src/views/user/notes.tsx +++ b/src/views/user/notes.tsx @@ -4,7 +4,7 @@ import { useOutletContext } from "react-router-dom"; import { Kind } from "nostr-tools"; import { isReply, isRepost, truncatedId } from "../../helpers/nostr/events"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import { RelayIconStack } from "../../components/relay-icon-stack"; import { NostrEvent } from "../../types/nostr-event"; import useTimelineLoader from "../../hooks/use-timeline-loader"; diff --git a/src/views/user/reactions.tsx b/src/views/user/reactions.tsx index 00830995f..7f429f40c 100644 --- a/src/views/user/reactions.tsx +++ b/src/views/user/reactions.tsx @@ -5,13 +5,15 @@ import { nip25 } from "nostr-tools"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { NostrEvent } from "../../types/nostr-event"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; -import { TrustProvider } from "../../providers/trust"; +import { TrustProvider } from "../../providers/local/trust"; import UserAvatar from "../../components/user-avatar"; import UserLink from "../../components/user-link"; import NoteMenu from "../../components/note/note-menu"; diff --git a/src/views/user/relays.tsx b/src/views/user/relays.tsx index 4f315775a..573176a58 100644 --- a/src/views/user/relays.tsx +++ b/src/views/user/relays.tsx @@ -10,7 +10,7 @@ import { NostrEvent } from "../../types/nostr-event"; import RelayReviewNote from "../relays/components/relay-review-note"; import { RelayFavicon } from "../../components/relay-favicon"; import { RelayDebugButton, RelayJoinAction, RelayMetadata } from "../relays/components/relay-card"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import { useRelayInfo } from "../../hooks/use-relay-info"; import { ErrorBoundary } from "../../components/error-boundary"; diff --git a/src/views/user/reports.tsx b/src/views/user/reports.tsx index 1372574a8..86f6a5caf 100644 --- a/src/views/user/reports.tsx +++ b/src/views/user/reports.tsx @@ -8,10 +8,12 @@ import UserLink from "../../components/user-link"; import { filterTagsByContentRefs, getEventUID } from "../../helpers/nostr/events"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { isETag, isPTag, NostrEvent } from "../../types/nostr-event"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import VerticalPageLayout from "../../components/vertical-page-layout"; diff --git a/src/views/user/streams.tsx b/src/views/user/streams.tsx index ae00391c8..c9ad2af46 100644 --- a/src/views/user/streams.tsx +++ b/src/views/user/streams.tsx @@ -1,9 +1,9 @@ import { SimpleGrid } from "@chakra-ui/react"; import { useOutletContext } from "react-router-dom"; import { truncatedId } from "../../helpers/nostr/events"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { STREAM_KIND } from "../../helpers/nostr/stream"; diff --git a/src/views/user/torrents.tsx b/src/views/user/torrents.tsx index a489bc7bb..af1f6d86d 100644 --- a/src/views/user/torrents.tsx +++ b/src/views/user/torrents.tsx @@ -3,10 +3,10 @@ import { useOutletContext } from "react-router-dom"; import { useCallback } from "react"; import useTimelineLoader from "../../hooks/use-timeline-loader"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider from "../../providers/intersection-observer"; +import IntersectionObserverProvider from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import VerticalPageLayout from "../../components/vertical-page-layout"; import { TORRENT_KIND, validateTorrent } from "../../helpers/nostr/torrents"; diff --git a/src/views/user/tracks.tsx b/src/views/user/tracks.tsx index 62694a65a..c418ee295 100644 --- a/src/views/user/tracks.tsx +++ b/src/views/user/tracks.tsx @@ -2,11 +2,13 @@ import { useRef } from "react"; import { useOutletContext } from "react-router-dom"; import { Box, SimpleGrid } from "@chakra-ui/react"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import useSubject from "../../hooks/use-subject"; import { getEventUID } from "../../helpers/nostr/events"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import VerticalPageLayout from "../../components/vertical-page-layout"; import { STEMSTR_TRACK_KIND } from "../../helpers/nostr/stemstr"; diff --git a/src/views/user/zaps.tsx b/src/views/user/zaps.tsx index 5e2404ce3..083e3ac38 100644 --- a/src/views/user/zaps.tsx +++ b/src/views/user/zaps.tsx @@ -12,11 +12,13 @@ import { readablizeSats } from "../../helpers/bolt11"; import { isProfileZap, isNoteZap, parseZapEvent, totalZaps } from "../../helpers/nostr/zaps"; import useTimelineLoader from "../../hooks/use-timeline-loader"; import { NostrEvent, isATag, isETag, isPTag } from "../../types/nostr-event"; -import { useAdditionalRelayContext } from "../../providers/additional-relay-context"; +import { useAdditionalRelayContext } from "../../providers/local/additional-relay-context"; import { useReadRelayUrls } from "../../hooks/use-client-relays"; import TimelineActionAndStatus from "../../components/timeline-page/timeline-action-and-status"; import useSubject from "../../hooks/use-subject"; -import IntersectionObserverProvider, { useRegisterIntersectionEntity } from "../../providers/intersection-observer"; +import IntersectionObserverProvider, { + useRegisterIntersectionEntity, +} from "../../providers/local/intersection-observer"; import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback"; import { EmbedableContent, embedUrls } from "../../helpers/embeds"; import { embedNostrLinks, renderGenericUrl } from "../../components/embed-types";