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> </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 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} #{a.hashtag}
</span> </span>
))} ))}

View File

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

View File

@ -62,7 +62,11 @@ 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 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> </div>
); );

View File

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

View File

@ -9,9 +9,9 @@ import NoteTime from "@/Element/Event/NoteTime";
import Text from "@/Element/Text"; import Text from "@/Element/Text";
import useLogin from "@/Hooks/useLogin"; import useLogin from "@/Hooks/useLogin";
import { Chat, ChatMessage, ChatType, setLastReadIn } from "@/chat"; 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 { export interface DMProps {
chat: Chat; chat: Chat;

View File

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

View File

@ -9,9 +9,9 @@ import NoteToSelf from "@/Element/User/NoteToSelf";
import useLogin from "@/Hooks/useLogin"; import useLogin from "@/Hooks/useLogin";
import usePageWidth from "@/Hooks/usePageWidth"; import usePageWidth from "@/Hooks/usePageWidth";
import NoteTime from "@/Element/Event/NoteTime"; 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 { Chat, ChatType, useChatSystem } from "@/chat";
import { ChatParticipantProfile } from "@/Element/Chat/ChatParticipant"; import { ChatParticipantProfile } from "@/Pages/Messages/ChatParticipant";
import classNames from "classnames"; import classNames from "classnames";
import NewChatWindow from "@/Pages/Messages/NewChatWindow"; import NewChatWindow from "@/Pages/Messages/NewChatWindow";

View File

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

View File

@ -1,5 +1,5 @@
import "./TaskList.css"; import "./TaskList.css";
import {Fragment, 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,11 +54,7 @@ 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 ( return <Fragment key={a.id}>{a.render()}</Fragment>;
<Fragment key={a.id}>
{a.render()}
</Fragment>
);
} else { } else {
return ( return (
<div key={a.id} className="card"> <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) => { 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; } as Chat;
}); });

View File

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