💨
This commit is contained in:
parent
ed8a22d5bc
commit
942c9a7d12
3 changed files with 21 additions and 19 deletions
|
|
@ -30,6 +30,11 @@
|
||||||
/>
|
/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<noscript
|
||||||
|
>You need to enable JavaScript to run this app. If you're looking for something on the nostr
|
||||||
|
network, try replacing everything before the last slash in your URL bar with njump.me or
|
||||||
|
nostr.at for a view-only nostr interface.</noscript
|
||||||
|
>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
<script type="module" src="/src/main.tsx"></script>
|
<script type="module" src="/src/main.tsx"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import RelayIcon from '../RelayIcon'
|
||||||
|
|
||||||
type TPostTargetItem =
|
type TPostTargetItem =
|
||||||
| {
|
| {
|
||||||
type: 'writeRelays'
|
type: 'optimalRelays'
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
type: 'relay'
|
type: 'relay'
|
||||||
|
|
@ -67,7 +67,7 @@ export default function PostRelaySelector({
|
||||||
}
|
}
|
||||||
if (postTargetItems.length === 1) {
|
if (postTargetItems.length === 1) {
|
||||||
const item = postTargetItems[0]
|
const item = postTargetItems[0]
|
||||||
if (item.type === 'writeRelays') {
|
if (item.type === 'optimalRelays') {
|
||||||
return t('Optimal relays')
|
return t('Optimal relays')
|
||||||
}
|
}
|
||||||
if (item.type === 'relay') {
|
if (item.type === 'relay') {
|
||||||
|
|
@ -79,7 +79,7 @@ export default function PostRelaySelector({
|
||||||
: simplifyUrl(item.urls[0])
|
: simplifyUrl(item.urls[0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const hasWriteRelays = postTargetItems.some((item) => item.type === 'writeRelays')
|
const hasOptimalRelays = postTargetItems.some((item) => item.type === 'optimalRelays')
|
||||||
const relayCount = postTargetItems.reduce((count, item) => {
|
const relayCount = postTargetItems.reduce((count, item) => {
|
||||||
if (item.type === 'relay') {
|
if (item.type === 'relay') {
|
||||||
return count + 1
|
return count + 1
|
||||||
|
|
@ -89,7 +89,7 @@ export default function PostRelaySelector({
|
||||||
}
|
}
|
||||||
return count
|
return count
|
||||||
}, 0)
|
}, 0)
|
||||||
if (hasWriteRelays) {
|
if (hasOptimalRelays) {
|
||||||
return t('Optimal relays and {{count}} other relays', { count: relayCount })
|
return t('Optimal relays and {{count}} other relays', { count: relayCount })
|
||||||
}
|
}
|
||||||
return t('{{count}} relays', { count: relayCount })
|
return t('{{count}} relays', { count: relayCount })
|
||||||
|
|
@ -104,11 +104,11 @@ export default function PostRelaySelector({
|
||||||
setPostTargetItems(parentEventSeenOnRelays.map((url) => ({ type: 'relay', url })))
|
setPostTargetItems(parentEventSeenOnRelays.map((url) => ({ type: 'relay', url })))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setPostTargetItems([{ type: 'writeRelays' }])
|
setPostTargetItems([{ type: 'optimalRelays' }])
|
||||||
}, [openFrom, parentEventSeenOnRelays])
|
}, [openFrom, parentEventSeenOnRelays])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const isProtectedEvent = postTargetItems.every((item) => item.type !== 'writeRelays')
|
const isProtectedEvent = postTargetItems.every((item) => item.type !== 'optimalRelays')
|
||||||
const relayUrls = postTargetItems.flatMap((item) => {
|
const relayUrls = postTargetItems.flatMap((item) => {
|
||||||
if (item.type === 'relay') {
|
if (item.type === 'relay') {
|
||||||
return [item.url]
|
return [item.url]
|
||||||
|
|
@ -123,11 +123,11 @@ export default function PostRelaySelector({
|
||||||
setAdditionalRelayUrls(relayUrls)
|
setAdditionalRelayUrls(relayUrls)
|
||||||
}, [postTargetItems])
|
}, [postTargetItems])
|
||||||
|
|
||||||
const handleWriteRelaysCheckedChange = useCallback((checked: boolean) => {
|
const handleOptimalRelaysCheckedChange = useCallback((checked: boolean) => {
|
||||||
if (checked) {
|
if (checked) {
|
||||||
setPostTargetItems((prev) => [...prev, { type: 'writeRelays' }])
|
setPostTargetItems((prev) => [...prev, { type: 'optimalRelays' }])
|
||||||
} else {
|
} else {
|
||||||
setPostTargetItems((prev) => prev.filter((item) => item.type !== 'writeRelays'))
|
setPostTargetItems((prev) => prev.filter((item) => item.type !== 'optimalRelays'))
|
||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
|
@ -158,10 +158,10 @@ export default function PostRelaySelector({
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
checked={postTargetItems.some((item) => item.type === 'writeRelays')}
|
checked={postTargetItems.some((item) => item.type === 'optimalRelays')}
|
||||||
onCheckedChange={handleWriteRelaysCheckedChange}
|
onCheckedChange={handleOptimalRelaysCheckedChange}
|
||||||
>
|
>
|
||||||
{t('Write relays')}
|
{t('Optimal relays')}
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
{relaySets.length > 0 && (
|
{relaySets.length > 0 && (
|
||||||
<>
|
<>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
import { Skeleton } from '@/components/ui/skeleton'
|
import { Skeleton } from '@/components/ui/skeleton'
|
||||||
import { IS_COMMUNITY_MODE } from '@/constants'
|
import { IS_COMMUNITY_MODE } from '@/constants'
|
||||||
|
import { createFakeEvent } from '@/lib/event'
|
||||||
import { cn } from '@/lib/utils'
|
import { cn } from '@/lib/utils'
|
||||||
import { TRelayInfo } from '@/types'
|
import { TRelayInfo } from '@/types'
|
||||||
import { HTMLProps } from 'react'
|
import { HTMLProps } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
|
import ContentPreview from '../ContentPreview'
|
||||||
import RelayIcon from '../RelayIcon'
|
import RelayIcon from '../RelayIcon'
|
||||||
import SaveRelayDropdownMenu from '../SaveRelayDropdownMenu'
|
import SaveRelayDropdownMenu from '../SaveRelayDropdownMenu'
|
||||||
import { SimpleUserAvatar } from '../UserAvatar'
|
import { SimpleUserAvatar } from '../UserAvatar'
|
||||||
|
|
@ -34,13 +36,8 @@ export default function RelaySimpleInfo({
|
||||||
{relayInfo && !IS_COMMUNITY_MODE && <SaveRelayDropdownMenu urls={[relayInfo.url]} />}
|
{relayInfo && !IS_COMMUNITY_MODE && <SaveRelayDropdownMenu urls={[relayInfo.url]} />}
|
||||||
</div>
|
</div>
|
||||||
{!!relayInfo?.description && (
|
{!!relayInfo?.description && (
|
||||||
<div
|
<div className="line-clamp-3 whitespace-pre-wrap break-words">
|
||||||
className="line-clamp-3 whitespace-pre-wrap break-words"
|
<ContentPreview event={createFakeEvent({ content: relayInfo.description })} />
|
||||||
style={{
|
|
||||||
overflowWrap: 'anywhere'
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{relayInfo.description}
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{!!users?.length && (
|
{!!users?.length && (
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue