diff --git a/packages/app/src/Pages/DonatePage.tsx b/packages/app/src/Pages/DonatePage.tsx index b378cc8c..6e9973cd 100644 --- a/packages/app/src/Pages/DonatePage.tsx +++ b/packages/app/src/Pages/DonatePage.tsx @@ -12,12 +12,11 @@ import Modal from "@/Components/Modal/Modal"; import QrCode from "@/Components/QrCode"; import ProfilePreview from "@/Components/User/ProfilePreview"; import SnortApi, { RevenueSplit, RevenueToday } from "@/External/SnortApi"; +import { ZapPoolTarget } from "@/Pages/ZapPool/ZapPoolTarget"; import { bech32ToHex, unwrap } from "@/Utils"; import { ApiHost, DeveloperAccounts, SnortPubKey } from "@/Utils/Const"; import { ZapPoolController, ZapPoolRecipientType } from "@/Utils/ZapPoolController"; -import { ZapPoolTarget } from "./ZapPool"; - const Contributors = [ bech32ToHex("npub10djxr5pvdu97rjkde7tgcsjxzpdzmdguwacfjwlchvj7t88dl7nsdl54nf"), // ivan bech32ToHex("npub148jmlutaa49y5wl5mcll003ftj59v79vf7wuv3apcwpf75hx22vs7kk9ay"), // liran cohen diff --git a/packages/app/src/Pages/ZapPool.css b/packages/app/src/Pages/ZapPool/ZapPool.css similarity index 100% rename from packages/app/src/Pages/ZapPool.css rename to packages/app/src/Pages/ZapPool/ZapPool.css diff --git a/packages/app/src/Pages/ZapPool/ZapPool.tsx b/packages/app/src/Pages/ZapPool/ZapPool.tsx new file mode 100644 index 00000000..512ec3f4 --- /dev/null +++ b/packages/app/src/Pages/ZapPool/ZapPool.tsx @@ -0,0 +1,11 @@ +import "./ZapPool.css"; + +import { ZapPoolPageInner } from "@/Pages/ZapPool/ZapPoolPageInner"; +import { ZapPoolController } from "@/Utils/ZapPoolController"; + +export default function ZapPoolPage() { + if (!ZapPoolController) { + return null; + } + return ; +} diff --git a/packages/app/src/Pages/ZapPool.tsx b/packages/app/src/Pages/ZapPool/ZapPoolPageInner.tsx similarity index 76% rename from packages/app/src/Pages/ZapPool.tsx rename to packages/app/src/Pages/ZapPool/ZapPoolPageInner.tsx index 62f07261..91e3bdd3 100644 --- a/packages/app/src/Pages/ZapPool.tsx +++ b/packages/app/src/Pages/ZapPool/ZapPoolPageInner.tsx @@ -1,17 +1,14 @@ -import "./ZapPool.css"; - -import { useUserProfile } from "@snort/system-react"; import { useMemo, useSyncExternalStore } from "react"; import { FormattedMessage, FormattedNumber } from "react-intl"; import AsyncButton from "@/Components/Button/AsyncButton"; -import ProfilePreview from "@/Components/User/ProfilePreview"; import useEventPublisher from "@/Hooks/useEventPublisher"; import useLogin from "@/Hooks/useLogin"; +import { ZapPoolTarget } from "@/Pages/ZapPool/ZapPoolTarget"; import { bech32ToHex, getRelayName, trackEvent, unwrap } from "@/Utils"; import { SnortPubKey } from "@/Utils/Const"; import { UploaderServices } from "@/Utils/Upload"; -import { ZapPoolController, ZapPoolRecipient, ZapPoolRecipientType } from "@/Utils/ZapPoolController"; +import { ZapPoolController, ZapPoolRecipientType } from "@/Utils/ZapPoolController"; import { useWallet } from "@/Wallet"; const DataProviders = [ @@ -21,51 +18,7 @@ const DataProviders = [ }, ]; -function ZapPoolTargetInner({ target }: { target: ZapPoolRecipient }) { - const login = useLogin(); - const profile = useUserProfile(target.pubkey); - const hasAddress = profile?.lud16 || profile?.lud06; - const defaultZapMount = Math.ceil(login.appData.item.preferences.defaultZapAmount * (target.split / 100)); - return ( - -
- % ( - ) -
- - ZapPoolController?.set({ - ...target, - split: e.target.valueAsNumber, - }) - } - /> - - ) : ( - - ) - } - /> - ); -} - -export function ZapPoolTarget({ target }: { target: ZapPoolRecipient }) { - if (!ZapPoolController) { - return null; - } - return ; -} - -function ZapPoolPageInner() { +export function ZapPoolPageInner() { const login = useLogin(); const { system } = useEventPublisher(); const zapPool = useSyncExternalStore( @@ -232,10 +185,3 @@ function ZapPoolPageInner() { ); } - -export default function ZapPoolPage() { - if (!ZapPoolController) { - return null; - } - return ; -} diff --git a/packages/app/src/Pages/ZapPool/ZapPoolTarget.tsx b/packages/app/src/Pages/ZapPool/ZapPoolTarget.tsx new file mode 100644 index 00000000..456e4df3 --- /dev/null +++ b/packages/app/src/Pages/ZapPool/ZapPoolTarget.tsx @@ -0,0 +1,50 @@ +import { useUserProfile } from "@snort/system-react"; +import { FormattedMessage, FormattedNumber } from "react-intl"; + +import ProfilePreview from "@/Components/User/ProfilePreview"; +import useLogin from "@/Hooks/useLogin"; +import { ZapPoolController, ZapPoolRecipient } from "@/Utils/ZapPoolController"; + +function ZapPoolTargetInner({ target }: { target: ZapPoolRecipient }) { + const login = useLogin(); + const profile = useUserProfile(target.pubkey); + const hasAddress = profile?.lud16 || profile?.lud06; + const defaultZapMount = Math.ceil(login.appData.item.preferences.defaultZapAmount * (target.split / 100)); + return ( + +
+ % ( + ) +
+ + ZapPoolController?.set({ + ...target, + split: e.target.valueAsNumber, + }) + } + /> + + ) : ( + + ) + } + /> + ); +} + +export function ZapPoolTarget({ target }: { target: ZapPoolRecipient }) { + if (!ZapPoolController) { + return null; + } + return ; +} diff --git a/packages/app/src/Pages/settings/Menu/Menu.tsx b/packages/app/src/Pages/settings/Menu/Menu.tsx index 6d70a9e1..f9042235 100644 --- a/packages/app/src/Pages/settings/Menu/Menu.tsx +++ b/packages/app/src/Pages/settings/Menu/Menu.tsx @@ -1,10 +1,11 @@ -import {ReactNode, useCallback} from "react"; -import {FormattedMessage} from "react-intl"; -import {useNavigate} from "react-router-dom"; +import { ReactNode, useCallback } from "react"; +import { FormattedMessage } from "react-intl"; +import { useNavigate } from "react-router-dom"; + import useLogin from "@/Hooks/useLogin"; -import {LoginStore, logout} from "@/Utils/Login"; -import {getCurrentSubscription} from "@/Utils/Subscription"; -import {SettingsMenuComponent} from "@/Pages/settings/Menu/SettingsMenuComponent"; +import { SettingsMenuComponent } from "@/Pages/settings/Menu/SettingsMenuComponent"; +import { LoginStore, logout } from "@/Utils/Login"; +import { getCurrentSubscription } from "@/Utils/Subscription"; export type SettingsMenuItems = Array<{ title: ReactNode; diff --git a/packages/app/src/Pages/settings/Menu/SettingsMenuComponent.tsx b/packages/app/src/Pages/settings/Menu/SettingsMenuComponent.tsx index 052a6b86..ef1017bb 100644 --- a/packages/app/src/Pages/settings/Menu/SettingsMenuComponent.tsx +++ b/packages/app/src/Pages/settings/Menu/SettingsMenuComponent.tsx @@ -1,15 +1,16 @@ -import {Link} from "react-router-dom"; import classNames from "classnames"; -import Icon from "@/Components/Icons/Icon"; -import {SettingsMenuItems} from "@/Pages/settings/Menu/Menu"; +import { Link } from "react-router-dom"; -export function SettingsMenuComponent({menu}: { menu: SettingsMenuItems }) { +import Icon from "@/Components/Icons/Icon"; +import { SettingsMenuItems } from "@/Pages/settings/Menu/Menu"; + +export function SettingsMenuComponent({ menu }: { menu: SettingsMenuItems }) { return (
{menu.map((group, groupIndex) => (
{group.title}
- {group.items.map(({icon, iconBg, message, path, action}, index) => ( + {group.items.map(({ icon, iconBg, message, path, action }, index) => (
- +
{message}
- + ))}
))}
); -} \ No newline at end of file +} diff --git a/packages/app/src/Pages/settings/tools/index.tsx b/packages/app/src/Pages/settings/tools/index.tsx index 8837091d..521e2b52 100644 --- a/packages/app/src/Pages/settings/tools/index.tsx +++ b/packages/app/src/Pages/settings/tools/index.tsx @@ -1,10 +1,11 @@ import { FormattedMessage } from "react-intl"; import { Outlet, RouteObject } from "react-router-dom"; +import { SettingsMenuComponent } from "@/Pages/settings/Menu/SettingsMenuComponent"; + import { SettingsMenuItems } from "../Menu/Menu"; import { FollowsRelayHealth } from "./follows-relay-health"; import { PruneFollowList } from "./prune-follows"; -import {SettingsMenuComponent} from "@/Pages/settings/Menu/SettingsMenuComponent"; const ToolMenuItems = [ { diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx index 233d5c9e..00c0a05e 100644 --- a/packages/app/src/index.tsx +++ b/packages/app/src/index.tsx @@ -36,7 +36,7 @@ import { SubscribeRoutes } from "@/Pages/subscribe"; import WalletPage from "@/Pages/wallet"; import { WalletReceivePage } from "@/Pages/wallet/receive"; import { WalletSendPage } from "@/Pages/wallet/send"; -import ZapPoolPage from "@/Pages/ZapPool"; +import ZapPoolPage from "@/Pages/ZapPool/ZapPool"; import { System } from "@/system"; import { storeRefCode, unwrap } from "@/Utils"; import { LoginStore } from "@/Utils/Login";