move chat files to same dir, webrtc, chat

This commit is contained in:
Martti Malmi 2023-12-21 22:43:11 +02:00
parent 1639937d8c
commit 87d3bbe1a1
12 changed files with 26 additions and 20 deletions

View File

@ -25,7 +25,10 @@ export function TrendingHashTagsLine(props: { onClick: (tag: string) => void })
</small>
<div className="flex g4 flex-wrap">
{hashtags.slice(0, 5).map(a => (
<span key={a.hashtag} 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}
</span>
))}

View File

@ -10,7 +10,7 @@ export async function sendEventToRelays(
) {
getWebRtcPool()?.send(ev);
if (customRelays) {
system.HandleEvent({...ev, relays: []});
system.HandleEvent({ ...ev, relays: [] });
return removeUndefined(
await Promise.all(
customRelays.map(async r => {

View File

@ -62,7 +62,11 @@ export default function TrendingNotes({ count = Infinity, small = false }) {
return (
<div className="grid grid-cols-3 gap-px md:gap-1">
{filteredAndLimitedPosts().map(e => (
<ImageGridItem key={e.id} event={e as TaggedNostrEvent} onClick={() => setModalThread(NostrLink.fromEvent(e))} />
<ImageGridItem
key={e.id}
event={e as TaggedNostrEvent}
onClick={() => setModalThread(NostrLink.fromEvent(e))}
/>
))}
</div>
);

View File

@ -1,8 +1,8 @@
import { MetadataCache } from "@snort/system";
import { ChatParticipant } from "@/chat";
import NoteToSelf from "../User/NoteToSelf";
import ProfileImage from "../User/ProfileImage";
import NoteToSelf from "../../Element/User/NoteToSelf";
import ProfileImage from "../../Element/User/ProfileImage";
import useLogin from "@/Hooks/useLogin";
export function ChatParticipantProfile({ participant }: { participant: ChatParticipant }) {

View File

@ -9,9 +9,9 @@ import NoteTime from "@/Element/Event/NoteTime";
import Text from "@/Element/Text";
import useLogin from "@/Hooks/useLogin";
import { Chat, ChatMessage, ChatType, setLastReadIn } from "@/chat";
import ProfileImage from "../User/ProfileImage";
import ProfileImage from "../../Element/User/ProfileImage";
import messages from "../messages";
import messages from "../../Element/messages";
export interface DMProps {
chat: Chat;

View File

@ -1,8 +1,8 @@
import { useEffect, useMemo, useRef } from "react";
import ProfileImage from "@/Element/User/ProfileImage";
import DM from "@/Element/Chat/DM";
import DM from "@/Pages/Messages/DM";
import useLogin from "@/Hooks/useLogin";
import WriteMessage from "@/Element/Chat/WriteMessage";
import WriteMessage from "@/Pages/Messages/WriteMessage";
import { Chat, createEmptyChatObject, useChatSystem } from "@/chat";
import { FormattedMessage } from "react-intl";
import { ChatParticipantProfile } from "./ChatParticipant";

View File

@ -9,9 +9,9 @@ import NoteToSelf from "@/Element/User/NoteToSelf";
import useLogin from "@/Hooks/useLogin";
import usePageWidth from "@/Hooks/usePageWidth";
import NoteTime from "@/Element/Event/NoteTime";
import DmWindow from "@/Element/Chat/DmWindow";
import DmWindow from "@/Pages/Messages/DmWindow";
import { Chat, ChatType, useChatSystem } from "@/chat";
import { ChatParticipantProfile } from "@/Element/Chat/ChatParticipant";
import { ChatParticipantProfile } from "@/Pages/Messages/ChatParticipant";
import classNames from "classnames";
import NewChatWindow from "@/Pages/Messages/NewChatWindow";

View File

@ -1,6 +1,6 @@
import { useState } from "react";
import useEventPublisher from "@/Hooks/useEventPublisher";
import Textarea from "../Textarea";
import Textarea from "../../Element/Textarea";
import { Chat } from "@/chat";
import { AsyncIcon } from "@/Element/Button/AsyncIcon";

View File

@ -1,5 +1,5 @@
import "./TaskList.css";
import {Fragment, useSyncExternalStore} from "react";
import { Fragment, useSyncExternalStore } from "react";
import { useUserProfile } from "@snort/system-react";
import useLogin from "@/Hooks/useLogin";
@ -54,11 +54,7 @@ export const TaskList = () => {
.filter(a => (user ? a.check(user, session) : false))
.map(a => {
if (a.noBaseStyle) {
return (
<Fragment key={a.id}>
{a.render()}
</Fragment>
);
return <Fragment key={a.id}>{a.render()}</Fragment>;
} else {
return (
<div key={a.id} className="card">

View File

@ -89,7 +89,10 @@ export class Nip29ChatSystem extends ExternalStore<Array<Chat>> implements ChatS
];
},
sendMessage: async (ev, system: SystemInterface) => {
ev.forEach(async a => await system.WriteOnceToRelay(`wss://${relay}`, a));
ev.forEach(async a => {
system.HandleEvent({ ...a, relays: [] });
await system.WriteOnceToRelay(`wss://${relay}`, a);
});
},
} as Chat;
});

View File

@ -62,7 +62,7 @@ export class WebRTCConnection extends EventEmitter {
} else {
try {
const data = JSON.parse(event.data);
this.emit("event", data);
this.emit("event", { ...data, relays: [`webrtc:${this.peerId}`] });
} catch (e) {
// Ignore
}