diff options
author | dan <dan.abramov@gmail.com> | 2023-09-08 01:36:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-07 17:36:08 -0700 |
commit | 8a93321fb1bd4991cbb3bd1c1f09ed2196182f93 (patch) | |
tree | 2cd7cbfa0eb98a808517c8485af3ec43c0a7ea2e /src/view/com/modals/InviteCodes.tsx | |
parent | 69209c988fc412a10a5028ca915f99b1d059f5ec (diff) | |
download | voidsky-8a93321fb1bd4991cbb3bd1c1f09ed2196182f93.tar.zst |
Give explicit names to MobX observer components (#1413)
* Consider observer(...) as components * Add display names to MobX observers * Temporarily suppress nested components * Suppress new false positives for react/prop-types
Diffstat (limited to 'src/view/com/modals/InviteCodes.tsx')
-rw-r--r-- | src/view/com/modals/InviteCodes.tsx | 90 |
1 files changed, 48 insertions, 42 deletions
diff --git a/src/view/com/modals/InviteCodes.tsx b/src/view/com/modals/InviteCodes.tsx index ba3cc382b..33ffc86a2 100644 --- a/src/view/com/modals/InviteCodes.tsx +++ b/src/view/com/modals/InviteCodes.tsx @@ -79,50 +79,56 @@ export function Component({}: {}) { ) } -const InviteCode = observer( - ({testID, code, used}: {testID: string; code: string; used?: boolean}) => { - const pal = usePalette('default') - const store = useStores() - const {invitesAvailable} = store.me +const InviteCode = observer(function InviteCodeImpl({ + testID, + code, + used, +}: { + testID: string + code: string + used?: boolean +}) { + const pal = usePalette('default') + const store = useStores() + const {invitesAvailable} = store.me - const onPress = React.useCallback(() => { - Clipboard.setString(code) - Toast.show('Copied to clipboard') - store.invitedUsers.setInviteCopied(code) - }, [store, code]) + const onPress = React.useCallback(() => { + Clipboard.setString(code) + Toast.show('Copied to clipboard') + store.invitedUsers.setInviteCopied(code) + }, [store, code]) - return ( - <TouchableOpacity - testID={testID} - style={[styles.inviteCode, pal.border]} - onPress={onPress} - accessibilityRole="button" - accessibilityLabel={ - invitesAvailable === 1 - ? 'Invite codes: 1 available' - : `Invite codes: ${invitesAvailable} available` - } - accessibilityHint="Opens list of invite codes"> - <Text - testID={`${testID}-code`} - type={used ? 'md' : 'md-bold'} - style={used ? [pal.textLight, styles.strikeThrough] : pal.text}> - {code} - </Text> - <View style={styles.flex1} /> - {!used && store.invitedUsers.isInviteCopied(code) && ( - <Text style={[pal.textLight, styles.codeCopied]}>Copied</Text> - )} - {!used && ( - <FontAwesomeIcon - icon={['far', 'clone']} - style={pal.text as FontAwesomeIconStyle} - /> - )} - </TouchableOpacity> - ) - }, -) + return ( + <TouchableOpacity + testID={testID} + style={[styles.inviteCode, pal.border]} + onPress={onPress} + accessibilityRole="button" + accessibilityLabel={ + invitesAvailable === 1 + ? 'Invite codes: 1 available' + : `Invite codes: ${invitesAvailable} available` + } + accessibilityHint="Opens list of invite codes"> + <Text + testID={`${testID}-code`} + type={used ? 'md' : 'md-bold'} + style={used ? [pal.textLight, styles.strikeThrough] : pal.text}> + {code} + </Text> + <View style={styles.flex1} /> + {!used && store.invitedUsers.isInviteCopied(code) && ( + <Text style={[pal.textLight, styles.codeCopied]}>Copied</Text> + )} + {!used && ( + <FontAwesomeIcon + icon={['far', 'clone']} + style={pal.text as FontAwesomeIconStyle} + /> + )} + </TouchableOpacity> + ) +}) const styles = StyleSheet.create({ container: { |