···88import {makeProfileLink} from '#/lib/routes/links'
99import {type NavigationProp} from '#/lib/routes/types'
1010import {shareText, shareUrl} from '#/lib/sharing'
1111-import {toShareUrl} from '#/lib/strings/url-helpers'
1111+import {toShareUrl, toShareUrlBsky} from '#/lib/strings/url-helpers'
1212import {logger} from '#/logger'
1313import {isWeb} from '#/platform/detection'
1414import {useAgeAssurance} from '#/state/ageAssurance/useAgeAssurance'
···6363 onShareProp()
6464 }
65656666+ const onCopyLinkBsky = () => {
6767+ logger.metric('share:press:copyLink', {}, {statsig: true})
6868+ const url = toShareUrlBsky(href)
6969+ shareUrl(url)
7070+ onShareProp()
7171+ }
7272+6673 const onSelectChatToShareTo = (conversation: string) => {
6774 logger.metric('share:press:dmSelected', {}, {statsig: true})
6875 navigation.navigate('MessagesConversation', {
···8289 }
83908491 const copyLinkItem = (
8585- <Menu.Item
8686- testID="postDropdownShareBtn"
8787- label={_(msg`Copy link to post`)}
8888- onPress={onCopyLink}>
8989- <Menu.ItemText>
9090- <Trans>Copy link to post</Trans>
9191- </Menu.ItemText>
9292- <Menu.ItemIcon icon={ChainLinkIcon} position="right" />
9393- </Menu.Item>
9292+ <Menu.Group>
9393+ <Menu.Item
9494+ testID="postDropdownShareBtn"
9595+ label={_(msg`Copy link to post`)}
9696+ onPress={onCopyLink}>
9797+ <Menu.ItemText>
9898+ <Trans>Copy link to post</Trans>
9999+ </Menu.ItemText>
100100+ <Menu.ItemIcon icon={ChainLinkIcon} position="right" />
101101+ </Menu.Item>
102102+ <Menu.Item
103103+ testID="postDropdownShareBtn"
104104+ label={_(msg`Copy link to post`)}
105105+ onPress={onCopyLinkBsky}>
106106+ <Menu.ItemText>
107107+ <Trans>Copy via bsky.app</Trans>
108108+ </Menu.ItemText>
109109+ <Menu.ItemIcon icon={ChainLinkIcon} position="right" />
110110+ </Menu.Item>
111111+ </Menu.Group>
94112 )
9511396114 return (
+10
src/lib/strings/url-helpers.ts
···8888 return url
8989}
90909191+// separate one for bluesky, im fully aware i could just have it in one function but im more worried about code conflicts from this
9292+export function toShareUrlBsky(url: string): string {
9393+ if (!url.startsWith('https')) {
9494+ const urlp = new URL('https://bsky.app')
9595+ urlp.pathname = url
9696+ url = urlp.toString()
9797+ }
9898+ return url
9999+}
100100+91101export function toBskyAppUrl(url: string): string {
92102 return new URL(url, BSKY_APP_HOST).toString()
93103}