about summary refs log tree commit diff
path: root/src/lib
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2025-07-17 14:32:58 -0500
committerGitHub <noreply@github.com>2025-07-17 14:32:58 -0500
commit964eed54eaa53f0912b336391642654cb8a0f605 (patch)
treefa5beda05823ca6025e8bcec4ad711f52919baba /src/lib
parent00b017804bcb811b5f9292a88619423df3a29ef8 (diff)
downloadvoidsky-964eed54eaa53f0912b336391642654cb8a0f605.tar.zst
Age assurance fast-follows (#8656)
* Add feed banner

* Comment

* Update nux name

* Handle did error

* Hide mod settings if underage or age restricted

* Add metrics

* Remove DEV override

* Copy suggestion

* Small copy edits

* useState

* Fix bug

* Update src/components/ageAssurance/useAgeAssuranceCopy.ts

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

* Get rid of debug button

---------

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/hooks/useCreateSupportLink.ts39
-rw-r--r--src/lib/notifications/notifications.ts3
2 files changed, 42 insertions, 0 deletions
diff --git a/src/lib/hooks/useCreateSupportLink.ts b/src/lib/hooks/useCreateSupportLink.ts
new file mode 100644
index 000000000..5ec7578c5
--- /dev/null
+++ b/src/lib/hooks/useCreateSupportLink.ts
@@ -0,0 +1,39 @@
+import {useCallback} from 'react'
+import {msg} from '@lingui/macro'
+import {useLingui} from '@lingui/react'
+
+import {useSession} from '#/state/session'
+
+export const ZENDESK_SUPPORT_URL =
+  'https://blueskyweb.zendesk.com/hc/requests/new'
+
+export enum SupportCode {
+  AA_DID = 'AA_DID',
+}
+
+/**
+ * {@link https://support.zendesk.com/hc/en-us/articles/4408839114522-Creating-pre-filled-ticket-forms}
+ */
+export function useCreateSupportLink() {
+  const {_} = useLingui()
+  const {currentAccount} = useSession()
+
+  return useCallback(
+    ({code, email}: {code: SupportCode; email?: string}) => {
+      const url = new URL(ZENDESK_SUPPORT_URL)
+      if (currentAccount) {
+        url.search = new URLSearchParams({
+          tf_anonymous_requester_email: email || currentAccount.email || '', // email will be defined
+          tf_description:
+            `[Code: ${code}] — ` + _(msg`Please write your message below:`),
+          /**
+           * Custom field specific to {@link ZENDESK_SUPPORT_URL} form
+           */
+          tf_17205412673421: currentAccount.handle + ` (${currentAccount.did})`,
+        }).toString()
+      }
+      return url.toString()
+    },
+    [_, currentAccount],
+  )
+}
diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts
index 0d2f9ed09..67a38a52c 100644
--- a/src/lib/notifications/notifications.ts
+++ b/src/lib/notifications/notifications.ts
@@ -192,6 +192,9 @@ export function useNotificationsRegistration() {
      * Register the push token with the Bluesky server, whenever it changes.
      * This is also fired any time `getDevicePushTokenAsync` is called.
      *
+     * Since this is registered immediately after `getAndRegisterPushToken`, it
+     * should also detect that getter and be fired almost immediately after this.
+     *
      * According to the Expo docs, there is a chance that the token will change
      * while the app is open in some rare cases. This will fire
      * `registerPushToken` whenever that happens.