diff options
Diffstat (limited to 'src/view/com/util/Link.tsx')
-rw-r--r-- | src/view/com/util/Link.tsx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/view/com/util/Link.tsx b/src/view/com/util/Link.tsx new file mode 100644 index 000000000..dcb8710f6 --- /dev/null +++ b/src/view/com/util/Link.tsx @@ -0,0 +1,28 @@ +import React from 'react' +import {observer} from 'mobx-react-lite' +import {StyleProp, Text, TouchableOpacity, ViewStyle} from 'react-native' +import {useStores} from '../../../state' +import {LinkActionsModel} from '../../../state/models/shell' + +export const Link = observer(function Link({ + style, + href, + title, + children, +}: { + style?: StyleProp<ViewStyle> + href: string + title?: string + children?: React.ReactNode +}) { + const store = useStores() + const onPress = () => store.nav.navigate(href) + const onLongPress = () => { + store.shell.openModal(new LinkActionsModel(href, title || href)) + } + return ( + <TouchableOpacity style={style} onPress={onPress} onLongPress={onLongPress}> + {children ? children : <Text>{title || 'link'}</Text>} + </TouchableOpacity> + ) +}) |