From 1f6e1886b30d4d4fc0df66ba5c28a8b7ada3faa1 Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Tue, 26 Sep 2023 08:02:42 +0300 Subject: [PATCH 1/8] appName from config.json --- packages/app/config/default.json | 4 ++++ packages/app/config/iris.json | 4 ++++ packages/app/package.json | 1 + packages/app/public/index.html | 2 +- packages/app/src/Element/Logo.tsx | 2 +- packages/app/src/Pages/Layout.tsx | 2 +- packages/app/webpack.config.js | 9 +++++++++ yarn.lock | 10 ++++++++++ 8 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 packages/app/config/default.json create mode 100644 packages/app/config/iris.json diff --git a/packages/app/config/default.json b/packages/app/config/default.json new file mode 100644 index 000000000..a95cb3271 --- /dev/null +++ b/packages/app/config/default.json @@ -0,0 +1,4 @@ +{ + "appName": "Snort", + "appTitle": "Snort - Nostr" +} diff --git a/packages/app/config/iris.json b/packages/app/config/iris.json new file mode 100644 index 000000000..f38196187 --- /dev/null +++ b/packages/app/config/iris.json @@ -0,0 +1,4 @@ +{ + "appName": "iris", + "appTitle": "iris" +} diff --git a/packages/app/package.json b/packages/app/package.json index 87d953c8f..32872e4df 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -88,6 +88,7 @@ "@webpack-cli/generators": "^3.0.4", "@webscopeio/react-textarea-autocomplete": "^4.9.2", "babel-loader": "^9.1.3", + "config": "^3.3.9", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.3", "css-minimizer-webpack-plugin": "^5.0.0", diff --git a/packages/app/public/index.html b/packages/app/public/index.html index b5a138322..6f644eb72 100644 --- a/packages/app/public/index.html +++ b/packages/app/public/index.html @@ -11,7 +11,7 @@ - Snort - Nostr + <%= htmlWebpackPlugin.options.templateParameters.appTitle %>
diff --git a/packages/app/src/Element/Logo.tsx b/packages/app/src/Element/Logo.tsx index 38e946b8f..d33e3f953 100644 --- a/packages/app/src/Element/Logo.tsx +++ b/packages/app/src/Element/Logo.tsx @@ -4,7 +4,7 @@ const Logo = () => { const navigate = useNavigate(); return (

navigate("/")}> - Snort + {process.env.APP_NAME}

); }; diff --git a/packages/app/src/Pages/Layout.tsx b/packages/app/src/Pages/Layout.tsx index a662a73e7..86845dea0 100644 --- a/packages/app/src/Pages/Layout.tsx +++ b/packages/app/src/Pages/Layout.tsx @@ -209,7 +209,7 @@ function LogoHeader() { return ( -

Snort

+

{process.env.APP_NAME}

{currentSubscription && ( diff --git a/packages/app/webpack.config.js b/packages/app/webpack.config.js index d002edba3..e8e4d021b 100644 --- a/packages/app/webpack.config.js +++ b/packages/app/webpack.config.js @@ -9,6 +9,9 @@ const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); const CopyPlugin = require("copy-webpack-plugin"); const WorkboxPlugin = require("workbox-webpack-plugin"); const IntlTsTransformer = require("@formatjs/ts-transformer"); +const { DefinePlugin } = require('webpack'); +const appConfig = require('config'); +console.log(`Current config: ${JSON.stringify(appConfig, null, 2)}`); const isProduction = process.env.NODE_ENV == "production"; @@ -49,6 +52,9 @@ const config = { template: "public/index.html", favicon: "public/favicon.ico", excludeChunks: ["pow", "bench"], + templateParameters: { + appTitle: appConfig.get('appTitle'), + }, }), new HtmlWebpackPlugin({ filename: "bench.html", @@ -69,6 +75,9 @@ const config = { swSrc: "./src/service-worker.ts", }) : false, + new DefinePlugin({ + "process.env.APP_NAME": JSON.stringify(appConfig.get('appName')), + }), ], module: { rules: [ diff --git a/yarn.lock b/yarn.lock index 5c7a35d6a..4cb9d1b90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2709,6 +2709,7 @@ __metadata: "@webpack-cli/generators": ^3.0.4 "@webscopeio/react-textarea-autocomplete": ^4.9.2 babel-loader: ^9.1.3 + config: ^3.3.9 copy-webpack-plugin: ^11.0.0 css-loader: ^6.7.3 css-minimizer-webpack-plugin: ^5.0.0 @@ -5330,6 +5331,15 @@ __metadata: languageName: node linkType: hard +"config@npm:^3.3.9": + version: 3.3.9 + resolution: "config@npm:3.3.9" + dependencies: + json5: ^2.2.3 + checksum: 2c29e40be22274462769670a4b69fcbcad2d3049eb15030073e410d32c892ef29e0c879a3d68ef92ddd572c516e4f65a11bb6458f680a44ceb0f051bcd3d97ff + languageName: node + linkType: hard + "connect-history-api-fallback@npm:^2.0.0": version: 2.0.0 resolution: "connect-history-api-fallback@npm:2.0.0" From 3c812cb51ac59b61f4af855651450755fe62ae82 Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Tue, 26 Sep 2023 09:58:53 +0300 Subject: [PATCH 2/8] FormattedMessage: replace Snort -> APP_NAME_CAPITALIZED --- packages/app/config/README.md | 1 + packages/app/config/default.json | 1 + packages/app/config/iris.json | 1 + packages/app/src/Element/BadgeList.tsx | 2 +- packages/app/src/Element/BlockButton.tsx | 2 +- packages/app/src/Element/Bookmarks.tsx | 2 +- packages/app/src/Element/DmWindow.tsx | 2 +- packages/app/src/Element/FollowButton.tsx | 2 +- packages/app/src/Element/FollowListBase.tsx | 2 +- packages/app/src/Element/Following.tsx | 2 +- packages/app/src/Element/FormattedMessage.tsx | 22 +++++++++++++++++++ packages/app/src/Element/LiveEvent.tsx | 2 +- packages/app/src/Element/LoadMore.tsx | 2 +- packages/app/src/Element/LogoutButton.tsx | 2 +- packages/app/src/Element/MagnetLink.tsx | 2 +- packages/app/src/Element/MuteButton.tsx | 2 +- packages/app/src/Element/MutedList.tsx | 2 +- packages/app/src/Element/NostrFileHeader.tsx | 2 +- packages/app/src/Element/NoteReaction.tsx | 2 +- packages/app/src/Element/NoteToSelf.tsx | 2 +- packages/app/src/Element/ProxyImg.tsx | 2 +- packages/app/src/Element/ReBroadcaster.tsx | 2 +- packages/app/src/Element/Relay.tsx | 2 +- packages/app/src/Element/RevealMedia.tsx | 2 +- packages/app/src/Element/RootTabs.tsx | 2 +- .../app/src/Element/SuggestedProfiles.tsx | 2 +- packages/app/src/Element/Timeline.tsx | 2 +- packages/app/src/Element/TimelineFollows.tsx | 2 +- packages/app/src/Element/ZapstrEmbed.tsx | 2 +- packages/app/src/Pages/DeckLayout.tsx | 2 +- packages/app/src/Pages/DonatePage.tsx | 2 +- packages/app/src/Pages/ErrorPage.tsx | 2 +- packages/app/src/Pages/HashTagsPage.tsx | 2 +- packages/app/src/Pages/HelpPage.tsx | 2 +- packages/app/src/Pages/NostrAddressPage.tsx | 2 +- packages/app/src/Pages/NostrLinkHandler.tsx | 2 +- packages/app/src/Pages/ProfilePage.tsx | 2 +- packages/app/src/Pages/Root.tsx | 2 +- packages/app/src/Pages/SettingsPage.tsx | 2 +- packages/app/src/Pages/new/GetVerified.tsx | 2 +- packages/app/src/Pages/new/NewUserFlow.tsx | 2 +- packages/app/src/Pages/settings/Accounts.tsx | 2 +- packages/app/src/Pages/settings/Keys.tsx | 2 +- .../app/src/Pages/settings/Moderation.tsx | 2 +- packages/app/src/Pages/settings/Profile.tsx | 2 +- packages/app/src/Pages/settings/RelayInfo.tsx | 2 +- packages/app/src/Pages/settings/Relays.tsx | 2 +- packages/app/src/Pages/settings/Root.tsx | 2 +- .../app/src/Pages/settings/WalletSettings.tsx | 2 +- .../src/Pages/settings/handle/ListHandles.tsx | 2 +- .../app/src/Pages/settings/handle/index.tsx | 2 +- .../Pages/subscribe/ManageSubscription.tsx | 2 +- packages/app/src/Pages/subscribe/index.tsx | 2 +- packages/app/src/Tasks/DonateTask.tsx | 2 +- packages/app/src/Tasks/Nip5Task.tsx | 2 +- packages/app/webpack.config.js | 1 + 56 files changed, 77 insertions(+), 51 deletions(-) create mode 100644 packages/app/config/README.md create mode 100644 packages/app/src/Element/FormattedMessage.tsx diff --git a/packages/app/config/README.md b/packages/app/config/README.md new file mode 100644 index 000000000..16871890c --- /dev/null +++ b/packages/app/config/README.md @@ -0,0 +1 @@ +Choose config with NODE_CONFIG_ENV: `NODE_CONFIG_ENV=iris yarn start` \ No newline at end of file diff --git a/packages/app/config/default.json b/packages/app/config/default.json index a95cb3271..c74a19673 100644 --- a/packages/app/config/default.json +++ b/packages/app/config/default.json @@ -1,4 +1,5 @@ { "appName": "Snort", + "appNameCapitalized": "Snort", "appTitle": "Snort - Nostr" } diff --git a/packages/app/config/iris.json b/packages/app/config/iris.json index f38196187..a142040ec 100644 --- a/packages/app/config/iris.json +++ b/packages/app/config/iris.json @@ -1,4 +1,5 @@ { "appName": "iris", + "appNameCapitalized": "Iris", "appTitle": "iris" } diff --git a/packages/app/src/Element/BadgeList.tsx b/packages/app/src/Element/BadgeList.tsx index 062ff55bc..e3357ef0f 100644 --- a/packages/app/src/Element/BadgeList.tsx +++ b/packages/app/src/Element/BadgeList.tsx @@ -1,7 +1,7 @@ import "./BadgeList.css"; import { useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { TaggedNostrEvent } from "@snort/system"; diff --git a/packages/app/src/Element/BlockButton.tsx b/packages/app/src/Element/BlockButton.tsx index 3245d76df..e8a4a701c 100644 --- a/packages/app/src/Element/BlockButton.tsx +++ b/packages/app/src/Element/BlockButton.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useModeration from "Hooks/useModeration"; diff --git a/packages/app/src/Element/Bookmarks.tsx b/packages/app/src/Element/Bookmarks.tsx index 5bef3a369..249b41aec 100644 --- a/packages/app/src/Element/Bookmarks.tsx +++ b/packages/app/src/Element/Bookmarks.tsx @@ -1,5 +1,5 @@ import { useState, useMemo, ChangeEvent } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey, TaggedNostrEvent } from "@snort/system"; import Note from "Element/Note"; diff --git a/packages/app/src/Element/DmWindow.tsx b/packages/app/src/Element/DmWindow.tsx index 2620500bf..7bf6af347 100644 --- a/packages/app/src/Element/DmWindow.tsx +++ b/packages/app/src/Element/DmWindow.tsx @@ -6,7 +6,7 @@ import DM from "Element/DM"; import useLogin from "Hooks/useLogin"; import WriteMessage from "Element/WriteMessage"; import { Chat, createEmptyChatObject, useChatSystem } from "chat"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { ChatParticipantProfile } from "./ChatParticipant"; export default function DmWindow({ id }: { id: string }) { diff --git a/packages/app/src/Element/FollowButton.tsx b/packages/app/src/Element/FollowButton.tsx index 258d693bb..488636947 100644 --- a/packages/app/src/Element/FollowButton.tsx +++ b/packages/app/src/Element/FollowButton.tsx @@ -1,5 +1,5 @@ import "./FollowButton.css"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useEventPublisher from "Hooks/useEventPublisher"; diff --git a/packages/app/src/Element/FollowListBase.tsx b/packages/app/src/Element/FollowListBase.tsx index 377bd2071..47451dd2f 100644 --- a/packages/app/src/Element/FollowListBase.tsx +++ b/packages/app/src/Element/FollowListBase.tsx @@ -1,5 +1,5 @@ import { ReactNode } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useEventPublisher from "Hooks/useEventPublisher"; diff --git a/packages/app/src/Element/Following.tsx b/packages/app/src/Element/Following.tsx index 2ce66c8c1..de082d835 100644 --- a/packages/app/src/Element/Following.tsx +++ b/packages/app/src/Element/Following.tsx @@ -1,7 +1,7 @@ import "./Following.css"; import useLogin from "Hooks/useLogin"; import Icon from "Icons/Icon"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; export function FollowingMark({ pubkey }: { pubkey: string }) { const { follows } = useLogin(s => ({ follows: s.follows })); diff --git a/packages/app/src/Element/FormattedMessage.tsx b/packages/app/src/Element/FormattedMessage.tsx new file mode 100644 index 000000000..c8923fc02 --- /dev/null +++ b/packages/app/src/Element/FormattedMessage.tsx @@ -0,0 +1,22 @@ +import { useState, useEffect, FC, ComponentProps } from 'react'; +import { useIntl, FormattedMessage } from 'react-intl'; + +type ExtendedProps = ComponentProps; + +const ExtendedFormattedMessage: FC = (props) => { + const { id, defaultMessage, values} = props; + const { formatMessage } = useIntl(); + + const [processedMessage, setProcessedMessage] = useState(null); + + useEffect(() => { + const translatedMessage = formatMessage({ id, defaultMessage }, values); + if (typeof translatedMessage === 'string') { + setProcessedMessage(translatedMessage.replace('Snort', process.env.APP_NAME_CAPITALIZED || 'Snort')); + } + }, [id, defaultMessage, values, formatMessage]); + + return <>{processedMessage}; +}; + +export default ExtendedFormattedMessage; diff --git a/packages/app/src/Element/LiveEvent.tsx b/packages/app/src/Element/LiveEvent.tsx index 1dd0137c4..8acc43fb5 100644 --- a/packages/app/src/Element/LiveEvent.tsx +++ b/packages/app/src/Element/LiveEvent.tsx @@ -1,5 +1,5 @@ import { NostrEvent, NostrLink } from "@snort/system"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link } from "react-router-dom"; import { findTag } from "SnortUtils"; diff --git a/packages/app/src/Element/LoadMore.tsx b/packages/app/src/Element/LoadMore.tsx index 8982c3757..101980913 100644 --- a/packages/app/src/Element/LoadMore.tsx +++ b/packages/app/src/Element/LoadMore.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useInView } from "react-intersection-observer"; import messages from "./messages"; diff --git a/packages/app/src/Element/LogoutButton.tsx b/packages/app/src/Element/LogoutButton.tsx index edd0144ab..6ba5afcc1 100644 --- a/packages/app/src/Element/LogoutButton.tsx +++ b/packages/app/src/Element/LogoutButton.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { logout } from "Login"; diff --git a/packages/app/src/Element/MagnetLink.tsx b/packages/app/src/Element/MagnetLink.tsx index 4dca7d5ef..39a650295 100644 --- a/packages/app/src/Element/MagnetLink.tsx +++ b/packages/app/src/Element/MagnetLink.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Magnet } from "SnortUtils"; diff --git a/packages/app/src/Element/MuteButton.tsx b/packages/app/src/Element/MuteButton.tsx index b95d1e21c..f74177657 100644 --- a/packages/app/src/Element/MuteButton.tsx +++ b/packages/app/src/Element/MuteButton.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useModeration from "Hooks/useModeration"; diff --git a/packages/app/src/Element/MutedList.tsx b/packages/app/src/Element/MutedList.tsx index b4d9c8ba3..9ecf305c8 100644 --- a/packages/app/src/Element/MutedList.tsx +++ b/packages/app/src/Element/MutedList.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey } from "@snort/system"; import MuteButton from "Element/MuteButton"; import ProfilePreview from "Element/ProfilePreview"; diff --git a/packages/app/src/Element/NostrFileHeader.tsx b/packages/app/src/Element/NostrFileHeader.tsx index 39f7d6362..72873bf02 100644 --- a/packages/app/src/Element/NostrFileHeader.tsx +++ b/packages/app/src/Element/NostrFileHeader.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { NostrEvent, NostrLink } from "@snort/system"; import { findTag } from "SnortUtils"; diff --git a/packages/app/src/Element/NoteReaction.tsx b/packages/app/src/Element/NoteReaction.tsx index a2992c7f5..9d54626f9 100644 --- a/packages/app/src/Element/NoteReaction.tsx +++ b/packages/app/src/Element/NoteReaction.tsx @@ -7,7 +7,7 @@ import Note from "Element/Note"; import { getDisplayName } from "Element/ProfileImage"; import { eventLink, hexToBech32 } from "SnortUtils"; import useModeration from "Hooks/useModeration"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import Icon from "Icons/Icon"; import { useUserProfile } from "@snort/system-react"; import { useInView } from "react-intersection-observer"; diff --git a/packages/app/src/Element/NoteToSelf.tsx b/packages/app/src/Element/NoteToSelf.tsx index b134762ab..b3c2b26e2 100644 --- a/packages/app/src/Element/NoteToSelf.tsx +++ b/packages/app/src/Element/NoteToSelf.tsx @@ -1,6 +1,6 @@ import "./NoteToSelf.css"; import { Link, useNavigate } from "react-router-dom"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { profileLink } from "SnortUtils"; import messages from "./messages"; diff --git a/packages/app/src/Element/ProxyImg.tsx b/packages/app/src/Element/ProxyImg.tsx index dc625e57f..634880a64 100644 --- a/packages/app/src/Element/ProxyImg.tsx +++ b/packages/app/src/Element/ProxyImg.tsx @@ -1,6 +1,6 @@ import useImgProxy from "Hooks/useImgProxy"; import React, { useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { getUrlHostname } from "SnortUtils"; interface ProxyImgProps extends React.DetailedHTMLProps, HTMLImageElement> { diff --git a/packages/app/src/Element/ReBroadcaster.tsx b/packages/app/src/Element/ReBroadcaster.tsx index 48e3f4367..3a75fe276 100644 --- a/packages/app/src/Element/ReBroadcaster.tsx +++ b/packages/app/src/Element/ReBroadcaster.tsx @@ -1,5 +1,5 @@ import { useContext, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { TaggedNostrEvent } from "@snort/system"; import { SnortContext } from "@snort/system-react"; diff --git a/packages/app/src/Element/Relay.tsx b/packages/app/src/Element/Relay.tsx index 0de4d2888..09d881f1d 100644 --- a/packages/app/src/Element/Relay.tsx +++ b/packages/app/src/Element/Relay.tsx @@ -1,6 +1,6 @@ import "./Relay.css"; import { useMemo } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { RelaySettings } from "@snort/system"; import { unixNowMs } from "@snort/shared"; diff --git a/packages/app/src/Element/RevealMedia.tsx b/packages/app/src/Element/RevealMedia.tsx index dce6caaa0..87ad64b6f 100644 --- a/packages/app/src/Element/RevealMedia.tsx +++ b/packages/app/src/Element/RevealMedia.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { FileExtensionRegex } from "Const"; import Reveal from "Element/Reveal"; diff --git a/packages/app/src/Element/RootTabs.tsx b/packages/app/src/Element/RootTabs.tsx index 8f709defe..733ce273b 100644 --- a/packages/app/src/Element/RootTabs.tsx +++ b/packages/app/src/Element/RootTabs.tsx @@ -2,7 +2,7 @@ import "./RootTabs.css"; import { useState, ReactNode, useEffect } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import { Menu, MenuItem } from "@szhsin/react-menu"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import useLogin from "Hooks/useLogin"; import Icon from "Icons/Icon"; diff --git a/packages/app/src/Element/SuggestedProfiles.tsx b/packages/app/src/Element/SuggestedProfiles.tsx index 4680555b6..d3841d4fa 100644 --- a/packages/app/src/Element/SuggestedProfiles.tsx +++ b/packages/app/src/Element/SuggestedProfiles.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { HexKey, NostrPrefix } from "@snort/system"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import FollowListBase from "Element/FollowListBase"; import PageSpinner from "Element/PageSpinner"; diff --git a/packages/app/src/Element/Timeline.tsx b/packages/app/src/Element/Timeline.tsx index 0b5c545a4..71681d1af 100644 --- a/packages/app/src/Element/Timeline.tsx +++ b/packages/app/src/Element/Timeline.tsx @@ -1,5 +1,5 @@ import "./Timeline.css"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useCallback, useMemo } from "react"; import { useInView } from "react-intersection-observer"; import { TaggedNostrEvent, EventKind, u256 } from "@snort/system"; diff --git a/packages/app/src/Element/TimelineFollows.tsx b/packages/app/src/Element/TimelineFollows.tsx index 467f3b66c..cbfa53d6f 100644 --- a/packages/app/src/Element/TimelineFollows.tsx +++ b/packages/app/src/Element/TimelineFollows.tsx @@ -1,6 +1,6 @@ import "./Timeline.css"; import { ReactNode, useCallback, useContext, useMemo, useState, useSyncExternalStore } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { TaggedNostrEvent, EventKind, u256, NostrEvent, NostrLink } from "@snort/system"; import { unixNow } from "@snort/shared"; import { SnortContext } from "@snort/system-react"; diff --git a/packages/app/src/Element/ZapstrEmbed.tsx b/packages/app/src/Element/ZapstrEmbed.tsx index 184254c52..6e225d2b7 100644 --- a/packages/app/src/Element/ZapstrEmbed.tsx +++ b/packages/app/src/Element/ZapstrEmbed.tsx @@ -4,7 +4,7 @@ import { NostrEvent, NostrLink } from "@snort/system"; import { ProxyImg } from "Element/ProxyImg"; import ProfileImage from "Element/ProfileImage"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; export default function ZapstrEmbed({ ev }: { ev: NostrEvent }) { const media = ev.tags.find(a => a[0] === "media"); diff --git a/packages/app/src/Pages/DeckLayout.tsx b/packages/app/src/Pages/DeckLayout.tsx index 1be3bf7dc..f667ab556 100644 --- a/packages/app/src/Pages/DeckLayout.tsx +++ b/packages/app/src/Pages/DeckLayout.tsx @@ -1,7 +1,7 @@ import "./Deck.css"; import { CSSProperties, createContext, useContext, useEffect, useState } from "react"; import { Outlet, useNavigate } from "react-router-dom"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { NostrLink } from "@snort/system"; import { DeckNav } from "Element/Deck/Nav"; diff --git a/packages/app/src/Pages/DonatePage.tsx b/packages/app/src/Pages/DonatePage.tsx index 2078608b3..ffbd94646 100644 --- a/packages/app/src/Pages/DonatePage.tsx +++ b/packages/app/src/Pages/DonatePage.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { HexKey } from "@snort/system"; import { ApiHost, KieranPubKey, SnortPubKey } from "Const"; diff --git a/packages/app/src/Pages/ErrorPage.tsx b/packages/app/src/Pages/ErrorPage.tsx index b3fcb5410..3dfe226c7 100644 --- a/packages/app/src/Pages/ErrorPage.tsx +++ b/packages/app/src/Pages/ErrorPage.tsx @@ -1,6 +1,6 @@ import { db } from "Db"; import AsyncButton from "Element/AsyncButton"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useRouteError } from "react-router-dom"; const ErrorPage = () => { diff --git a/packages/app/src/Pages/HashTagsPage.tsx b/packages/app/src/Pages/HashTagsPage.tsx index 82ef1a88c..48d3dbdf3 100644 --- a/packages/app/src/Pages/HashTagsPage.tsx +++ b/packages/app/src/Pages/HashTagsPage.tsx @@ -1,6 +1,6 @@ import { useMemo } from "react"; import { useParams } from "react-router-dom"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import Timeline from "Element/Timeline"; import useEventPublisher from "Hooks/useEventPublisher"; diff --git a/packages/app/src/Pages/HelpPage.tsx b/packages/app/src/Pages/HelpPage.tsx index 793fa8986..6c583920e 100644 --- a/packages/app/src/Pages/HelpPage.tsx +++ b/packages/app/src/Pages/HelpPage.tsx @@ -1,6 +1,6 @@ import { Link } from "react-router-dom"; import { KieranPubKey } from "Const"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { TLVEntryType, encodeTLVEntries, NostrPrefix } from "@snort/system"; import { bech32ToHex } from "SnortUtils"; diff --git a/packages/app/src/Pages/NostrAddressPage.tsx b/packages/app/src/Pages/NostrAddressPage.tsx index 96c2436cd..f561a3934 100644 --- a/packages/app/src/Pages/NostrAddressPage.tsx +++ b/packages/app/src/Pages/NostrAddressPage.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { ApiHost } from "Const"; import Nip5Service from "Element/Nip5Service"; diff --git a/packages/app/src/Pages/NostrLinkHandler.tsx b/packages/app/src/Pages/NostrLinkHandler.tsx index 6786b05b4..8325ce42e 100644 --- a/packages/app/src/Pages/NostrLinkHandler.tsx +++ b/packages/app/src/Pages/NostrLinkHandler.tsx @@ -1,6 +1,6 @@ import { NostrPrefix, tryParseNostrLink } from "@snort/system"; import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate, useParams } from "react-router-dom"; import Spinner from "Icons/Spinner"; diff --git a/packages/app/src/Pages/ProfilePage.tsx b/packages/app/src/Pages/ProfilePage.tsx index 990936823..def988ffd 100644 --- a/packages/app/src/Pages/ProfilePage.tsx +++ b/packages/app/src/Pages/ProfilePage.tsx @@ -1,6 +1,6 @@ import "./ProfilePage.css"; import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate, useParams } from "react-router-dom"; import { encodeTLV, diff --git a/packages/app/src/Pages/Root.tsx b/packages/app/src/Pages/Root.tsx index fc4885391..cd3da9039 100644 --- a/packages/app/src/Pages/Root.tsx +++ b/packages/app/src/Pages/Root.tsx @@ -1,6 +1,6 @@ import { useContext, useEffect, useState } from "react"; import { Link, Outlet, RouteObject, useParams } from "react-router-dom"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { unixNow } from "@snort/shared"; import { NostrLink } from "@snort/system"; diff --git a/packages/app/src/Pages/SettingsPage.tsx b/packages/app/src/Pages/SettingsPage.tsx index 717fede65..3e5fe0c9e 100644 --- a/packages/app/src/Pages/SettingsPage.tsx +++ b/packages/app/src/Pages/SettingsPage.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Outlet, RouteObject, useNavigate } from "react-router-dom"; import SettingsIndex from "Pages/settings/Root"; import Profile from "Pages/settings/Profile"; diff --git a/packages/app/src/Pages/new/GetVerified.tsx b/packages/app/src/Pages/new/GetVerified.tsx index 273de69e7..bf38616a9 100644 --- a/packages/app/src/Pages/new/GetVerified.tsx +++ b/packages/app/src/Pages/new/GetVerified.tsx @@ -1,5 +1,5 @@ import { useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { useUserProfile } from "@snort/system-react"; diff --git a/packages/app/src/Pages/new/NewUserFlow.tsx b/packages/app/src/Pages/new/NewUserFlow.tsx index 4c780d7ea..e1a1c1e68 100644 --- a/packages/app/src/Pages/new/NewUserFlow.tsx +++ b/packages/app/src/Pages/new/NewUserFlow.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import Logo from "Element/Logo"; diff --git a/packages/app/src/Pages/settings/Accounts.tsx b/packages/app/src/Pages/settings/Accounts.tsx index 1fb0a9873..b961d11d1 100644 --- a/packages/app/src/Pages/settings/Accounts.tsx +++ b/packages/app/src/Pages/settings/Accounts.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link } from "react-router-dom"; import ProfilePreview from "Element/ProfilePreview"; diff --git a/packages/app/src/Pages/settings/Keys.tsx b/packages/app/src/Pages/settings/Keys.tsx index f4f3f6261..c8cce2097 100644 --- a/packages/app/src/Pages/settings/Keys.tsx +++ b/packages/app/src/Pages/settings/Keys.tsx @@ -1,5 +1,5 @@ import "./Keys.css"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { encodeTLV, NostrPrefix, PinEncrypted } from "@snort/system"; import Copy from "Element/Copy"; diff --git a/packages/app/src/Pages/settings/Moderation.tsx b/packages/app/src/Pages/settings/Moderation.tsx index c48cb92f0..b38cf2bac 100644 --- a/packages/app/src/Pages/settings/Moderation.tsx +++ b/packages/app/src/Pages/settings/Moderation.tsx @@ -3,7 +3,7 @@ import useLogin from "Hooks/useLogin"; import { setAppData } from "Login"; import { appendDedupe } from "SnortUtils"; import { useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; export function ModerationSettings() { const login = useLogin(); diff --git a/packages/app/src/Pages/settings/Profile.tsx b/packages/app/src/Pages/settings/Profile.tsx index de6542b02..10fccf1e4 100644 --- a/packages/app/src/Pages/settings/Profile.tsx +++ b/packages/app/src/Pages/settings/Profile.tsx @@ -1,6 +1,6 @@ import "./Profile.css"; import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { mapEventToProfile } from "@snort/system"; import { useUserProfile } from "@snort/system-react"; diff --git a/packages/app/src/Pages/settings/RelayInfo.tsx b/packages/app/src/Pages/settings/RelayInfo.tsx index 6c5bca22b..a08e5143a 100644 --- a/packages/app/src/Pages/settings/RelayInfo.tsx +++ b/packages/app/src/Pages/settings/RelayInfo.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import ProfilePreview from "Element/ProfilePreview"; import useRelayState from "Feed/RelayState"; import { useNavigate, useParams } from "react-router-dom"; diff --git a/packages/app/src/Pages/settings/Relays.tsx b/packages/app/src/Pages/settings/Relays.tsx index 126758958..5699a3942 100644 --- a/packages/app/src/Pages/settings/Relays.tsx +++ b/packages/app/src/Pages/settings/Relays.tsx @@ -1,5 +1,5 @@ import { useMemo, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { unixNowMs } from "@snort/shared"; import { randomSample } from "SnortUtils"; diff --git a/packages/app/src/Pages/settings/Root.tsx b/packages/app/src/Pages/settings/Root.tsx index 1fcc8d4e3..aa749fc09 100644 --- a/packages/app/src/Pages/settings/Root.tsx +++ b/packages/app/src/Pages/settings/Root.tsx @@ -1,6 +1,6 @@ import "./Root.css"; import { useEffect, useMemo } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Outlet, useLocation, useNavigate } from "react-router-dom"; import Icon from "Icons/Icon"; import { LoginStore, logout } from "Login"; diff --git a/packages/app/src/Pages/settings/WalletSettings.tsx b/packages/app/src/Pages/settings/WalletSettings.tsx index 26540973f..b42bc0af1 100644 --- a/packages/app/src/Pages/settings/WalletSettings.tsx +++ b/packages/app/src/Pages/settings/WalletSettings.tsx @@ -1,6 +1,6 @@ import "./WalletSettings.css"; import LndLogo from "lnd-logo.png"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link, RouteObject, useNavigate } from "react-router-dom"; import BlueWallet from "Icons/BlueWallet"; diff --git a/packages/app/src/Pages/settings/handle/ListHandles.tsx b/packages/app/src/Pages/settings/handle/ListHandles.tsx index 8bef9940a..e9883ced0 100644 --- a/packages/app/src/Pages/settings/handle/ListHandles.tsx +++ b/packages/app/src/Pages/settings/handle/ListHandles.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link, useNavigate } from "react-router-dom"; import { ApiHost } from "Const"; diff --git a/packages/app/src/Pages/settings/handle/index.tsx b/packages/app/src/Pages/settings/handle/index.tsx index 5a60b380d..0b6e74405 100644 --- a/packages/app/src/Pages/settings/handle/index.tsx +++ b/packages/app/src/Pages/settings/handle/index.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Outlet, RouteObject, useNavigate } from "react-router-dom"; import ListHandles from "./ListHandles"; diff --git a/packages/app/src/Pages/subscribe/ManageSubscription.tsx b/packages/app/src/Pages/subscribe/ManageSubscription.tsx index ea616a3ce..6ab33db78 100644 --- a/packages/app/src/Pages/subscribe/ManageSubscription.tsx +++ b/packages/app/src/Pages/subscribe/ManageSubscription.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link, useNavigate } from "react-router-dom"; import PageSpinner from "Element/PageSpinner"; diff --git a/packages/app/src/Pages/subscribe/index.tsx b/packages/app/src/Pages/subscribe/index.tsx index 58eb6020a..627993bc8 100644 --- a/packages/app/src/Pages/subscribe/index.tsx +++ b/packages/app/src/Pages/subscribe/index.tsx @@ -1,7 +1,7 @@ import "./index.css"; import { useState } from "react"; -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { RouteObject } from "react-router-dom"; import { formatShort } from "Number"; diff --git a/packages/app/src/Tasks/DonateTask.tsx b/packages/app/src/Tasks/DonateTask.tsx index 0d1b8518c..3e4ab3bfc 100644 --- a/packages/app/src/Tasks/DonateTask.tsx +++ b/packages/app/src/Tasks/DonateTask.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link } from "react-router-dom"; import { BaseUITask } from "Tasks"; diff --git a/packages/app/src/Tasks/Nip5Task.tsx b/packages/app/src/Tasks/Nip5Task.tsx index 9087dd69e..192af3971 100644 --- a/packages/app/src/Tasks/Nip5Task.tsx +++ b/packages/app/src/Tasks/Nip5Task.tsx @@ -1,4 +1,4 @@ -import { FormattedMessage } from "react-intl"; +import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; import { Link } from "react-router-dom"; import { MetadataCache } from "@snort/system"; import { BaseUITask } from "Tasks"; diff --git a/packages/app/webpack.config.js b/packages/app/webpack.config.js index e8e4d021b..add49b515 100644 --- a/packages/app/webpack.config.js +++ b/packages/app/webpack.config.js @@ -77,6 +77,7 @@ const config = { : false, new DefinePlugin({ "process.env.APP_NAME": JSON.stringify(appConfig.get('appName')), + "process.env.APP_NAME_CAPITALIZED": JSON.stringify(appConfig.get('appNameCapitalized')), }), ], module: { From b3ede123b58bbeda3006cafcccd7dffc920f907f Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Tue, 26 Sep 2023 11:17:40 +0300 Subject: [PATCH 3/8] add favicon to config --- packages/app/config/default.json | 3 ++- packages/app/config/iris.json | 3 ++- packages/app/public/iris.ico | Bin 0 -> 15406 bytes packages/app/webpack.config.js | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 packages/app/public/iris.ico diff --git a/packages/app/config/default.json b/packages/app/config/default.json index c74a19673..df20d826c 100644 --- a/packages/app/config/default.json +++ b/packages/app/config/default.json @@ -1,5 +1,6 @@ { "appName": "Snort", "appNameCapitalized": "Snort", - "appTitle": "Snort - Nostr" + "appTitle": "Snort - Nostr", + "favicon": "public/favicon.ico" } diff --git a/packages/app/config/iris.json b/packages/app/config/iris.json index a142040ec..5a067871c 100644 --- a/packages/app/config/iris.json +++ b/packages/app/config/iris.json @@ -1,5 +1,6 @@ { "appName": "iris", "appNameCapitalized": "Iris", - "appTitle": "iris" + "appTitle": "iris", + "favicon": "public/iris.ico" } diff --git a/packages/app/public/iris.ico b/packages/app/public/iris.ico new file mode 100644 index 0000000000000000000000000000000000000000..a71cea29a743e182c140e36f3a12539ae5d60030 GIT binary patch literal 15406 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 Date: Tue, 26 Sep 2023 11:30:39 +0300 Subject: [PATCH 4/8] appConfig.nip05Domain for /username route --- packages/app/config/default.json | 1 + packages/app/config/iris.json | 1 + packages/app/src/Pages/NostrLinkHandler.tsx | 2 +- packages/app/webpack.config.js | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/app/config/default.json b/packages/app/config/default.json index df20d826c..ea2f8f6be 100644 --- a/packages/app/config/default.json +++ b/packages/app/config/default.json @@ -2,5 +2,6 @@ "appName": "Snort", "appNameCapitalized": "Snort", "appTitle": "Snort - Nostr", + "nip05Domain": "snort.social", "favicon": "public/favicon.ico" } diff --git a/packages/app/config/iris.json b/packages/app/config/iris.json index 5a067871c..f1c6ab754 100644 --- a/packages/app/config/iris.json +++ b/packages/app/config/iris.json @@ -2,5 +2,6 @@ "appName": "iris", "appNameCapitalized": "Iris", "appTitle": "iris", + "nip05Domain": "iris.to", "favicon": "public/iris.ico" } diff --git a/packages/app/src/Pages/NostrLinkHandler.tsx b/packages/app/src/Pages/NostrLinkHandler.tsx index 8325ce42e..18a37da7b 100644 --- a/packages/app/src/Pages/NostrLinkHandler.tsx +++ b/packages/app/src/Pages/NostrLinkHandler.tsx @@ -24,7 +24,7 @@ export default function NostrLinkHandler() { } } else { try { - const pubkey = await getNip05PubKey(`${link}@snort.social`); + const pubkey = await getNip05PubKey(`${link}@${process.env.NIP05_DOMAIN}`); if (pubkey) { navigate(profileLink(pubkey)); } diff --git a/packages/app/webpack.config.js b/packages/app/webpack.config.js index dadc8dd69..3f204f68e 100644 --- a/packages/app/webpack.config.js +++ b/packages/app/webpack.config.js @@ -78,6 +78,7 @@ const config = { new DefinePlugin({ "process.env.APP_NAME": JSON.stringify(appConfig.get('appName')), "process.env.APP_NAME_CAPITALIZED": JSON.stringify(appConfig.get('appNameCapitalized')), + "process.env.NIP05_DOMAIN": JSON.stringify(appConfig.get('nip05Domain')), }), ], module: { From d1085410ecd4b8e980845891244901152e035caf Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Tue, 26 Sep 2023 15:21:02 +0300 Subject: [PATCH 5/8] autologin with iris.myKey pin 1234 --- packages/app/src/Login/MultiAccountStore.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/app/src/Login/MultiAccountStore.ts b/packages/app/src/Login/MultiAccountStore.ts index 258c61192..ff8bcb838 100644 --- a/packages/app/src/Login/MultiAccountStore.ts +++ b/packages/app/src/Login/MultiAccountStore.ts @@ -86,6 +86,7 @@ export class MultiAccountStore extends ExternalStore { }; v.extraChats ??= []; } + this.#loadIrisKeyIfExists(); } getSessions() { @@ -217,6 +218,23 @@ export class MultiAccountStore extends ExternalStore { return { ...s }; } + async #loadIrisKeyIfExists() { + try { + const irisKeyJSON = window.localStorage.getItem('iris.myKey'); + if (irisKeyJSON) { + const irisKeyObj = JSON.parse(irisKeyJSON); + if (irisKeyObj.priv) { + const privateKey = await PinEncrypted.create(irisKeyObj.priv, '1234'); + this.loginWithPrivateKey(privateKey); + window.localStorage.removeItem('iris.myKey'); + } + } + } catch (e) { + console.error("Failed to load iris key", e); + } + } + + #migrate() { let didMigrate = false; From 03d6e1322653159102e45e042a9f6db28c781124 Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Wed, 27 Sep 2023 10:55:48 +0300 Subject: [PATCH 6/8] submit pin prompt by pressing enter --- packages/app/src/Element/AsyncButton.tsx | 3 +- packages/app/src/Element/PinPrompt.tsx | 56 ++++++++++++++---------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/packages/app/src/Element/AsyncButton.tsx b/packages/app/src/Element/AsyncButton.tsx index c4118afa0..180ea7051 100644 --- a/packages/app/src/Element/AsyncButton.tsx +++ b/packages/app/src/Element/AsyncButton.tsx @@ -6,6 +6,7 @@ interface AsyncButtonProps extends React.ButtonHTMLAttributes disabled?: boolean; onClick(e: React.MouseEvent): Promise | void; children?: React.ReactNode; + ref?: React.Ref; } export default function AsyncButton(props: AsyncButtonProps) { @@ -28,7 +29,7 @@ export default function AsyncButton(props: AsyncButtonProps) { } return ( - - submitPin()}> - - +
{ + e.preventDefault(); + if (submitButtonRef.current) { + submitButtonRef.current.click(); + } + }} + > +
+

+ +

+ {subTitle} + setPin(e.target.value)} + value={pin} + autoFocus={true} + maxLength={20} + minLength={4} + /> + {error && {error}} +
+ + submitPin()} type="submit"> + + +
- +
); } From cca17284ef8cd062b6103517ba3f5050a141e94c Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Wed, 27 Sep 2023 10:57:49 +0300 Subject: [PATCH 7/8] Snort -> process.env.APP_NAME in login view --- packages/app/src/Pages/LoginPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/Pages/LoginPage.tsx b/packages/app/src/Pages/LoginPage.tsx index c3ae3d59c..09f1448bb 100644 --- a/packages/app/src/Pages/LoginPage.tsx +++ b/packages/app/src/Pages/LoginPage.tsx @@ -283,7 +283,7 @@ export default function LoginPage() {

navigate("/")}> - Snort + {process.env.APP_NAME}

From ea6b8530570c67fe16f77fac83db57d6bb49a812 Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Wed, 27 Sep 2023 12:09:26 +0300 Subject: [PATCH 8/8] shorter Element/FormattedMessage path --- packages/app/src/Element/BadgeList.tsx | 2 +- packages/app/src/Element/BlockButton.tsx | 2 +- packages/app/src/Element/Bookmarks.tsx | 2 +- packages/app/src/Element/DmWindow.tsx | 2 +- packages/app/src/Element/FollowButton.tsx | 2 +- packages/app/src/Element/FollowListBase.tsx | 2 +- packages/app/src/Element/Following.tsx | 2 +- packages/app/src/Element/LiveEvent.tsx | 2 +- packages/app/src/Element/LoadMore.tsx | 2 +- packages/app/src/Element/LogoutButton.tsx | 2 +- packages/app/src/Element/MagnetLink.tsx | 2 +- packages/app/src/Element/MuteButton.tsx | 2 +- packages/app/src/Element/MutedList.tsx | 2 +- packages/app/src/Element/NostrFileHeader.tsx | 2 +- packages/app/src/Element/NoteReaction.tsx | 2 +- packages/app/src/Element/NoteToSelf.tsx | 2 +- packages/app/src/Element/ProxyImg.tsx | 2 +- packages/app/src/Element/ReBroadcaster.tsx | 2 +- packages/app/src/Element/Relay.tsx | 2 +- packages/app/src/Element/RevealMedia.tsx | 2 +- packages/app/src/Element/RootTabs.tsx | 2 +- packages/app/src/Element/SuggestedProfiles.tsx | 2 +- packages/app/src/Element/Timeline.tsx | 2 +- packages/app/src/Element/TimelineFollows.tsx | 2 +- packages/app/src/Element/ZapstrEmbed.tsx | 2 +- packages/app/src/Pages/DeckLayout.tsx | 2 +- packages/app/src/Pages/DonatePage.tsx | 2 +- packages/app/src/Pages/ErrorPage.tsx | 2 +- packages/app/src/Pages/HashTagsPage.tsx | 2 +- packages/app/src/Pages/HelpPage.tsx | 2 +- packages/app/src/Pages/NostrAddressPage.tsx | 2 +- packages/app/src/Pages/NostrLinkHandler.tsx | 2 +- packages/app/src/Pages/ProfilePage.tsx | 2 +- packages/app/src/Pages/Root.tsx | 2 +- packages/app/src/Pages/SettingsPage.tsx | 2 +- packages/app/src/Pages/new/GetVerified.tsx | 2 +- packages/app/src/Pages/new/NewUserFlow.tsx | 2 +- packages/app/src/Pages/settings/Accounts.tsx | 2 +- packages/app/src/Pages/settings/Keys.tsx | 2 +- packages/app/src/Pages/settings/Moderation.tsx | 2 +- packages/app/src/Pages/settings/Profile.tsx | 2 +- packages/app/src/Pages/settings/RelayInfo.tsx | 2 +- packages/app/src/Pages/settings/Relays.tsx | 2 +- packages/app/src/Pages/settings/Root.tsx | 2 +- packages/app/src/Pages/settings/WalletSettings.tsx | 2 +- packages/app/src/Pages/settings/handle/ListHandles.tsx | 2 +- packages/app/src/Pages/settings/handle/index.tsx | 2 +- packages/app/src/Pages/subscribe/ManageSubscription.tsx | 2 +- packages/app/src/Pages/subscribe/index.tsx | 2 +- packages/app/src/Tasks/DonateTask.tsx | 2 +- packages/app/src/Tasks/Nip5Task.tsx | 2 +- packages/app/webpack.config.js | 1 - 52 files changed, 51 insertions(+), 52 deletions(-) diff --git a/packages/app/src/Element/BadgeList.tsx b/packages/app/src/Element/BadgeList.tsx index e3357ef0f..35f53125d 100644 --- a/packages/app/src/Element/BadgeList.tsx +++ b/packages/app/src/Element/BadgeList.tsx @@ -1,7 +1,7 @@ import "./BadgeList.css"; import { useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { TaggedNostrEvent } from "@snort/system"; diff --git a/packages/app/src/Element/BlockButton.tsx b/packages/app/src/Element/BlockButton.tsx index e8a4a701c..120115753 100644 --- a/packages/app/src/Element/BlockButton.tsx +++ b/packages/app/src/Element/BlockButton.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useModeration from "Hooks/useModeration"; diff --git a/packages/app/src/Element/Bookmarks.tsx b/packages/app/src/Element/Bookmarks.tsx index 249b41aec..31abfbafb 100644 --- a/packages/app/src/Element/Bookmarks.tsx +++ b/packages/app/src/Element/Bookmarks.tsx @@ -1,5 +1,5 @@ import { useState, useMemo, ChangeEvent } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey, TaggedNostrEvent } from "@snort/system"; import Note from "Element/Note"; diff --git a/packages/app/src/Element/DmWindow.tsx b/packages/app/src/Element/DmWindow.tsx index 7bf6af347..ff2682c88 100644 --- a/packages/app/src/Element/DmWindow.tsx +++ b/packages/app/src/Element/DmWindow.tsx @@ -6,7 +6,7 @@ import DM from "Element/DM"; import useLogin from "Hooks/useLogin"; import WriteMessage from "Element/WriteMessage"; import { Chat, createEmptyChatObject, useChatSystem } from "chat"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { ChatParticipantProfile } from "./ChatParticipant"; export default function DmWindow({ id }: { id: string }) { diff --git a/packages/app/src/Element/FollowButton.tsx b/packages/app/src/Element/FollowButton.tsx index 488636947..b8464ae4a 100644 --- a/packages/app/src/Element/FollowButton.tsx +++ b/packages/app/src/Element/FollowButton.tsx @@ -1,5 +1,5 @@ import "./FollowButton.css"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useEventPublisher from "Hooks/useEventPublisher"; diff --git a/packages/app/src/Element/FollowListBase.tsx b/packages/app/src/Element/FollowListBase.tsx index 47451dd2f..33bbccdda 100644 --- a/packages/app/src/Element/FollowListBase.tsx +++ b/packages/app/src/Element/FollowListBase.tsx @@ -1,5 +1,5 @@ import { ReactNode } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useEventPublisher from "Hooks/useEventPublisher"; diff --git a/packages/app/src/Element/Following.tsx b/packages/app/src/Element/Following.tsx index de082d835..6c9efe62c 100644 --- a/packages/app/src/Element/Following.tsx +++ b/packages/app/src/Element/Following.tsx @@ -1,7 +1,7 @@ import "./Following.css"; import useLogin from "Hooks/useLogin"; import Icon from "Icons/Icon"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; export function FollowingMark({ pubkey }: { pubkey: string }) { const { follows } = useLogin(s => ({ follows: s.follows })); diff --git a/packages/app/src/Element/LiveEvent.tsx b/packages/app/src/Element/LiveEvent.tsx index 8acc43fb5..2bf3dcbf3 100644 --- a/packages/app/src/Element/LiveEvent.tsx +++ b/packages/app/src/Element/LiveEvent.tsx @@ -1,5 +1,5 @@ import { NostrEvent, NostrLink } from "@snort/system"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link } from "react-router-dom"; import { findTag } from "SnortUtils"; diff --git a/packages/app/src/Element/LoadMore.tsx b/packages/app/src/Element/LoadMore.tsx index 101980913..90ef4fb26 100644 --- a/packages/app/src/Element/LoadMore.tsx +++ b/packages/app/src/Element/LoadMore.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useInView } from "react-intersection-observer"; import messages from "./messages"; diff --git a/packages/app/src/Element/LogoutButton.tsx b/packages/app/src/Element/LogoutButton.tsx index 6ba5afcc1..e4dea754c 100644 --- a/packages/app/src/Element/LogoutButton.tsx +++ b/packages/app/src/Element/LogoutButton.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { logout } from "Login"; diff --git a/packages/app/src/Element/MagnetLink.tsx b/packages/app/src/Element/MagnetLink.tsx index 39a650295..016d6192b 100644 --- a/packages/app/src/Element/MagnetLink.tsx +++ b/packages/app/src/Element/MagnetLink.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Magnet } from "SnortUtils"; diff --git a/packages/app/src/Element/MuteButton.tsx b/packages/app/src/Element/MuteButton.tsx index f74177657..647b2db3e 100644 --- a/packages/app/src/Element/MuteButton.tsx +++ b/packages/app/src/Element/MuteButton.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey } from "@snort/system"; import useModeration from "Hooks/useModeration"; diff --git a/packages/app/src/Element/MutedList.tsx b/packages/app/src/Element/MutedList.tsx index 9ecf305c8..d74a3df37 100644 --- a/packages/app/src/Element/MutedList.tsx +++ b/packages/app/src/Element/MutedList.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey } from "@snort/system"; import MuteButton from "Element/MuteButton"; import ProfilePreview from "Element/ProfilePreview"; diff --git a/packages/app/src/Element/NostrFileHeader.tsx b/packages/app/src/Element/NostrFileHeader.tsx index 72873bf02..09be6b380 100644 --- a/packages/app/src/Element/NostrFileHeader.tsx +++ b/packages/app/src/Element/NostrFileHeader.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { NostrEvent, NostrLink } from "@snort/system"; import { findTag } from "SnortUtils"; diff --git a/packages/app/src/Element/NoteReaction.tsx b/packages/app/src/Element/NoteReaction.tsx index 9d54626f9..5b10d2f80 100644 --- a/packages/app/src/Element/NoteReaction.tsx +++ b/packages/app/src/Element/NoteReaction.tsx @@ -7,7 +7,7 @@ import Note from "Element/Note"; import { getDisplayName } from "Element/ProfileImage"; import { eventLink, hexToBech32 } from "SnortUtils"; import useModeration from "Hooks/useModeration"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import Icon from "Icons/Icon"; import { useUserProfile } from "@snort/system-react"; import { useInView } from "react-intersection-observer"; diff --git a/packages/app/src/Element/NoteToSelf.tsx b/packages/app/src/Element/NoteToSelf.tsx index b3c2b26e2..b665dc2bd 100644 --- a/packages/app/src/Element/NoteToSelf.tsx +++ b/packages/app/src/Element/NoteToSelf.tsx @@ -1,6 +1,6 @@ import "./NoteToSelf.css"; import { Link, useNavigate } from "react-router-dom"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { profileLink } from "SnortUtils"; import messages from "./messages"; diff --git a/packages/app/src/Element/ProxyImg.tsx b/packages/app/src/Element/ProxyImg.tsx index 634880a64..91bc6a64c 100644 --- a/packages/app/src/Element/ProxyImg.tsx +++ b/packages/app/src/Element/ProxyImg.tsx @@ -1,6 +1,6 @@ import useImgProxy from "Hooks/useImgProxy"; import React, { useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { getUrlHostname } from "SnortUtils"; interface ProxyImgProps extends React.DetailedHTMLProps, HTMLImageElement> { diff --git a/packages/app/src/Element/ReBroadcaster.tsx b/packages/app/src/Element/ReBroadcaster.tsx index 3a75fe276..92fa89ea3 100644 --- a/packages/app/src/Element/ReBroadcaster.tsx +++ b/packages/app/src/Element/ReBroadcaster.tsx @@ -1,5 +1,5 @@ import { useContext, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { TaggedNostrEvent } from "@snort/system"; import { SnortContext } from "@snort/system-react"; diff --git a/packages/app/src/Element/Relay.tsx b/packages/app/src/Element/Relay.tsx index 09d881f1d..8f145dea5 100644 --- a/packages/app/src/Element/Relay.tsx +++ b/packages/app/src/Element/Relay.tsx @@ -1,6 +1,6 @@ import "./Relay.css"; import { useMemo } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { RelaySettings } from "@snort/system"; import { unixNowMs } from "@snort/shared"; diff --git a/packages/app/src/Element/RevealMedia.tsx b/packages/app/src/Element/RevealMedia.tsx index 87ad64b6f..9be7c627a 100644 --- a/packages/app/src/Element/RevealMedia.tsx +++ b/packages/app/src/Element/RevealMedia.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { FileExtensionRegex } from "Const"; import Reveal from "Element/Reveal"; diff --git a/packages/app/src/Element/RootTabs.tsx b/packages/app/src/Element/RootTabs.tsx index 733ce273b..81f15e4d8 100644 --- a/packages/app/src/Element/RootTabs.tsx +++ b/packages/app/src/Element/RootTabs.tsx @@ -2,7 +2,7 @@ import "./RootTabs.css"; import { useState, ReactNode, useEffect } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import { Menu, MenuItem } from "@szhsin/react-menu"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import useLogin from "Hooks/useLogin"; import Icon from "Icons/Icon"; diff --git a/packages/app/src/Element/SuggestedProfiles.tsx b/packages/app/src/Element/SuggestedProfiles.tsx index d3841d4fa..6d8026beb 100644 --- a/packages/app/src/Element/SuggestedProfiles.tsx +++ b/packages/app/src/Element/SuggestedProfiles.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { HexKey, NostrPrefix } from "@snort/system"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import FollowListBase from "Element/FollowListBase"; import PageSpinner from "Element/PageSpinner"; diff --git a/packages/app/src/Element/Timeline.tsx b/packages/app/src/Element/Timeline.tsx index 71681d1af..10de3cd86 100644 --- a/packages/app/src/Element/Timeline.tsx +++ b/packages/app/src/Element/Timeline.tsx @@ -1,5 +1,5 @@ import "./Timeline.css"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useCallback, useMemo } from "react"; import { useInView } from "react-intersection-observer"; import { TaggedNostrEvent, EventKind, u256 } from "@snort/system"; diff --git a/packages/app/src/Element/TimelineFollows.tsx b/packages/app/src/Element/TimelineFollows.tsx index cbfa53d6f..f376945b3 100644 --- a/packages/app/src/Element/TimelineFollows.tsx +++ b/packages/app/src/Element/TimelineFollows.tsx @@ -1,6 +1,6 @@ import "./Timeline.css"; import { ReactNode, useCallback, useContext, useMemo, useState, useSyncExternalStore } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { TaggedNostrEvent, EventKind, u256, NostrEvent, NostrLink } from "@snort/system"; import { unixNow } from "@snort/shared"; import { SnortContext } from "@snort/system-react"; diff --git a/packages/app/src/Element/ZapstrEmbed.tsx b/packages/app/src/Element/ZapstrEmbed.tsx index 6e225d2b7..f7f41c44e 100644 --- a/packages/app/src/Element/ZapstrEmbed.tsx +++ b/packages/app/src/Element/ZapstrEmbed.tsx @@ -4,7 +4,7 @@ import { NostrEvent, NostrLink } from "@snort/system"; import { ProxyImg } from "Element/ProxyImg"; import ProfileImage from "Element/ProfileImage"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; export default function ZapstrEmbed({ ev }: { ev: NostrEvent }) { const media = ev.tags.find(a => a[0] === "media"); diff --git a/packages/app/src/Pages/DeckLayout.tsx b/packages/app/src/Pages/DeckLayout.tsx index f667ab556..320d8ae91 100644 --- a/packages/app/src/Pages/DeckLayout.tsx +++ b/packages/app/src/Pages/DeckLayout.tsx @@ -1,7 +1,7 @@ import "./Deck.css"; import { CSSProperties, createContext, useContext, useEffect, useState } from "react"; import { Outlet, useNavigate } from "react-router-dom"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { NostrLink } from "@snort/system"; import { DeckNav } from "Element/Deck/Nav"; diff --git a/packages/app/src/Pages/DonatePage.tsx b/packages/app/src/Pages/DonatePage.tsx index ffbd94646..5374fee2e 100644 --- a/packages/app/src/Pages/DonatePage.tsx +++ b/packages/app/src/Pages/DonatePage.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { HexKey } from "@snort/system"; import { ApiHost, KieranPubKey, SnortPubKey } from "Const"; diff --git a/packages/app/src/Pages/ErrorPage.tsx b/packages/app/src/Pages/ErrorPage.tsx index 3dfe226c7..2ad1f7949 100644 --- a/packages/app/src/Pages/ErrorPage.tsx +++ b/packages/app/src/Pages/ErrorPage.tsx @@ -1,6 +1,6 @@ import { db } from "Db"; import AsyncButton from "Element/AsyncButton"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useRouteError } from "react-router-dom"; const ErrorPage = () => { diff --git a/packages/app/src/Pages/HashTagsPage.tsx b/packages/app/src/Pages/HashTagsPage.tsx index 48d3dbdf3..39d007d73 100644 --- a/packages/app/src/Pages/HashTagsPage.tsx +++ b/packages/app/src/Pages/HashTagsPage.tsx @@ -1,6 +1,6 @@ import { useMemo } from "react"; import { useParams } from "react-router-dom"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import Timeline from "Element/Timeline"; import useEventPublisher from "Hooks/useEventPublisher"; diff --git a/packages/app/src/Pages/HelpPage.tsx b/packages/app/src/Pages/HelpPage.tsx index 6c583920e..fff8cfd88 100644 --- a/packages/app/src/Pages/HelpPage.tsx +++ b/packages/app/src/Pages/HelpPage.tsx @@ -1,6 +1,6 @@ import { Link } from "react-router-dom"; import { KieranPubKey } from "Const"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { TLVEntryType, encodeTLVEntries, NostrPrefix } from "@snort/system"; import { bech32ToHex } from "SnortUtils"; diff --git a/packages/app/src/Pages/NostrAddressPage.tsx b/packages/app/src/Pages/NostrAddressPage.tsx index f561a3934..74d524c1c 100644 --- a/packages/app/src/Pages/NostrAddressPage.tsx +++ b/packages/app/src/Pages/NostrAddressPage.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { ApiHost } from "Const"; import Nip5Service from "Element/Nip5Service"; diff --git a/packages/app/src/Pages/NostrLinkHandler.tsx b/packages/app/src/Pages/NostrLinkHandler.tsx index 18a37da7b..99217d26e 100644 --- a/packages/app/src/Pages/NostrLinkHandler.tsx +++ b/packages/app/src/Pages/NostrLinkHandler.tsx @@ -1,6 +1,6 @@ import { NostrPrefix, tryParseNostrLink } from "@snort/system"; import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate, useParams } from "react-router-dom"; import Spinner from "Icons/Spinner"; diff --git a/packages/app/src/Pages/ProfilePage.tsx b/packages/app/src/Pages/ProfilePage.tsx index def988ffd..d30b8f41c 100644 --- a/packages/app/src/Pages/ProfilePage.tsx +++ b/packages/app/src/Pages/ProfilePage.tsx @@ -1,6 +1,6 @@ import "./ProfilePage.css"; import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate, useParams } from "react-router-dom"; import { encodeTLV, diff --git a/packages/app/src/Pages/Root.tsx b/packages/app/src/Pages/Root.tsx index cd3da9039..ddb19c424 100644 --- a/packages/app/src/Pages/Root.tsx +++ b/packages/app/src/Pages/Root.tsx @@ -1,6 +1,6 @@ import { useContext, useEffect, useState } from "react"; import { Link, Outlet, RouteObject, useParams } from "react-router-dom"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { unixNow } from "@snort/shared"; import { NostrLink } from "@snort/system"; diff --git a/packages/app/src/Pages/SettingsPage.tsx b/packages/app/src/Pages/SettingsPage.tsx index 3e5fe0c9e..34d236b06 100644 --- a/packages/app/src/Pages/SettingsPage.tsx +++ b/packages/app/src/Pages/SettingsPage.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Outlet, RouteObject, useNavigate } from "react-router-dom"; import SettingsIndex from "Pages/settings/Root"; import Profile from "Pages/settings/Profile"; diff --git a/packages/app/src/Pages/new/GetVerified.tsx b/packages/app/src/Pages/new/GetVerified.tsx index bf38616a9..6a3a80467 100644 --- a/packages/app/src/Pages/new/GetVerified.tsx +++ b/packages/app/src/Pages/new/GetVerified.tsx @@ -1,5 +1,5 @@ import { useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { useUserProfile } from "@snort/system-react"; diff --git a/packages/app/src/Pages/new/NewUserFlow.tsx b/packages/app/src/Pages/new/NewUserFlow.tsx index e1a1c1e68..a88e5ffc9 100644 --- a/packages/app/src/Pages/new/NewUserFlow.tsx +++ b/packages/app/src/Pages/new/NewUserFlow.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import Logo from "Element/Logo"; diff --git a/packages/app/src/Pages/settings/Accounts.tsx b/packages/app/src/Pages/settings/Accounts.tsx index b961d11d1..5d8d9cf07 100644 --- a/packages/app/src/Pages/settings/Accounts.tsx +++ b/packages/app/src/Pages/settings/Accounts.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link } from "react-router-dom"; import ProfilePreview from "Element/ProfilePreview"; diff --git a/packages/app/src/Pages/settings/Keys.tsx b/packages/app/src/Pages/settings/Keys.tsx index c8cce2097..278e8199b 100644 --- a/packages/app/src/Pages/settings/Keys.tsx +++ b/packages/app/src/Pages/settings/Keys.tsx @@ -1,5 +1,5 @@ import "./Keys.css"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { encodeTLV, NostrPrefix, PinEncrypted } from "@snort/system"; import Copy from "Element/Copy"; diff --git a/packages/app/src/Pages/settings/Moderation.tsx b/packages/app/src/Pages/settings/Moderation.tsx index b38cf2bac..394c55aaa 100644 --- a/packages/app/src/Pages/settings/Moderation.tsx +++ b/packages/app/src/Pages/settings/Moderation.tsx @@ -3,7 +3,7 @@ import useLogin from "Hooks/useLogin"; import { setAppData } from "Login"; import { appendDedupe } from "SnortUtils"; import { useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; export function ModerationSettings() { const login = useLogin(); diff --git a/packages/app/src/Pages/settings/Profile.tsx b/packages/app/src/Pages/settings/Profile.tsx index 10fccf1e4..61f0969e4 100644 --- a/packages/app/src/Pages/settings/Profile.tsx +++ b/packages/app/src/Pages/settings/Profile.tsx @@ -1,6 +1,6 @@ import "./Profile.css"; import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { useNavigate } from "react-router-dom"; import { mapEventToProfile } from "@snort/system"; import { useUserProfile } from "@snort/system-react"; diff --git a/packages/app/src/Pages/settings/RelayInfo.tsx b/packages/app/src/Pages/settings/RelayInfo.tsx index a08e5143a..337d402f3 100644 --- a/packages/app/src/Pages/settings/RelayInfo.tsx +++ b/packages/app/src/Pages/settings/RelayInfo.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import ProfilePreview from "Element/ProfilePreview"; import useRelayState from "Feed/RelayState"; import { useNavigate, useParams } from "react-router-dom"; diff --git a/packages/app/src/Pages/settings/Relays.tsx b/packages/app/src/Pages/settings/Relays.tsx index 5699a3942..0144838a6 100644 --- a/packages/app/src/Pages/settings/Relays.tsx +++ b/packages/app/src/Pages/settings/Relays.tsx @@ -1,5 +1,5 @@ import { useMemo, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { unixNowMs } from "@snort/shared"; import { randomSample } from "SnortUtils"; diff --git a/packages/app/src/Pages/settings/Root.tsx b/packages/app/src/Pages/settings/Root.tsx index aa749fc09..8edab2b8f 100644 --- a/packages/app/src/Pages/settings/Root.tsx +++ b/packages/app/src/Pages/settings/Root.tsx @@ -1,6 +1,6 @@ import "./Root.css"; import { useEffect, useMemo } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Outlet, useLocation, useNavigate } from "react-router-dom"; import Icon from "Icons/Icon"; import { LoginStore, logout } from "Login"; diff --git a/packages/app/src/Pages/settings/WalletSettings.tsx b/packages/app/src/Pages/settings/WalletSettings.tsx index b42bc0af1..ca1f107ec 100644 --- a/packages/app/src/Pages/settings/WalletSettings.tsx +++ b/packages/app/src/Pages/settings/WalletSettings.tsx @@ -1,6 +1,6 @@ import "./WalletSettings.css"; import LndLogo from "lnd-logo.png"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link, RouteObject, useNavigate } from "react-router-dom"; import BlueWallet from "Icons/BlueWallet"; diff --git a/packages/app/src/Pages/settings/handle/ListHandles.tsx b/packages/app/src/Pages/settings/handle/ListHandles.tsx index e9883ced0..7677f72f9 100644 --- a/packages/app/src/Pages/settings/handle/ListHandles.tsx +++ b/packages/app/src/Pages/settings/handle/ListHandles.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link, useNavigate } from "react-router-dom"; import { ApiHost } from "Const"; diff --git a/packages/app/src/Pages/settings/handle/index.tsx b/packages/app/src/Pages/settings/handle/index.tsx index 0b6e74405..c8531da1b 100644 --- a/packages/app/src/Pages/settings/handle/index.tsx +++ b/packages/app/src/Pages/settings/handle/index.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Outlet, RouteObject, useNavigate } from "react-router-dom"; import ListHandles from "./ListHandles"; diff --git a/packages/app/src/Pages/subscribe/ManageSubscription.tsx b/packages/app/src/Pages/subscribe/ManageSubscription.tsx index 6ab33db78..b4b194c4e 100644 --- a/packages/app/src/Pages/subscribe/ManageSubscription.tsx +++ b/packages/app/src/Pages/subscribe/ManageSubscription.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link, useNavigate } from "react-router-dom"; import PageSpinner from "Element/PageSpinner"; diff --git a/packages/app/src/Pages/subscribe/index.tsx b/packages/app/src/Pages/subscribe/index.tsx index 627993bc8..9167956f0 100644 --- a/packages/app/src/Pages/subscribe/index.tsx +++ b/packages/app/src/Pages/subscribe/index.tsx @@ -1,7 +1,7 @@ import "./index.css"; import { useState } from "react"; -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { RouteObject } from "react-router-dom"; import { formatShort } from "Number"; diff --git a/packages/app/src/Tasks/DonateTask.tsx b/packages/app/src/Tasks/DonateTask.tsx index 3e4ab3bfc..f6cbebe41 100644 --- a/packages/app/src/Tasks/DonateTask.tsx +++ b/packages/app/src/Tasks/DonateTask.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link } from "react-router-dom"; import { BaseUITask } from "Tasks"; diff --git a/packages/app/src/Tasks/Nip5Task.tsx b/packages/app/src/Tasks/Nip5Task.tsx index 192af3971..2b5cfcf8f 100644 --- a/packages/app/src/Tasks/Nip5Task.tsx +++ b/packages/app/src/Tasks/Nip5Task.tsx @@ -1,4 +1,4 @@ -import FormattedMessage from "@snort/app/src/Element/FormattedMessage"; +import FormattedMessage from "Element/FormattedMessage"; import { Link } from "react-router-dom"; import { MetadataCache } from "@snort/system"; import { BaseUITask } from "Tasks"; diff --git a/packages/app/webpack.config.js b/packages/app/webpack.config.js index 3f204f68e..7bdfc769b 100644 --- a/packages/app/webpack.config.js +++ b/packages/app/webpack.config.js @@ -11,7 +11,6 @@ const WorkboxPlugin = require("workbox-webpack-plugin"); const IntlTsTransformer = require("@formatjs/ts-transformer"); const { DefinePlugin } = require('webpack'); const appConfig = require('config'); -console.log(`Current config: ${JSON.stringify(appConfig, null, 2)}`); const isProduction = process.env.NODE_ENV == "production";