diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-07-07 12:00:17 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-07 12:00:17 -0500 |
commit | 237e957d1699fb4da756e9acc98c527f282e90b0 (patch) | |
tree | e1bcfceccbb0747b3e234407c9a3612d010ccaaa /src/view/com/util/UserPreviewLink.tsx | |
parent | d8aded7b15ba6a59750ec877fae63fa2a64afe4c (diff) | |
download | voidsky-237e957d1699fb4da756e9acc98c527f282e90b0.tar.zst |
Fixes and improvements to the Profile Preview modal (#992)
* Fix: use more reliable navigation method * Fix: show lightbox over the active modal * Fix: close the profile preview on navigation * Factor out UserPreviewLink and add preview behavior to notifications * Fix postmeta overflow on web * Fix lint
Diffstat (limited to 'src/view/com/util/UserPreviewLink.tsx')
-rw-r--r-- | src/view/com/util/UserPreviewLink.tsx | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/view/com/util/UserPreviewLink.tsx b/src/view/com/util/UserPreviewLink.tsx new file mode 100644 index 000000000..ae49301fd --- /dev/null +++ b/src/view/com/util/UserPreviewLink.tsx @@ -0,0 +1,43 @@ +import React from 'react' +import {Pressable, StyleProp, ViewStyle} from 'react-native' +import {useStores} from 'state/index' +import {Link} from './Link' +import {isDesktopWeb} from 'platform/detection' + +interface UserPreviewLinkProps { + did: string + handle: string + style?: StyleProp<ViewStyle> +} +export function UserPreviewLink( + props: React.PropsWithChildren<UserPreviewLinkProps>, +) { + const store = useStores() + + if (isDesktopWeb) { + return ( + <Link + href={`/profile/${props.handle}`} + title={props.handle} + asAnchor + style={props.style}> + {props.children} + </Link> + ) + } + return ( + <Pressable + onPress={() => + store.shell.openModal({ + name: 'profile-preview', + did: props.did, + }) + } + accessibilityRole="button" + accessibilityLabel={props.handle} + accessibilityHint="" + style={props.style}> + {props.children} + </Pressable> + ) +} |