Make posts behave more like links (#1316)

* use cursor for post cards

* ignore type error

* handle meta keys on non native links

(cherry picked from commit daccafea0b7ab21af6572767e496d20f32ead353)

* remove cursor on non-post notifications, not quite right

* Simplify link handling

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
This commit is contained in:
Eric Bailey 2023-08-28 20:41:28 -05:00 committed by GitHub
parent cc2838761b
commit 1c460c40f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 5 deletions

View file

@ -259,15 +259,21 @@ function onPressInner(
e?: Event,
) {
let shouldHandle = false
const isLeftClick =
// @ts-ignore Web only -prf
Platform.OS === 'web' && (e.button == null || e.button === 0)
// @ts-ignore Web only -prf
const isMiddleClick = Platform.OS === 'web' && e.button === 1
const isMetaKey =
// @ts-ignore Web only -prf
Platform.OS === 'web' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)
const newTab = isMetaKey || isMiddleClick
if (Platform.OS !== 'web' || !e) {
shouldHandle = e ? !e.defaultPrevented : true
} else if (
!e.defaultPrevented && // onPress prevented default
// @ts-ignore Web only -prf
!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys
// @ts-ignore Web only -prf
(e.button == null || e.button === 0) && // ignore everything but left clicks
(isLeftClick || isMiddleClick) && // ignore everything but left and middle clicks
// @ts-ignore Web only -prf
[undefined, null, '', 'self'].includes(e.currentTarget?.target) // let browser handle "target=_blank" etc.
) {
@ -277,7 +283,7 @@ function onPressInner(
if (shouldHandle) {
href = convertBskyAppUrlIfNeeded(href)
if (href.startsWith('http') || href.startsWith('mailto')) {
if (newTab || href.startsWith('http') || href.startsWith('mailto')) {
Linking.openURL(href)
} else {
store.shell.closeModal() // close any active modals