import Dropdown from 'react-bootstrap/Dropdown'
import ShareIcon from '../svgs/share-fill.svg'
import copy from 'clipboard-copy'
import { useMe } from './me'
import { useToast } from './toast'
import { SSR } from '../lib/constants'
const getShareUrl = (item, me) => {
const path = `/items/${item?.id}${me ? `/r/${me.name}` : ''}`
if (!SSR) {
return `${window.location.protocol}//${window.location.host}${path}`
}
return `https://stacker.news${path}`
}
export default function Share ({ item }) {
const me = useMe()
const toaster = useToast()
const url = getShareUrl(item, me)
return !SSR && navigator?.share
? (
{
try {
await navigator.share({
title: item.title || '',
text: '',
url
})
toaster.success('link shared')
} catch (err) {
console.error(err)
}
}}
/>
)
: (
{
try {
await copy(url)
toaster.success('link copied')
} catch (err) {
console.error(err)
toaster.danger('failed to copy link')
}
}}
>
copy link
)
}
export function CopyLinkDropdownItem ({ item }) {
const me = useMe()
const toaster = useToast()
const url = getShareUrl(item, me)
return (
{
try {
if (navigator.share) {
await navigator.share({
title: item.title || '',
text: '',
url
})
} else {
await copy(url)
}
toaster.success('link copied')
} catch (err) {
console.error(err)
toaster.danger('failed to copy link')
}
}}
>
copy link
)
}