forked from Kieran/snort
webrtc works in dev, add some missing list keys
This commit is contained in:
parent
e10a11b707
commit
1639937d8c
@ -25,7 +25,7 @@ export function TrendingHashTagsLine(props: { onClick: (tag: string) => void })
|
|||||||
</small>
|
</small>
|
||||||
<div className="flex g4 flex-wrap">
|
<div className="flex g4 flex-wrap">
|
||||||
{hashtags.slice(0, 5).map(a => (
|
{hashtags.slice(0, 5).map(a => (
|
||||||
<span className="px-2 py-1 bg-dark rounded-full pointer nowrap" onClick={() => props.onClick(a.hashtag)}>
|
<span key={a.hashtag} className="px-2 py-1 bg-dark rounded-full pointer nowrap" onClick={() => props.onClick(a.hashtag)}>
|
||||||
#{a.hashtag}
|
#{a.hashtag}
|
||||||
</span>
|
</span>
|
||||||
))}
|
))}
|
||||||
|
@ -10,6 +10,7 @@ export async function sendEventToRelays(
|
|||||||
) {
|
) {
|
||||||
getWebRtcPool()?.send(ev);
|
getWebRtcPool()?.send(ev);
|
||||||
if (customRelays) {
|
if (customRelays) {
|
||||||
|
system.HandleEvent({...ev, relays: []});
|
||||||
return removeUndefined(
|
return removeUndefined(
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
customRelays.map(async r => {
|
customRelays.map(async r => {
|
||||||
|
@ -91,8 +91,8 @@ export function TimelineRenderer(props: TimelineRendererProps) {
|
|||||||
}, [inView, props.latest]);
|
}, [inView, props.latest]);
|
||||||
|
|
||||||
const renderNotes = () => {
|
const renderNotes = () => {
|
||||||
return props.frags.map(frag => (
|
return props.frags.map((frag, index) => (
|
||||||
<ErrorBoundary>
|
<ErrorBoundary key={frag.events[0]?.id + index}>
|
||||||
<TimelineFragment
|
<TimelineFragment
|
||||||
frag={frag}
|
frag={frag}
|
||||||
related={props.related}
|
related={props.related}
|
||||||
|
@ -120,12 +120,12 @@ export default function Text({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{fragments.map(f => {
|
{fragments.map((f, index) => {
|
||||||
if (typeof f === "string") {
|
if (typeof f === "string") {
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
return <HighlightedText content={f.content} />;
|
return <HighlightedText key={index} content={f.content} />;
|
||||||
})}
|
})}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -62,7 +62,7 @@ export default function TrendingNotes({ count = Infinity, small = false }) {
|
|||||||
return (
|
return (
|
||||||
<div className="grid grid-cols-3 gap-px md:gap-1">
|
<div className="grid grid-cols-3 gap-px md:gap-1">
|
||||||
{filteredAndLimitedPosts().map(e => (
|
{filteredAndLimitedPosts().map(e => (
|
||||||
<ImageGridItem event={e as TaggedNostrEvent} onClick={() => setModalThread(NostrLink.fromEvent(e))} />
|
<ImageGridItem key={e.id} event={e as TaggedNostrEvent} onClick={() => setModalThread(NostrLink.fromEvent(e))} />
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -71,9 +71,9 @@ export default function TrendingNotes({ count = Infinity, small = false }) {
|
|||||||
const renderList = () => {
|
const renderList = () => {
|
||||||
return filteredAndLimitedPosts().map(e =>
|
return filteredAndLimitedPosts().map(e =>
|
||||||
small ? (
|
small ? (
|
||||||
<ShortNote event={e as TaggedNostrEvent} />
|
<ShortNote key={e.id} event={e as TaggedNostrEvent} />
|
||||||
) : (
|
) : (
|
||||||
<Note data={e as TaggedNostrEvent} related={related?.data ?? []} depth={0} options={options} />
|
<Note key={e.id} data={e as TaggedNostrEvent} related={related?.data ?? []} depth={0} options={options} />
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -49,8 +49,8 @@ const Footer = () => {
|
|||||||
return (
|
return (
|
||||||
<footer className="md:hidden fixed bottom-0 z-10 w-full bg-base-200 pb-safe-area bg-bg-color">
|
<footer className="md:hidden fixed bottom-0 z-10 w-full bg-base-200 pb-safe-area bg-bg-color">
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
{MENU_ITEMS.map(item => (
|
{MENU_ITEMS.map((item, index) => (
|
||||||
<FooterNavItem item={item} readonly={readonly} />
|
<FooterNavItem key={index} item={item} readonly={readonly} />
|
||||||
))}
|
))}
|
||||||
{publicKey && (
|
{publicKey && (
|
||||||
<ProfileLink
|
<ProfileLink
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import "./TaskList.css";
|
import "./TaskList.css";
|
||||||
import { useSyncExternalStore } from "react";
|
import {Fragment, useSyncExternalStore} from "react";
|
||||||
import { useUserProfile } from "@snort/system-react";
|
import { useUserProfile } from "@snort/system-react";
|
||||||
|
|
||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
@ -54,7 +54,11 @@ export const TaskList = () => {
|
|||||||
.filter(a => (user ? a.check(user, session) : false))
|
.filter(a => (user ? a.check(user, session) : false))
|
||||||
.map(a => {
|
.map(a => {
|
||||||
if (a.noBaseStyle) {
|
if (a.noBaseStyle) {
|
||||||
return a.render();
|
return (
|
||||||
|
<Fragment key={a.id}>
|
||||||
|
{a.render()}
|
||||||
|
</Fragment>
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<div key={a.id} className="card">
|
<div key={a.id} className="card">
|
||||||
|
@ -192,7 +192,7 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
|
|||||||
}
|
}
|
||||||
|
|
||||||
#onEvent(sub: string, ev: TaggedNostrEvent) {
|
#onEvent(sub: string, ev: TaggedNostrEvent) {
|
||||||
this.#relayMetrics.onEvent(ev.relays[0]);
|
ev.relays?.length && this.#relayMetrics.onEvent(ev.relays[0]);
|
||||||
|
|
||||||
if (!EventExt.isValid(ev)) {
|
if (!EventExt.isValid(ev)) {
|
||||||
this.#log("Rejecting invalid event %O", ev);
|
this.#log("Rejecting invalid event %O", ev);
|
||||||
|
Loading…
Reference in New Issue
Block a user