From 2ba4063645e9d842d5d5cc698f58161258e34169 Mon Sep 17 00:00:00 2001 From: ekzyis Date: Sun, 17 Mar 2024 15:57:50 +0100 Subject: [PATCH] Add setting for no referral links on copy --- api/typeDefs/user.js | 2 ++ components/share.js | 3 ++- fragments/users.js | 2 ++ lib/validate.js | 1 + pages/settings/index.js | 8 +++++++- .../migration.sql | 2 ++ prisma/schema.prisma | 1 + 7 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 prisma/migrations/20240317144736_referral_link_privacy_setting/migration.sql diff --git a/api/typeDefs/user.js b/api/typeDefs/user.js index e7145a16..086465df 100644 --- a/api/typeDefs/user.js +++ b/api/typeDefs/user.js @@ -64,6 +64,7 @@ export default gql` input SettingsInput { autoDropBolt11s: Boolean! diagnostics: Boolean! + noReferralLinks: Boolean! fiatCurrency: String! greeterMode: Boolean! hideBookmarks: Boolean! @@ -128,6 +129,7 @@ export default gql` """ autoDropBolt11s: Boolean! diagnostics: Boolean! + noReferralLinks: Boolean! fiatCurrency: String! greeterMode: Boolean! hideBookmarks: Boolean! diff --git a/components/share.js b/components/share.js index 9c1e1bcb..cec126d1 100644 --- a/components/share.js +++ b/components/share.js @@ -9,7 +9,8 @@ import { commentSubTreeRootId } from '../lib/item' import { useRouter } from 'next/router' const referrurl = (ipath, me) => { - const path = `${ipath}${me ? `/r/${me.name}` : ''}` + const referral = me && !me.privates?.noReferralLinks + const path = `${ipath}${referral ? `/r/${me.name}` : ''}` if (!SSR) { return `${window.location.protocol}//${window.location.host}${path}` } diff --git a/fragments/users.js b/fragments/users.js index 5f14a17a..f9225eca 100644 --- a/fragments/users.js +++ b/fragments/users.js @@ -12,6 +12,7 @@ export const ME = gql` privates { autoDropBolt11s diagnostics + noReferralLinks fiatCurrency greeterMode hideCowboyHat @@ -87,6 +88,7 @@ export const SETTINGS_FIELDS = gql` imgproxyOnly hideWalletBalance diagnostics + noReferralLinks nostrPubkey nostrCrossposting nostrRelays diff --git a/lib/validate.js b/lib/validate.js index a07a823c..12ee3c07 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -531,6 +531,7 @@ export const settingsSchema = object({ hideTwitter: boolean(), hideWalletBalance: boolean(), diagnostics: boolean(), + noReferralLinks: boolean(), hideIsContributor: boolean() }) diff --git a/pages/settings/index.js b/pages/settings/index.js index e4b7a5db..d6f99cfc 100644 --- a/pages/settings/index.js +++ b/pages/settings/index.js @@ -94,7 +94,8 @@ export default function Settings ({ ssrData }) { hideBookmarks: settings?.hideBookmarks, hideWalletBalance: settings?.hideWalletBalance, diagnostics: settings?.diagnostics, - hideIsContributor: settings?.hideIsContributor + hideIsContributor: settings?.hideIsContributor, + noReferralLinks: settings?.noReferralLinks }} schema={settingsSchema} onSubmit={async ({ tipDefault, withdrawMaxFeeDefault, nostrPubkey, nostrRelays, ...values }) => { @@ -410,6 +411,11 @@ export default function Settings ({ ssrData }) { } name='diagnostics' + groupClassName='mb-0' + /> + don't create referral links on copy} + name='noReferralLinks' />
content