diff --git a/src/lib/analytics/types.ts b/src/lib/analytics/types.ts index 83cc1422..7caa9b35 100644 --- a/src/lib/analytics/types.ts +++ b/src/lib/analytics/types.ts @@ -79,6 +79,7 @@ interface TrackPropertiesMap { // MENU events 'Menu:ItemClicked': {url: string} 'Menu:FeedbackClicked': {} + 'Menu:HelpClicked': {} // MOBILE SHELL events 'MobileShell:MyProfileButtonPressed': {} 'MobileShell:HomeButtonPressed': {} diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 0a8c32cd..27f57a14 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -1,5 +1,23 @@ -export const FEEDBACK_FORM_URL = - 'https://docs.google.com/forms/d/e/1FAIpQLSdavFRXTdB6tRobaFrRR2A1gv3b-IBHwQkBmNZTRpoqmcrPrQ/viewform?usp=sf_link' +const HELP_DESK_LANG = 'en-us' +export const HELP_DESK_URL = `https://blueskyweb.zendesk.com/hc/${HELP_DESK_LANG}` + +const BASE_FEEDBACK_FORM_URL = `${HELP_DESK_URL}/requests/new` +export function FEEDBACK_FORM_URL({ + email, + handle, +}: { + email?: string + handle?: string +}): string { + let str = BASE_FEEDBACK_FORM_URL + if (email) { + str += `?tf_anonymous_requester_email=${encodeURIComponent(email)}` + if (handle) { + str += `&tf_17205412673421=${encodeURIComponent(handle)}` + } + } + return str +} export const MAX_DISPLAY_NAME = 64 export const MAX_DESCRIPTION = 256 diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index c02478f9..0428e54c 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -16,7 +16,7 @@ import { FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' import {s, colors} from 'lib/styles' -import {FEEDBACK_FORM_URL} from 'lib/constants' +import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' import {useStores} from 'state/index' import { HomeIcon, @@ -116,8 +116,19 @@ export const DrawerContent = observer(() => { const onPressFeedback = React.useCallback(() => { track('Menu:FeedbackClicked') - Linking.openURL(FEEDBACK_FORM_URL) + Linking.openURL( + FEEDBACK_FORM_URL({ + email: store.session.currentSession?.email, + handle: store.session.currentSession?.handle, + }), + ) + }, [track, store.session.currentSession]) + + const onPressHelp = React.useCallback(() => { + track('Menu:HelpClicked') + Linking.openURL(HELP_DESK_URL) }, [track]) + // rendering // = @@ -138,10 +149,14 @@ export const DrawerContent = observer(() => { + style={[pal.text, s.bold, styles.profileCardDisplayName]} + numberOfLines={1}> {store.me.displayName || store.me.handle} - + @{store.me.handle} { { ]}> - + Feedback + + + Help + + @@ -495,8 +520,8 @@ const styles = StyleSheet.create({ footer: { flexDirection: 'row', - justifyContent: 'space-between', - paddingRight: 30, + gap: 8, + paddingRight: 20, paddingTop: 20, paddingLeft: 20, }, @@ -507,7 +532,7 @@ const styles = StyleSheet.create({ borderRadius: 25, }, footerBtnFeedback: { - paddingHorizontal: 24, + paddingHorizontal: 20, }, footerBtnFeedbackLight: { backgroundColor: '#DDEFFF', diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index 4f56b8e5..ef0d8e46 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -6,7 +6,7 @@ import {usePalette} from 'lib/hooks/usePalette' import {DesktopSearch} from './Search' import {Text} from 'view/com/util/text/Text' import {TextLink} from 'view/com/util/Link' -import {FEEDBACK_FORM_URL} from 'lib/constants' +import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' import {s} from 'lib/styles' import {useStores} from 'state/index' import {pluralize} from 'lib/strings/helpers' @@ -37,7 +37,10 @@ export const DesktopRightNav = observer(function DesktopRightNav() { @@ -47,7 +50,7 @@ export const DesktopRightNav = observer(function DesktopRightNav() { type="md" style={pal.link} href="https://blueskyweb.xyz/support/privacy-policy" - text="Privacy Policy" + text="Privacy" />  ·  @@ -58,6 +61,15 @@ export const DesktopRightNav = observer(function DesktopRightNav() { href="https://blueskyweb.xyz/support/tos" text="Terms" /> + +  ·  + +