navigate("/")}>
- Snort
+ {process.env.APP_NAME}
diff --git a/packages/app/src/Pages/NostrAddressPage.tsx b/packages/app/src/Pages/NostrAddressPage.tsx
index 96c2436c..74d524c1 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 "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 6786b05b..99217d26 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 "Element/FormattedMessage";
import { useNavigate, useParams } from "react-router-dom";
import Spinner from "Icons/Spinner";
@@ -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/src/Pages/ProfilePage.tsx b/packages/app/src/Pages/ProfilePage.tsx
index 99093682..d30b8f41 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 "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 fc488539..ddb19c42 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 "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 717fede6..34d236b0 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 "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 273de69e..6a3a8046 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 "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 4c780d7e..a88e5ffc 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 "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 1fb0a987..5d8d9cf0 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 "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 f4f3f626..278e8199 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 "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 c48cb92f..394c55aa 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 "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 de6542b0..61f0969e 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 "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 6c5bca22..337d402f 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 "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 12675895..0144838a 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 "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 1fcc8d4e..8edab2b8 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 "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 26540973..ca1f107e 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 "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 8bef9940..7677f72f 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 "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 5a60b380..c8531da1 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 "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 ea616a3c..b4b194c4 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 "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 58eb6020..9167956f 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 "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 0d1b8518..f6cbebe4 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 "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 9087dd69..2b5cfcf8 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 "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 d002edba..7bdfc769 100644
--- a/packages/app/webpack.config.js
+++ b/packages/app/webpack.config.js
@@ -9,6 +9,8 @@ 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');
const isProduction = process.env.NODE_ENV == "production";
@@ -47,8 +49,11 @@ const config = {
}),
new HtmlWebpackPlugin({
template: "public/index.html",
- favicon: "public/favicon.ico",
+ favicon: appConfig.get('favicon'),
excludeChunks: ["pow", "bench"],
+ templateParameters: {
+ appTitle: appConfig.get('appTitle'),
+ },
}),
new HtmlWebpackPlugin({
filename: "bench.html",
@@ -69,6 +74,11 @@ const config = {
swSrc: "./src/service-worker.ts",
})
: false,
+ 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: {
rules: [
diff --git a/yarn.lock b/yarn.lock
index 5c7a35d6..4cb9d1b9 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"