diff --git a/public/images/nostr-icon-white.png b/public/images/nostr-icon-white.png new file mode 100644 index 0000000..6bc9259 Binary files /dev/null and b/public/images/nostr-icon-white.png differ diff --git a/src/components/profile/BitcoinLightningCard.js b/src/components/profile/BitcoinLightningCard.js new file mode 100644 index 0000000..195b04f --- /dev/null +++ b/src/components/profile/BitcoinLightningCard.js @@ -0,0 +1,19 @@ +import React from 'react'; +import BitcoinConnectButton from '@/components/bitcoinConnect/BitcoinConnect'; + +const BitcoinLightningCard = () => { + return ( +
+
+ +

Lightning Wallet Connection

+
+

+ Connect your Lightning wallet for easier payments across the platform +

+ +
+ ); +}; + +export default BitcoinLightningCard; \ No newline at end of file diff --git a/src/components/profile/UserAccountLinking.js b/src/components/profile/UserAccountLinking.js index d8e2724..9d2d1bd 100644 --- a/src/components/profile/UserAccountLinking.js +++ b/src/components/profile/UserAccountLinking.js @@ -8,6 +8,7 @@ import { useNDKContext } from "@/context/NDKContext"; import { useToast } from '@/hooks/useToast'; import { useRouter } from 'next/router'; import { useSession } from 'next-auth/react'; +import MoreInfo from '@/components/MoreInfo'; const LinkAccountsCard = ({ session }) => { const isNostrLinked = session?.user?.pubkey && !session?.user?.privkey; @@ -120,32 +121,29 @@ const LinkAccountsCard = ({ session }) => { }; const MobileCard = () => ( -
-

Link Accounts

+
+
+

Link Accounts

+ +
-
+
+ } + onClick={handleNostrLink} + disabled={isNostrLinked} + className={`text-[#f8f8ff] w-[250px] mx-auto flex items-center justify-center`} + rounded + /> + - - } - onClick={handleNostrLink} - disabled={isNostrLinked} - className={`w-full min-w-[240px] border-none flex items-center justify-center ${ - isNostrLinked - ? "bg-gray-600 opacity-70 cursor-not-allowed" - : "bg-[#6B4E71] hover:bg-[#6B4E71]/80" - }`} + className={`text-[#f8f8ff] w-[250px] mx-auto`} + rounded /> { icon="pi pi-envelope" onClick={handleEmailLink} disabled={isEmailLinked} - className={`w-full min-w-[240px] border-none ${ - isEmailLinked - ? "bg-gray-600 opacity-70 cursor-not-allowed" - : "bg-[#4A5568] hover:bg-[#4A5568]/80" - }`} + className={`text-[#f8f8ff] w-[250px] mx-auto`} + rounded />
@@ -165,31 +160,27 @@ const LinkAccountsCard = ({ session }) => { const DesktopCard = () => (
-

Link Accounts

- +
+

Link Accounts

+ +
} + icon={Nostr} onClick={handleNostrLink} disabled={isNostrLinked} - className={`w-full border-none flex items-center justify-center ${ - isNostrLinked - ? "bg-gray-600 opacity-70 cursor-not-allowed" - : "bg-[#6B4E71] hover:bg-[#6B4E71]/80" - }`} + className={`text-[#f8f8ff] w-[250px] mx-auto flex items-center justify-center`} + rounded /> { icon="pi pi-envelope" onClick={handleEmailLink} disabled={isEmailLinked} - className={`w-full border-none ${ - isEmailLinked - ? "bg-gray-600 opacity-70 cursor-not-allowed" - : "bg-[#4A5568] hover:bg-[#4A5568]/80" - }`} + className={`text-[#f8f8ff] w-[250px] mx-auto`} + rounded />
diff --git a/src/components/profile/UserProfile.js b/src/components/profile/UserProfile.js index ed0aa4f..9050878 100644 --- a/src/components/profile/UserProfile.js +++ b/src/components/profile/UserProfile.js @@ -7,9 +7,9 @@ import ActivityContributionChart from "@/components/charts/ActivityContributionC import useCheckCourseProgress from "@/hooks/tracking/useCheckCourseProgress"; import useWindowWidth from "@/hooks/useWindowWidth"; import UserProgress from "@/components/profile/progress/UserProgress"; -import UserAccountLinking from "@/components/profile/UserAccountLinking"; import UserProgressTable from '@/components/profile/DataTables/UserProgressTable'; import UserPurchaseTable from '@/components/profile/DataTables/UserPurchaseTable'; +import BitcoinLightningCard from '@/components/profile/BitcoinLightningCard'; const UserProfile = () => { const windowWidth = useWindowWidth(); @@ -41,7 +41,7 @@ const UserProfile = () => {
{user && } - {user && } +
diff --git a/src/components/profile/UserProfileCard.js b/src/components/profile/UserProfileCard.js index ef0903e..ee88215 100644 --- a/src/components/profile/UserProfileCard.js +++ b/src/components/profile/UserProfileCard.js @@ -156,7 +156,7 @@ const UserProfileCard = ({ user }) => { className="rounded-full my-4" />
-
+
menu.current.toggle(e)} diff --git a/src/components/profile/UserSettings.js b/src/components/profile/UserSettings.js index 9e9d045..14d6aea 100644 --- a/src/components/profile/UserSettings.js +++ b/src/components/profile/UserSettings.js @@ -1,18 +1,10 @@ -import React, { useState, useEffect, useCallback } from "react"; -import GenericButton from "@/components/buttons/GenericButton"; -import { DataTable } from "primereact/datatable"; -import { Column } from "primereact/column"; +import React, { useState, useEffect } from "react"; import UserProfileCard from "@/components/profile/UserProfileCard"; import { useSession } from 'next-auth/react'; import { useNDKContext } from "@/context/NDKContext"; import useWindowWidth from "@/hooks/useWindowWidth"; -import BitcoinConnectButton from "@/components/bitcoinConnect/BitcoinConnect"; -import { InputText } from "primereact/inputtext"; -import { useToast } from "@/hooks/useToast"; -import SubscribeModal from "@/components/profile/subscription/SubscribeModal"; -import appConfig from "@/config/appConfig"; import UserRelaysTable from "@/components/profile/DataTables/UserRelaysTable"; - +import UserAccountLinking from "@/components/profile/UserAccountLinking"; const UserSettings = () => { const [user, setUser] = useState(null); const { ndk, userRelays, setUserRelays, reInitializeNDK } = useNDKContext(); @@ -35,20 +27,7 @@ const UserSettings = () => {
- {/* Lightning Info Card */} -
-
- -

Lightning Wallet Connection

-
-

- Connect your Lightning wallet for easier payments across the platform -

- -
- - {/* Subscription Modal */} - {user && } + {user && }
diff --git a/src/components/profile/subscription/SubscribeModal.js b/src/components/profile/subscription/SubscribeModal.js index a7d0b26..5aab444 100644 --- a/src/components/profile/subscription/SubscribeModal.js +++ b/src/components/profile/subscription/SubscribeModal.js @@ -148,7 +148,7 @@ const SubscribeModal = ({ user }) => { return ( <> - + {subscribed && !user?.role?.nwc && (
@@ -219,10 +219,6 @@ const SubscribeModal = ({ user }) => { Claim your own personal plebdevs.com Nostr NIP-05 identity
-
- - I WILL MAKE SURE YOU WIN HARD AND LEVEL UP AS A DEV! -
{ const [subscribed, setSubscribed] = useState(false); const [subscribedUntil, setSubscribedUntil] = useState(null); const [subscriptionExpiredAt, setSubscriptionExpiredAt] = useState(null); + const [subscribeModalVisible, setSubscribeModalVisible] = useState(false); const [calendlyVisible, setCalendlyVisible] = useState(false); const [lightningAddressVisible, setLightningAddressVisible] = useState(false); const [nip05Visible, setNip05Visible] = useState(false); @@ -101,39 +103,28 @@ const UserSubscription = () => {
{/* Left Column - 22% */}
-
- {/* Subscription Status Messages */} - {subscribed && !user?.role?.nwc && ( -
- -

Thank you for your support 🎉

-

Pay-as-you-go subscription requires manual renewal on {subscribedUntil.toLocaleDateString()}

-
- )} - {subscribed && user?.role?.nwc && ( -
- -

Thank you for your support 🎉

-

Recurring subscription will AUTO renew on {subscribedUntil.toLocaleDateString()}

-
- )} - {(!subscribed && !subscriptionExpiredAt) && ( -
- -
- )} - {subscriptionExpiredAt && ( -
- -
- )} -
+ {user && ( + <> + + setSubscribeModalVisible(false)} + /> + + )}
{/* Right Column - 78% */}
{!subscribed && ( - + {isProcessing ? (
@@ -141,11 +132,10 @@ const UserSubscription = () => {
) : (
-
-

Unlock Premium Benefits

+

Subscribe now and elevate your development journey!

-
+
Access ALL current and future PlebDevs content @@ -162,10 +152,6 @@ const UserSubscription = () => { Nostr Claim your own personal plebdevs.com Nostr NIP-05 identity
-
- - I WILL MAKE SURE YOU WIN HARD AND LEVEL UP AS A DEV! -
Sign In } className="text-[#f8f8ff] w-[250px] my-4 mx-auto" rounded onClick={handleNostrSignIn} diff --git a/src/pages/subscribe.js b/src/pages/subscribe.js index 9eecf5d..bb72f5e 100644 --- a/src/pages/subscribe.js +++ b/src/pages/subscribe.js @@ -225,10 +225,6 @@ const Subscribe = () => { Nostr Claim your own personal plebdevs.com Nostr NIP-05 identity
-
- - I WILL MAKE SURE YOU WIN HARD AND LEVEL UP AS A DEV! -