diff --git a/packages/app/src/Element/Event/NoteBroadcaster/NoteBroadcaster.tsx b/packages/app/src/Element/Event/Create/NoteBroadcaster.tsx similarity index 97% rename from packages/app/src/Element/Event/NoteBroadcaster/NoteBroadcaster.tsx rename to packages/app/src/Element/Event/Create/NoteBroadcaster.tsx index b355694e..9b8860b5 100644 --- a/packages/app/src/Element/Event/NoteBroadcaster/NoteBroadcaster.tsx +++ b/packages/app/src/Element/Event/Create/NoteBroadcaster.tsx @@ -10,7 +10,7 @@ import { removeRelay } from "@/Login"; import useLogin from "@/Hooks/useLogin"; import useEventPublisher from "@/Hooks/useEventPublisher"; import { saveRelays } from "@/Pages/settings/Relays"; -import { sendEventToRelays } from "@/Element/Event/NoteBroadcaster/util"; +import { sendEventToRelays } from "@/Element/Event/Create/util"; export function NoteBroadcaster({ evs, diff --git a/packages/app/src/Element/Event/NoteCreator.css b/packages/app/src/Element/Event/Create/NoteCreator.css similarity index 100% rename from packages/app/src/Element/Event/NoteCreator.css rename to packages/app/src/Element/Event/Create/NoteCreator.css diff --git a/packages/app/src/Element/Event/NoteCreator.tsx b/packages/app/src/Element/Event/Create/NoteCreator.tsx similarity index 93% rename from packages/app/src/Element/Event/NoteCreator.tsx rename to packages/app/src/Element/Event/Create/NoteCreator.tsx index a8baeebb..8dee72b5 100644 --- a/packages/app/src/Element/Event/NoteCreator.tsx +++ b/packages/app/src/Element/Event/Create/NoteCreator.tsx @@ -1,6 +1,6 @@ import "./NoteCreator.css"; import { FormattedMessage, useIntl } from "react-intl"; -import { EventKind, NostrPrefix, TaggedNostrEvent, EventBuilder, tryParseNostrLink, NostrLink } from "@snort/system"; +import { EventBuilder, EventKind, NostrLink, NostrPrefix, TaggedNostrEvent, tryParseNostrLink } from "@snort/system"; import classNames from "classnames"; import { TagsInput } from "react-tag-input-component"; @@ -13,7 +13,7 @@ import ProfileImage from "@/Element/User/ProfileImage"; import useFileUpload from "@/Upload"; import Note from "@/Element/Event/Note"; -import { ClipboardEventHandler, DragEvent, useEffect, useState } from "react"; +import { ClipboardEventHandler, DragEvent } from "react"; import useLogin from "@/Hooks/useLogin"; import { GetPowWorker } from "@/index"; import AsyncButton from "@/Element/AsyncButton"; @@ -21,12 +21,11 @@ import { AsyncIcon } from "@/Element/AsyncIcon"; import { fetchNip05Pubkey } from "@snort/shared"; import { ZapTarget } from "@/Zapper"; import { useNoteCreator } from "@/State/NoteCreator"; -import { NoteBroadcaster } from "./NoteBroadcaster/NoteBroadcaster"; -import FileUploadProgress from "./FileUpload"; +import { NoteBroadcaster } from "@/Element/Event/Create/NoteBroadcaster"; +import FileUploadProgress from "../FileUpload"; import { ToggleSwitch } from "@/Icons/Toggle"; -import NostrBandApi from "@/External/NostrBand"; -import { useLocale } from "@/IntlProvider"; -import { sendEventToRelays } from "@/Element/Event/NoteBroadcaster/util"; +import { sendEventToRelays } from "@/Element/Event/Create/util"; +import { TrendingHashTagsLine } from "@/Element/Event/Create/TrendingHashTagsLine"; export function NoteCreator() { const { formatMessage } = useIntl(); @@ -656,34 +655,3 @@ export function NoteCreator() { ); } - -function TrendingHashTagsLine(props: { onClick: (tag: string) => void }) { - const [hashtags, setHashtags] = useState>(); - const { lang } = useLocale(); - - async function loadTrendingHashtags() { - const api = new NostrBandApi(); - const rsp = await api.trendingHashtags(lang); - setHashtags(rsp.hashtags); - } - - useEffect(() => { - loadTrendingHashtags().catch(console.error); - }, []); - - if (!hashtags || hashtags.length === 0) return; - return ( -
- - - -
- {hashtags.slice(0, 5).map(a => ( - props.onClick(a.hashtag)}> - #{a.hashtag} - - ))} -
-
- ); -} diff --git a/packages/app/src/Element/Event/NoteCreatorButton.css b/packages/app/src/Element/Event/Create/NoteCreatorButton.css similarity index 100% rename from packages/app/src/Element/Event/NoteCreatorButton.css rename to packages/app/src/Element/Event/Create/NoteCreatorButton.css diff --git a/packages/app/src/Element/Event/NoteCreatorButton.tsx b/packages/app/src/Element/Event/Create/NoteCreatorButton.tsx similarity index 100% rename from packages/app/src/Element/Event/NoteCreatorButton.tsx rename to packages/app/src/Element/Event/Create/NoteCreatorButton.tsx diff --git a/packages/app/src/Element/Event/Create/TrendingHashTagsLine.tsx b/packages/app/src/Element/Event/Create/TrendingHashTagsLine.tsx new file mode 100644 index 00000000..b67831be --- /dev/null +++ b/packages/app/src/Element/Event/Create/TrendingHashTagsLine.tsx @@ -0,0 +1,35 @@ +import { useEffect, useState } from "react"; +import { useLocale } from "@/IntlProvider"; +import NostrBandApi from "@/External/NostrBand"; +import { FormattedMessage } from "react-intl"; + +export function TrendingHashTagsLine(props: { onClick: (tag: string) => void }) { + const [hashtags, setHashtags] = useState>(); + const { lang } = useLocale(); + + async function loadTrendingHashtags() { + const api = new NostrBandApi(); + const rsp = await api.trendingHashtags(lang); + setHashtags(rsp.hashtags); + } + + useEffect(() => { + loadTrendingHashtags().catch(console.error); + }, []); + + if (!hashtags || hashtags.length === 0) return; + return ( +
+ + + +
+ {hashtags.slice(0, 5).map(a => ( + props.onClick(a.hashtag)}> + #{a.hashtag} + + ))} +
+
+ ); +} diff --git a/packages/app/src/Element/Event/NoteBroadcaster/util.ts b/packages/app/src/Element/Event/Create/util.ts similarity index 100% rename from packages/app/src/Element/Event/NoteBroadcaster/util.ts rename to packages/app/src/Element/Event/Create/util.ts diff --git a/packages/app/src/Pages/Layout/NavSidebar.tsx b/packages/app/src/Pages/Layout/NavSidebar.tsx index abf7b0cd..c0bab892 100644 --- a/packages/app/src/Pages/Layout/NavSidebar.tsx +++ b/packages/app/src/Pages/Layout/NavSidebar.tsx @@ -5,7 +5,7 @@ import { ProfileLink } from "../../Element/User/ProfileLink"; import Avatar from "../../Element/User/Avatar"; import useLogin from "../../Hooks/useLogin"; import { useUserProfile } from "@snort/system-react"; -import { NoteCreatorButton } from "../../Element/Event/NoteCreatorButton"; +import { NoteCreatorButton } from "../../Element/Event/Create/NoteCreatorButton"; import { FormattedMessage } from "react-intl"; import classNames from "classnames"; import { HasNotificationsMarker } from "@/Pages/Layout/AccountHeader"; diff --git a/packages/app/src/Pages/Layout/index.tsx b/packages/app/src/Pages/Layout/index.tsx index fc6f66ce..060f5af8 100644 --- a/packages/app/src/Pages/Layout/index.tsx +++ b/packages/app/src/Pages/Layout/index.tsx @@ -11,7 +11,7 @@ import { useLoginRelays } from "@/Hooks/useLoginRelays"; import { LoginUnlock } from "@/Element/PinPrompt"; import useKeyboardShortcut from "@/Hooks/useKeyboardShortcut"; import { LoginStore } from "@/Login"; -import { NoteCreatorButton } from "@/Element/Event/NoteCreatorButton"; +import { NoteCreatorButton } from "@/Element/Event/Create/NoteCreatorButton"; import NavSidebar from "./NavSidebar"; import AccountHeader from "./AccountHeader"; import RightColumn from "./RightColumn";