about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-02-12 21:13:42 -0600
committerGitHub <noreply@github.com>2024-02-12 19:13:42 -0800
commitbbf049d477817f745b26887612ed68e0ae00daf3 (patch)
treedf824c9d29ac1e90515c09cd0aa94619d0d7a9a2
parent543e114877fcd00dd8c717a1116757a1a37d5aff (diff)
downloadvoidsky-bbf049d477817f745b26887612ed68e0ae00daf3.tar.zst
Remove invites code UI (#2851)
* Hide invite codes UI, comment in settings

* Just comment out
-rw-r--r--src/view/screens/Settings/index.tsx117
-rw-r--r--src/view/shell/Drawer.tsx55
-rw-r--r--src/view/shell/desktop/RightNav.tsx87
3 files changed, 66 insertions, 193 deletions
diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx
index 458952527..9abf0f2bd 100644
--- a/src/view/screens/Settings/index.tsx
+++ b/src/view/screens/Settings/index.tsx
@@ -41,7 +41,7 @@ import {
 import {useSession, useSessionApi, SessionAccount} from '#/state/session'
 import {useProfileQuery} from '#/state/queries/profile'
 import {useClearPreferencesMutation} from '#/state/queries/preferences'
-import {useInviteCodesQuery} from '#/state/queries/invites'
+// TODO import {useInviteCodesQuery} from '#/state/queries/invites'
 import {clear as clearStorage} from '#/state/persisted/store'
 import {clearLegacyStorage} from '#/state/persisted/legacy'
 import {STATUS_PAGE_URL} from 'lib/constants'
@@ -153,20 +153,21 @@ export function SettingsScreen({}: Props) {
   const {openModal} = useModalControls()
   const {isSwitchingAccounts, accounts, currentAccount} = useSession()
   const {mutate: clearPreferences} = useClearPreferencesMutation()
-  const {data: invites} = useInviteCodesQuery()
-  const invitesAvailable = invites?.available?.length ?? 0
+  // TODO
+  // const {data: invites} = useInviteCodesQuery()
+  // const invitesAvailable = invites?.available?.length ?? 0
   const {setShowLoggedOut} = useLoggedOutViewControls()
   const closeAllActiveElements = useCloseAllActiveElements()
   const exportCarControl = useDialogControl()
 
-  const primaryBg = useCustomPalette<ViewStyle>({
-    light: {backgroundColor: colors.blue0},
-    dark: {backgroundColor: colors.blue6},
-  })
-  const primaryText = useCustomPalette<TextStyle>({
-    light: {color: colors.blue3},
-    dark: {color: colors.blue2},
-  })
+  // const primaryBg = useCustomPalette<ViewStyle>({
+  //   light: {backgroundColor: colors.blue0},
+  //   dark: {backgroundColor: colors.blue6},
+  // })
+  // const primaryText = useCustomPalette<TextStyle>({
+  //   light: {color: colors.blue3},
+  //   dark: {color: colors.blue2},
+  // })
 
   const dangerBg = useCustomPalette<ViewStyle>({
     light: {backgroundColor: colors.red1},
@@ -209,10 +210,12 @@ export function SettingsScreen({}: Props) {
     exportCarControl.open()
   }, [exportCarControl])
 
+  /* TODO
   const onPressInviteCodes = React.useCallback(() => {
     track('Settings:InvitecodesButtonClicked')
     openModal({name: 'invite-codes'})
   }, [track, openModal])
+ */
 
   const onPressLanguageSettings = React.useCallback(() => {
     navigation.navigate('LanguageSettings')
@@ -392,51 +395,57 @@ export function SettingsScreen({}: Props) {
 
         <View style={styles.spacer20} />
 
-        <Text type="xl-bold" style={[pal.text, styles.heading]}>
-          <Trans>Invite a Friend</Trans>
-        </Text>
+        {/* TODO (
+          <>
+            <Text type="xl-bold" style={[pal.text, styles.heading]}>
+              <Trans>Invite a Friend</Trans>
+            </Text>
 
-        <TouchableOpacity
-          testID="inviteFriendBtn"
-          style={[
-            styles.linkCard,
-            pal.view,
-            isSwitchingAccounts && styles.dimmed,
-          ]}
-          onPress={isSwitchingAccounts ? undefined : onPressInviteCodes}
-          accessibilityRole="button"
-          accessibilityLabel={_(msg`Invite`)}
-          accessibilityHint={_(msg`Opens invite code list`)}
-          disabled={invites?.disabled}>
-          <View
-            style={[
-              styles.iconContainer,
-              invitesAvailable > 0 ? primaryBg : pal.btn,
-            ]}>
-            <FontAwesomeIcon
-              icon="ticket"
-              style={
-                (invitesAvailable > 0
-                  ? primaryText
-                  : pal.text) as FontAwesomeIconStyle
-              }
-            />
-          </View>
-          <Text type="lg" style={invitesAvailable > 0 ? pal.link : pal.text}>
-            {invites?.disabled ? (
-              <Trans>
-                Your invite codes are hidden when logged in using an App
-                Password
-              </Trans>
-            ) : invitesAvailable === 1 ? (
-              <Trans>{invitesAvailable} invite code available</Trans>
-            ) : (
-              <Trans>{invitesAvailable} invite codes available</Trans>
-            )}
-          </Text>
-        </TouchableOpacity>
+            <TouchableOpacity
+              testID="inviteFriendBtn"
+              style={[
+                styles.linkCard,
+                pal.view,
+                isSwitchingAccounts && styles.dimmed,
+              ]}
+              onPress={isSwitchingAccounts ? undefined : onPressInviteCodes}
+              accessibilityRole="button"
+              accessibilityLabel={_(msg`Invite`)}
+              accessibilityHint={_(msg`Opens invite code list`)}
+              disabled={invites?.disabled}>
+              <View
+                style={[
+                  styles.iconContainer,
+                  invitesAvailable > 0 ? primaryBg : pal.btn,
+                ]}>
+                <FontAwesomeIcon
+                  icon="ticket"
+                  style={
+                    (invitesAvailable > 0
+                      ? primaryText
+                      : pal.text) as FontAwesomeIconStyle
+                  }
+                />
+              </View>
+              <Text
+                type="lg"
+                style={invitesAvailable > 0 ? pal.link : pal.text}>
+                {invites?.disabled ? (
+                  <Trans>
+                    Your invite codes are hidden when logged in using an App
+                    Password
+                  </Trans>
+                ) : invitesAvailable === 1 ? (
+                  <Trans>{invitesAvailable} invite code available</Trans>
+                ) : (
+                  <Trans>{invitesAvailable} invite codes available</Trans>
+                )}
+              </Text>
+            </TouchableOpacity>
 
-        <View style={styles.spacer20} />
+            <View style={styles.spacer20} />
+          </>
+        )*/}
 
         <Text type="xl-bold" style={[pal.text, styles.heading]}>
           <Trans>Accessibility</Trans>
diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx
index 62a6b9040..2a37d1fe9 100644
--- a/src/view/shell/Drawer.tsx
+++ b/src/view/shell/Drawer.tsx
@@ -44,12 +44,10 @@ import {formatCountShortOnly} from 'view/com/util/numeric/format'
 import {Trans, msg} from '@lingui/macro'
 import {useLingui} from '@lingui/react'
 import {useSetDrawerOpen} from '#/state/shell'
-import {useModalControls} from '#/state/modals'
 import {useSession, SessionAccount} from '#/state/session'
 import {useProfileQuery} from '#/state/queries/profile'
 import {useUnreadNotifications} from '#/state/queries/notifications/unread'
 import {emitSoftReset} from '#/state/events'
-import {useInviteCodesQuery} from '#/state/queries/invites'
 import {NavSignupCard} from '#/view/shell/NavSignupCard'
 import {TextLink} from '../com/util/Link'
 
@@ -228,8 +226,7 @@ let DrawerContent = ({}: {}): React.ReactNode => {
 
           {hasSession ? (
             <>
-              <InviteCodes />
-              <View style={{height: 10}} />
+              <View style={{height: 16}} />
               <SearchMenuItem isActive={isAtSearch} onPress={onPressSearch} />
               <HomeMenuItem isActive={isAtHome} onPress={onPressHome} />
               <NotificationsMenuItem
@@ -621,56 +618,6 @@ function MenuItem({
   )
 }
 
-let InviteCodes = ({}: {}): React.ReactNode => {
-  const {track} = useAnalytics()
-  const setDrawerOpen = useSetDrawerOpen()
-  const pal = usePalette('default')
-  const {data: invites} = useInviteCodesQuery()
-  const invitesAvailable = invites?.available?.length ?? 0
-  const {openModal} = useModalControls()
-  const {_} = useLingui()
-
-  const onPress = React.useCallback(() => {
-    track('Menu:ItemClicked', {url: '#invite-codes'})
-    setDrawerOpen(false)
-    openModal({name: 'invite-codes'})
-  }, [openModal, track, setDrawerOpen])
-
-  return (
-    <TouchableOpacity
-      testID="menuItemInviteCodes"
-      style={styles.inviteCodes}
-      onPress={onPress}
-      accessibilityRole="button"
-      accessibilityLabel={_(msg`Invite codes: ${invitesAvailable} available`)}
-      accessibilityHint={_(msg`Opens list of invite codes`)}
-      disabled={invites?.disabled}>
-      <FontAwesomeIcon
-        icon="ticket"
-        style={[
-          styles.inviteCodesIcon,
-          invitesAvailable > 0 ? pal.link : pal.textLight,
-        ]}
-        size={18}
-      />
-      <Text
-        type="lg-medium"
-        style={invitesAvailable > 0 ? pal.link : pal.textLight}>
-        {invites?.disabled ? (
-          <Trans>
-            Your invite codes are hidden when logged in using an App Password
-          </Trans>
-        ) : invitesAvailable === 1 ? (
-          <Trans>{invitesAvailable} invite code available</Trans>
-        ) : (
-          <Trans>{invitesAvailable} invite codes available</Trans>
-        )}
-      </Text>
-    </TouchableOpacity>
-  )
-}
-InviteCodes = React.memo(InviteCodes)
-
 const styles = StyleSheet.create({
   view: {
     flex: 1,
diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx
index d955832aa..264fef194 100644
--- a/src/view/shell/desktop/RightNav.tsx
+++ b/src/view/shell/desktop/RightNav.tsx
@@ -1,6 +1,5 @@
 import React from 'react'
-import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
+import {StyleSheet, View} from 'react-native'
 import {usePalette} from 'lib/hooks/usePalette'
 import {DesktopSearch} from './Search'
 import {DesktopFeeds} from './Feeds'
@@ -9,12 +8,9 @@ import {TextLink} from 'view/com/util/Link'
 import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants'
 import {s} from 'lib/styles'
 import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
-import {formatCount} from 'view/com/util/numeric/format'
-import {useModalControls} from '#/state/modals'
 import {useLingui} from '@lingui/react'
-import {Plural, Trans, msg, plural} from '@lingui/macro'
+import {Trans, msg} from '@lingui/macro'
 import {useSession} from '#/state/session'
-import {useInviteCodesQuery} from '#/state/queries/invites'
 
 export function DesktopRightNav({routeName}: {routeName: string}) {
   const pal = usePalette('default')
@@ -103,78 +99,11 @@ export function DesktopRightNav({routeName}: {routeName: string}) {
             />
           </View>
         </View>
-
-        {hasSession && <InviteCodes />}
       </View>
     </View>
   )
 }
 
-function InviteCodes() {
-  const pal = usePalette('default')
-  const {openModal} = useModalControls()
-  const {data: invites} = useInviteCodesQuery()
-  const invitesAvailable = invites?.available?.length ?? 0
-  const {_} = useLingui()
-
-  const onPress = React.useCallback(() => {
-    openModal({name: 'invite-codes'})
-  }, [openModal])
-
-  if (!invites) {
-    return null
-  }
-
-  if (invites?.disabled) {
-    return (
-      <View style={[styles.inviteCodes, pal.border]}>
-        <FontAwesomeIcon
-          icon="ticket"
-          style={[styles.inviteCodesIcon, pal.textLight]}
-          size={16}
-        />
-        <Text type="md-medium" style={pal.textLight}>
-          <Trans>
-            Your invite codes are hidden when logged in using an App Password
-          </Trans>
-        </Text>
-      </View>
-    )
-  }
-
-  return (
-    <TouchableOpacity
-      style={[styles.inviteCodes, pal.border]}
-      onPress={onPress}
-      accessibilityRole="button"
-      accessibilityLabel={_(
-        plural(invitesAvailable, {
-          one: 'Invite codes: # available',
-          other: 'Invite codes: # available',
-        }),
-      )}
-      accessibilityHint={_(msg`Opens list of invite codes`)}>
-      <FontAwesomeIcon
-        icon="ticket"
-        style={[
-          styles.inviteCodesIcon,
-          invitesAvailable > 0 ? pal.link : pal.textLight,
-        ]}
-        size={16}
-      />
-      <Text
-        type="md-medium"
-        style={invitesAvailable > 0 ? pal.link : pal.textLight}>
-        <Plural
-          value={formatCount(invitesAvailable)}
-          one="# invite code available"
-          other="# invite codes available"
-        />
-      </Text>
-    </TouchableOpacity>
-  )
-}
-
 const styles = StyleSheet.create({
   rightNav: {
     // @ts-ignore web only
@@ -193,18 +122,6 @@ const styles = StyleSheet.create({
   messageLine: {
     marginBottom: 10,
   },
-
-  inviteCodes: {
-    borderTopWidth: 1,
-    paddingHorizontal: 12,
-    paddingVertical: 12,
-    flexDirection: 'row',
-  },
-  inviteCodesIcon: {
-    marginTop: 2,
-    marginRight: 6,
-    flexShrink: 0,
-  },
   desktopFeedsContainer: {
     borderTopWidth: 1,
     borderBottomWidth: 1,