chore: Update translations
This commit is contained in:
@ -175,15 +175,15 @@ export function ChatMessage({
|
|||||||
style={
|
style={
|
||||||
isTablet
|
isTablet
|
||||||
? {
|
? {
|
||||||
display: showZapDialog || isHovering ? "flex" : "none",
|
display: showZapDialog || isHovering ? "flex" : "none",
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
position: "fixed",
|
position: "fixed",
|
||||||
top: topOffset ? topOffset - 12 : 0,
|
top: topOffset ? topOffset - 12 : 0,
|
||||||
left: leftOffset ? leftOffset - 32 : 0,
|
left: leftOffset ? leftOffset - 32 : 0,
|
||||||
opacity: showZapDialog || isHovering ? 1 : 0,
|
opacity: showZapDialog || isHovering ? 1 : 0,
|
||||||
pointerEvents: showZapDialog || isHovering ? "auto" : "none",
|
pointerEvents: showZapDialog || isHovering ? "auto" : "none",
|
||||||
}
|
}
|
||||||
}>
|
}>
|
||||||
{zapTarget && (
|
{zapTarget && (
|
||||||
<SendZapsDialog
|
<SendZapsDialog
|
||||||
|
@ -30,7 +30,9 @@ export function Goal({ ev }: { ev: NostrEvent }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const soFar = useMemo(() => {
|
const soFar = useMemo(() => {
|
||||||
return zaps.filter(z => z.receiver === ev.pubkey && z.targetEvents.some(a => a.matchesEvent(ev))).reduce((acc, z) => acc + z.amount, 0);
|
return zaps
|
||||||
|
.filter(z => z.receiver === ev.pubkey && z.targetEvents.some(a => a.matchesEvent(ev)))
|
||||||
|
.reduce((acc, z) => acc + z.amount, 0);
|
||||||
}, [zaps]);
|
}, [zaps]);
|
||||||
|
|
||||||
const progress = Math.max(0, Math.min(100, (soFar / goalAmount) * 100));
|
const progress = Math.max(0, Math.min(100, (soFar / goalAmount) * 100));
|
||||||
|
@ -81,7 +81,9 @@ export function LiveChat({
|
|||||||
|
|
||||||
const reactions = useEventReactions(link, feed.reactions);
|
const reactions = useEventReactions(link, feed.reactions);
|
||||||
const events = useMemo(() => {
|
const events = useMemo(() => {
|
||||||
return [...feed.messages, ...feed.reactions, ...awards].filter(a => a.created_at > started).sort((a, b) => b.created_at - a.created_at);
|
return [...feed.messages, ...feed.reactions, ...awards]
|
||||||
|
.filter(a => a.created_at > started)
|
||||||
|
.sort((a, b) => b.created_at - a.created_at);
|
||||||
}, [feed.messages, feed.reactions, awards]);
|
}, [feed.messages, feed.reactions, awards]);
|
||||||
|
|
||||||
const filteredEvents = useMemo(() => {
|
const filteredEvents = useMemo(() => {
|
||||||
|
@ -28,7 +28,5 @@ export function StreamTimer({ ev }: { ev?: NostrEvent }) {
|
|||||||
return () => clearInterval(t);
|
return () => clearInterval(t);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return <span className="tnum">
|
return <span className="tnum">{time}</span>;
|
||||||
{time}
|
|
||||||
</span>;
|
|
||||||
}
|
}
|
||||||
|
@ -50,9 +50,7 @@ export function Text({ content, tags, eventComponent }: TextProps) {
|
|||||||
// LUD-17: https://github.com/lnurl/luds/blob/luds/17.md
|
// LUD-17: https://github.com/lnurl/luds/blob/luds/17.md
|
||||||
const url = new URL(f.content);
|
const url = new URL(f.content);
|
||||||
url.protocol = "https:";
|
url.protocol = "https:";
|
||||||
return <SendZapsDialog pubkey={undefined} lnurl={url.toString()} button={<Link to={""}>
|
return <SendZapsDialog pubkey={undefined} lnurl={url.toString()} button={<Link to={""}>{f.content}</Link>} />;
|
||||||
{f.content}
|
|
||||||
</Link>} />
|
|
||||||
}
|
}
|
||||||
return <span className="text">{f.content}</span>;
|
return <span className="text">{f.content}</span>;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,11 @@ export function useLiveChatFeed(link: NostrLink, eZaps?: Array<string>) {
|
|||||||
return (feed.data ?? []).filter(ev => ev.kind === LIVE_STREAM_CHAT);
|
return (feed.data ?? []).filter(ev => ev.kind === LIVE_STREAM_CHAT);
|
||||||
}, [feed.data]);
|
}, [feed.data]);
|
||||||
|
|
||||||
const reactions = useReactions(`live:${link.id}:${link.author}:reactions`, messages.map(a => NostrLink.fromEvent(a)).concat(link), undefined, true);
|
const reactions = useReactions(
|
||||||
|
`live:${link.id}:${link.author}:reactions`,
|
||||||
|
messages.map(a => NostrLink.fromEvent(a)).concat(link),
|
||||||
|
undefined,
|
||||||
|
true
|
||||||
|
);
|
||||||
return { messages, reactions: reactions.data ?? [] };
|
return { messages, reactions: reactions.data ?? [] };
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,11 @@ export function ProfilePage() {
|
|||||||
return (
|
return (
|
||||||
<div className="profile-page">
|
<div className="profile-page">
|
||||||
<div className="profile-container">
|
<div className="profile-container">
|
||||||
<img className="banner" alt={profile?.name || link.id} src={profile?.banner ? profile?.banner : defaultBanner} />
|
<img
|
||||||
|
className="banner"
|
||||||
|
alt={profile?.name || link.id}
|
||||||
|
src={profile?.banner ? profile?.banner : defaultBanner}
|
||||||
|
/>
|
||||||
<div className="profile-content">
|
<div className="profile-content">
|
||||||
{profile?.picture ? (
|
{profile?.picture ? (
|
||||||
<img className="avatar" alt={profile.name || link.id} src={profile.picture} />
|
<img className="avatar" alt={profile.name || link.id} src={profile.picture} />
|
||||||
|
@ -82,7 +82,7 @@ function ProfileInfo({ ev, goal }: { ev?: NostrEvent; goal?: TaggedNostrEvent })
|
|||||||
<div className="profile-info">
|
<div className="profile-info">
|
||||||
<Profile pubkey={host ?? ""} />
|
<Profile pubkey={host ?? ""} />
|
||||||
<div className="flex g12">
|
<div className="flex g12">
|
||||||
<div className="hide-on-mobile" >
|
<div className="hide-on-mobile">
|
||||||
<FollowButton pubkey={host} />
|
<FollowButton pubkey={host} />
|
||||||
</div>
|
</div>
|
||||||
{ev && (
|
{ev && (
|
||||||
|
@ -77,7 +77,7 @@ function ZapAlertConfiguration({ npub, baseUrl }: ZapAlertConfigurationProps) {
|
|||||||
errors: [],
|
errors: [],
|
||||||
sender: login?.pubkey,
|
sender: login?.pubkey,
|
||||||
amount: 1_000_000,
|
amount: 1_000_000,
|
||||||
targetEvents: []
|
targetEvents: [],
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<div className="text-to-speech-settings">
|
<div className="text-to-speech-settings">
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap Alert"
|
"defaultMessage": "Zap Alert"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Зап Тревога"
|
"defaultMessage": "Зап Тревога"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "জ্যাপ অ্যালার্ট"
|
"defaultMessage": "জ্যাপ অ্যালার্ট"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap-alarm"
|
"defaultMessage": "Zap-alarm"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap Alert"
|
"defaultMessage": "Zap Alert"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Alerta de Zap"
|
"defaultMessage": "Alerta de Zap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "هشدار زپ"
|
"defaultMessage": "هشدار زپ"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap-hälytys"
|
"defaultMessage": "Zap-hälytys"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Alerte Zap"
|
"defaultMessage": "Alerte Zap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap Riadó"
|
"defaultMessage": "Zap Riadó"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Allarme Zap"
|
"defaultMessage": "Allarme Zap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "ザップアラート"
|
"defaultMessage": "ザップアラート"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap Alert"
|
"defaultMessage": "Zap Alert"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Alerta Zap"
|
"defaultMessage": "Alerta Zap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Оповещение о запе"
|
"defaultMessage": "Оповещение о запе"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap Alert"
|
"defaultMessage": "Zap Alert"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Tahadhari ya Zap"
|
"defaultMessage": "Tahadhari ya Zap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "Zap Alert"
|
"defaultMessage": "Zap Alert"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "打闪提示"
|
"defaultMessage": "打闪提示"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,4 +418,3 @@
|
|||||||
"defaultMessage": "打閃提示"
|
"defaultMessage": "打閃提示"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user