diff --git a/src/components/MutinyPlusCta.tsx b/src/components/MutinyPlusCta.tsx
new file mode 100644
index 000000000..95983c412
--- /dev/null
+++ b/src/components/MutinyPlusCta.tsx
@@ -0,0 +1,40 @@
+import { ParentComponent } from "solid-js";
+import { A } from "solid-start";
+
+import forward from "~/assets/icons/forward.svg";
+import { useI18n } from "~/i18n/context";
+
+export const CtaCard: ParentComponent = (props) => {
+ return (
+
+
+
+
+ {props.children}{" "}
+
+
+
+ );
+};
+
+export function MutinyPlusCta() {
+ const i18n = useI18n();
+ return (
+
+
+
+
+ Mutiny+
+
+
+
+
+ {i18n.t("settings.plus.cta_description")}
+
+
+
+ );
+}
diff --git a/src/components/index.ts b/src/components/index.ts
index e40ba6d22..de12a63b5 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -44,3 +44,4 @@ export * from "./Toaster";
export * from "./NostrActivity";
export * from "./SyncContactsForm";
export * from "./GiftLink";
+export * from "./MutinyPlusCta";
diff --git a/src/i18n/en/translations.ts b/src/i18n/en/translations.ts
index c3d6ba10d..85c5ae267 100644
--- a/src/i18n/en/translations.ts
+++ b/src/i18n/en/translations.ts
@@ -402,7 +402,9 @@ export default {
satisfaction: "Smug satisfaction",
gifting: "Gifting",
multi_device: "Multi-device access",
- more: "... and more to come"
+ more: "... and more to come",
+ cta_description:
+ "Enjoy early access to new features and premium functionality."
},
restore: {
title: "Restore",
@@ -479,7 +481,9 @@ export default {
send_cta: "Create a gift",
send_delete_button: "Delete Gift",
send_delete_confirm:
- "Are you sure you want to delete this gift? Is this your rugpull moment?"
+ "Are you sure you want to delete this gift? Is this your rugpull moment?",
+ need_plus:
+ "Upgrade to Mutiny+ to enable gifting. Gifting allows you to create a Mutiny gift URL that can be claimed by anyone with a web browser."
}
},
swap: {
diff --git a/src/routes/settings/Connections.tsx b/src/routes/settings/Connections.tsx
index 2d7cd94f6..b2e7690c5 100644
--- a/src/routes/settings/Connections.tsx
+++ b/src/routes/settings/Connections.tsx
@@ -144,9 +144,9 @@ function NwcDetails(props: {
{/* No interval for gifts */}
-
- {props.profile.budget_period}
-
+
+ {props.profile.budget_period}
+
@@ -302,7 +302,7 @@ function Nwc() {
- p.tag !== "Gift")}>
+ p.tag !== "Gift")}>
{(profile) => (
void }) {
+export function SingleGift(props: {
+ profile: NwcProfile;
+ onDelete?: () => void;
+}) {
const i18n = useI18n();
const [state, _actions] = useMegaStore();
@@ -199,6 +203,15 @@ export default function GiftPage() {
+
+
+
+ {i18n.t("settings.gift.send_header")}
+
+ {i18n.t("settings.gift.need_plus")}
+
+
+
@@ -234,7 +247,7 @@ export default function GiftPage() {
-
+
{i18n.t("settings.gift.send_header")}
diff --git a/src/routes/settings/Plus.tsx b/src/routes/settings/Plus.tsx
index 66cc9f42c..251f1b9f0 100644
--- a/src/routes/settings/Plus.tsx
+++ b/src/routes/settings/Plus.tsx
@@ -36,14 +36,11 @@ function Perks(props: { alreadySubbed?: boolean }) {
{i18n.t("settings.plus.satisfaction")}
+ {i18n.t("settings.plus.gifting")}
{i18n.t("redshift.title")}{" "}
{i18n.t("common.coming_soon")}
-
- {i18n.t("settings.plus.gifting")}{" "}
- {i18n.t("common.coming_soon")}
-
{i18n.t("settings.plus.multi_device")}{" "}
{i18n.t("common.coming_soon")}
diff --git a/src/routes/settings/index.tsx b/src/routes/settings/index.tsx
index 788caea20..070065649 100644
--- a/src/routes/settings/index.tsx
+++ b/src/routes/settings/index.tsx
@@ -7,6 +7,7 @@ import {
DefaultMain,
ExternalLink,
LargeHeader,
+ MutinyPlusCta,
NavBar,
SafeArea,
SettingsCard,
@@ -77,15 +78,7 @@ export default function Settings() {
{i18n.t("settings.header")}
-
+