@ttt-productions/chat-react 0.2.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/context/ChatNameResolverContext.d.ts +1 -1
- package/dist/context/ChatNameResolverContext.d.ts.map +1 -1
- package/dist/firestore/queries.d.ts +0 -2
- package/dist/firestore/queries.d.ts.map +1 -1
- package/dist/firestore/queries.js +0 -5
- package/dist/firestore/queries.js.map +1 -1
- package/dist/hooks/useChatMessages.d.ts.map +1 -1
- package/dist/hooks/useChatMessages.js +24 -73
- package/dist/hooks/useChatMessages.js.map +1 -1
- package/dist/mentions/MentionAutocomplete.d.ts +1 -1
- package/dist/mentions/MentionAutocomplete.d.ts.map +1 -1
- package/dist/mentions/MessageText.d.ts +1 -1
- package/dist/mentions/MessageText.d.ts.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/ChatShell.d.ts +1 -1
- package/dist/ui/ChatShell.d.ts.map +1 -1
- package/dist/ui/Composer.d.ts +2 -1
- package/dist/ui/Composer.d.ts.map +1 -1
- package/dist/ui/MessageItemDefault.d.ts +1 -1
- package/dist/ui/MessageItemDefault.d.ts.map +1 -1
- package/dist/ui/MessageList.d.ts +1 -1
- package/dist/ui/MessageList.d.ts.map +1 -1
- package/dist/ui/menus.d.ts +2 -2
- package/dist/ui/menus.d.ts.map +1 -1
- package/package.json +16 -11
|
@@ -14,7 +14,7 @@ export type ChatNameResolverProviderProps = {
|
|
|
14
14
|
* a name resolver. Required for any tree that renders <ChatShell>, <MessageList>,
|
|
15
15
|
* or <MessageItemDefault>.
|
|
16
16
|
*/
|
|
17
|
-
export declare function ChatNameResolverProvider(props: ChatNameResolverProviderProps):
|
|
17
|
+
export declare function ChatNameResolverProvider(props: ChatNameResolverProviderProps): React.JSX.Element;
|
|
18
18
|
/**
|
|
19
19
|
* Strict hook — throws if no provider is wrapped. Used inside chat-core's
|
|
20
20
|
* own renderers (MessageItemDefault, ReplyQuote) so a missing setup surfaces
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatNameResolverContext.d.ts","sourceRoot":"","sources":["../../src/context/ChatNameResolverContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEvF,KAAK,4BAA4B,GAAG;IAClC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAIF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"ChatNameResolverContext.d.ts","sourceRoot":"","sources":["../../src/context/ChatNameResolverContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEvF,KAAK,4BAA4B,GAAG;IAClC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAIF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBAQ5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,4BAA4B,CAQlE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,4BAA4B,GAAG,IAAI,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9D"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { Firestore, Query, DocumentData } from "firebase/firestore";
|
|
2
1
|
export declare function threadDocPath(chatCollectionPath: string | string[], threadId: string): string[];
|
|
3
2
|
export declare function messagesColPath(chatCollectionPath: string | string[], threadId: string, messagesSubcollection?: string): [string, string, ...string[]];
|
|
4
|
-
export declare function newestWindowQuery(db: Firestore, chatCollectionPath: string | string[], threadId: string, createdAtField: string, pageSize: number, messagesSubcollection?: string): Query<DocumentData>;
|
|
5
3
|
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/firestore/queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/firestore/queries.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/F;AAED,wBAAgB,eAAe,CAC7B,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,EACrC,QAAQ,EAAE,MAAM,EAChB,qBAAqB,SAAa,GACjC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAG/B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { collection, query, orderBy, limit } from "firebase/firestore";
|
|
2
1
|
function normalizeSegments(path) {
|
|
3
2
|
return Array.isArray(path) ? path : [path];
|
|
4
3
|
}
|
|
@@ -9,8 +8,4 @@ export function messagesColPath(chatCollectionPath, threadId, messagesSubcollect
|
|
|
9
8
|
const segments = [...normalizeSegments(chatCollectionPath), threadId, messagesSubcollection];
|
|
10
9
|
return segments;
|
|
11
10
|
}
|
|
12
|
-
export function newestWindowQuery(db, chatCollectionPath, threadId, createdAtField, pageSize, messagesSubcollection = "messages") {
|
|
13
|
-
const path = messagesColPath(chatCollectionPath, threadId, messagesSubcollection);
|
|
14
|
-
return query(collection(db, path[0], ...path.slice(1)), orderBy(createdAtField, "desc"), limit(pageSize));
|
|
15
|
-
}
|
|
16
11
|
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/firestore/queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/firestore/queries.ts"],"names":[],"mappings":"AAAA,SAAS,iBAAiB,CAAC,IAAuB;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,kBAAqC,EAAE,QAAgB;IACnF,OAAO,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,kBAAqC,EACrC,QAAgB,EAChB,qBAAqB,GAAG,UAAU;IAElC,MAAM,QAAQ,GAAG,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC7F,OAAO,QAAyC,CAAC;AACnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatMessages.d.ts","sourceRoot":"","sources":["../../src/hooks/useChatMessages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatMessages.d.ts","sourceRoot":"","sources":["../../src/hooks/useChatMessages.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAsCF,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CAuF7E"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import { collection, getDocs, onSnapshot, orderBy, query, startAfter, limit, } from "firebase/firestore";
|
|
4
|
-
import { useInfiniteQuery } from "@tanstack/react-query";
|
|
5
3
|
import { toMillis } from "@ttt-productions/firebase-helpers";
|
|
4
|
+
import { useFirestoreLiveInfinite } from "@ttt-productions/query-core/react";
|
|
6
5
|
import { canAccessThread } from "./useChatThreadAccess.js";
|
|
7
|
-
import { messagesColPath
|
|
6
|
+
import { messagesColPath } from "../firestore/queries.js";
|
|
8
7
|
import { useOptionalChatNameResolver } from "../context/ChatNameResolverContext.js";
|
|
9
8
|
// Safety limit to prevent memory exhaustion
|
|
10
9
|
const MAX_PAGE_SIZE = 100;
|
|
11
|
-
function mapMsg(
|
|
12
|
-
const d =
|
|
10
|
+
function mapMsg(data, threadId) {
|
|
11
|
+
const d = data;
|
|
13
12
|
const createdAt = toMillis(d.createdAt);
|
|
14
13
|
if (!createdAt) {
|
|
15
|
-
console.error('[useChatMessages] Message missing valid createdAt:',
|
|
14
|
+
console.error('[useChatMessages] Message missing valid createdAt:', data.id, d.createdAt);
|
|
16
15
|
}
|
|
17
16
|
// replyTo: the new shape uses senderId, not senderUsername. Tolerate older
|
|
18
17
|
// docs that still have senderUsername — drop the name and keep what we can.
|
|
@@ -24,7 +23,7 @@ function mapMsg(doc, threadId) {
|
|
|
24
23
|
}
|
|
25
24
|
: undefined;
|
|
26
25
|
return {
|
|
27
|
-
messageId:
|
|
26
|
+
messageId: data.id,
|
|
28
27
|
threadId,
|
|
29
28
|
createdAt: createdAt || 0,
|
|
30
29
|
senderId: d.senderId,
|
|
@@ -36,81 +35,33 @@ function mapMsg(doc, threadId) {
|
|
|
36
35
|
meta: d.meta,
|
|
37
36
|
};
|
|
38
37
|
}
|
|
39
|
-
function dedupeAndSortAsc(all) {
|
|
40
|
-
const m = new Map();
|
|
41
|
-
for (const x of all)
|
|
42
|
-
m.set(x.messageId, x);
|
|
43
|
-
return Array.from(m.values()).sort((a, b) => a.createdAt - b.createdAt);
|
|
44
|
-
}
|
|
45
|
-
function messagesCol(db, chatCollectionPath, threadId, messagesSubcollection) {
|
|
46
|
-
const path = messagesColPath(chatCollectionPath, threadId, messagesSubcollection);
|
|
47
|
-
return collection(db, path[0], ...path.slice(1));
|
|
48
|
-
}
|
|
49
38
|
export function useChatMessages(config) {
|
|
50
|
-
const {
|
|
39
|
+
const { chatCollectionPath, messagesSubcollection = "messages", threadId, pageSize: requestedPageSize = 20, currentUserId, isAdmin, accessMode, threadAllowedUserIds, createdAtField = "createdAt", } = config;
|
|
51
40
|
const pageSize = Math.min(requestedPageSize, MAX_PAGE_SIZE);
|
|
52
41
|
if (requestedPageSize > MAX_PAGE_SIZE) {
|
|
53
42
|
console.warn(`[useChatMessages] Requested pageSize ${requestedPageSize} exceeds maximum ${MAX_PAGE_SIZE}. Using ${MAX_PAGE_SIZE}.`);
|
|
54
43
|
}
|
|
55
|
-
const pathKey = JSON.stringify(Array.isArray(chatCollectionPath) ? chatCollectionPath : [chatCollectionPath]);
|
|
56
44
|
const allowed = React.useMemo(() => canAccessThread({
|
|
57
45
|
accessMode,
|
|
58
46
|
isAdmin,
|
|
59
47
|
currentUserId,
|
|
60
48
|
allowedUserIds: threadAllowedUserIds,
|
|
61
49
|
}), [accessMode, isAdmin, currentUserId, threadAllowedUserIds]);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
ready: true,
|
|
76
|
-
newestDesc: mapped,
|
|
77
|
-
oldestDocInWindow: docs[docs.length - 1] ?? null,
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
return () => unsub();
|
|
81
|
-
}, [allowed, db, chatCollectionPath, pathKey, threadId, createdAtField, pageSize, messagesSubcollection]);
|
|
82
|
-
const older = useInfiniteQuery({
|
|
83
|
-
queryKey: ["chat-core", "older", pathKey, threadId, messagesSubcollection, pageSize],
|
|
84
|
-
enabled: allowed && newest.ready,
|
|
85
|
-
initialPageParam: undefined,
|
|
86
|
-
queryFn: async ({ pageParam }) => {
|
|
87
|
-
const baseCol = messagesCol(db, chatCollectionPath, threadId, messagesSubcollection);
|
|
88
|
-
const cursor = pageParam ?? (newest.oldestDocInWindow ?? undefined);
|
|
89
|
-
if (!cursor) {
|
|
90
|
-
return {
|
|
91
|
-
itemsDesc: [],
|
|
92
|
-
nextCursor: undefined,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
const q = query(baseCol, orderBy(createdAtField, "desc"), startAfter(cursor), limit(pageSize));
|
|
96
|
-
const snap = await getDocs(q);
|
|
97
|
-
const docs = snap.docs;
|
|
98
|
-
const itemsDesc = docs.map((d) => mapMsg(d, threadId));
|
|
99
|
-
const nextCursor = docs.length === pageSize ? docs[docs.length - 1] : undefined;
|
|
100
|
-
return { itemsDesc, nextCursor };
|
|
101
|
-
},
|
|
102
|
-
getNextPageParam: (last) => last.nextCursor,
|
|
50
|
+
// Stable key segment for the message collection path (string | string[]).
|
|
51
|
+
const pathKey = React.useMemo(() => JSON.stringify(Array.isArray(chatCollectionPath) ? chatCollectionPath : [chatCollectionPath]), [chatCollectionPath]);
|
|
52
|
+
// Slash-joined collection path for the generic hook (handles nested paths).
|
|
53
|
+
const collectionPath = React.useMemo(() => messagesColPath(chatCollectionPath, threadId, messagesSubcollection).join("/"), [chatCollectionPath, threadId, messagesSubcollection]);
|
|
54
|
+
const { items, isInitialLoading, fetchOlder, hasOlder, isFetchingOlder } = useFirestoreLiveInfinite({
|
|
55
|
+
collectionPath,
|
|
56
|
+
queryKey: ["chat-core", "messages", pathKey, threadId, messagesSubcollection, pageSize],
|
|
57
|
+
orderByField: createdAtField,
|
|
58
|
+
pageSize,
|
|
59
|
+
enabled: allowed,
|
|
60
|
+
sort: "asc",
|
|
61
|
+
select: (data) => mapMsg(data, threadId),
|
|
62
|
+
getSortValue: (data) => toMillis(data.createdAt) ?? 0,
|
|
103
63
|
});
|
|
104
|
-
const
|
|
105
|
-
const fetchOlder = React.useCallback(async () => {
|
|
106
|
-
await fetchOlderPage();
|
|
107
|
-
}, [fetchOlderPage]);
|
|
108
|
-
const messages = React.useMemo(() => {
|
|
109
|
-
if (!allowed)
|
|
110
|
-
return [];
|
|
111
|
-
const olderDesc = (older.data?.pages ?? []).flatMap((p) => p.itemsDesc);
|
|
112
|
-
return dedupeAndSortAsc([...olderDesc, ...newest.newestDesc]);
|
|
113
|
-
}, [allowed, older.data, newest.newestDesc]);
|
|
64
|
+
const messages = React.useMemo(() => (allowed ? items : []), [allowed, items]);
|
|
114
65
|
// Pre-warm name cache for all visible senders (and reply-to senders).
|
|
115
66
|
// Optional resolver: silent no-op if no provider is wrapped.
|
|
116
67
|
const resolverCtx = useOptionalChatNameResolver();
|
|
@@ -130,11 +81,11 @@ export function useChatMessages(config) {
|
|
|
130
81
|
}, [resolverCtx, senderIds]);
|
|
131
82
|
return {
|
|
132
83
|
allowed,
|
|
133
|
-
isInitialLoading: allowed ?
|
|
84
|
+
isInitialLoading: allowed ? isInitialLoading : false,
|
|
134
85
|
messages,
|
|
135
86
|
fetchOlder,
|
|
136
|
-
hasOlder
|
|
137
|
-
isFetchingOlder
|
|
87
|
+
hasOlder,
|
|
88
|
+
isFetchingOlder,
|
|
138
89
|
};
|
|
139
90
|
}
|
|
140
91
|
//# sourceMappingURL=useChatMessages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatMessages.js","sourceRoot":"","sources":["../../src/hooks/useChatMessages.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useChatMessages.js","sourceRoot":"","sources":["../../src/hooks/useChatMessages.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,5 +18,5 @@ export interface MentionAutocompleteProps<TKind extends string = string> {
|
|
|
18
18
|
/** Class name applied to the outer container. */
|
|
19
19
|
className?: string;
|
|
20
20
|
}
|
|
21
|
-
export declare function MentionAutocomplete<TKind extends string = string>(props: MentionAutocompleteProps<TKind>): import("react
|
|
21
|
+
export declare function MentionAutocomplete<TKind extends string = string>(props: MentionAutocompleteProps<TKind>): import("react").JSX.Element | null;
|
|
22
22
|
//# sourceMappingURL=MentionAutocomplete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionAutocomplete.d.ts","sourceRoot":"","sources":["../../src/mentions/MentionAutocomplete.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,WAAW,wBAAwB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IACrE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC/D,KAAK,EAAE,wBAAwB,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MentionAutocomplete.d.ts","sourceRoot":"","sources":["../../src/mentions/MentionAutocomplete.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,WAAW,wBAAwB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IACrE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC/D,KAAK,EAAE,wBAAwB,CAAC,KAAK,CAAC,sCAoEvC"}
|
|
@@ -23,5 +23,5 @@ export interface MessageTextProps<TKind extends string = string> {
|
|
|
23
23
|
/** Optional className applied to the wrapping `<span>`. */
|
|
24
24
|
className?: string;
|
|
25
25
|
}
|
|
26
|
-
export declare function MessageText<TKind extends string = string>(props: MessageTextProps<TKind>): import("react
|
|
26
|
+
export declare function MessageText<TKind extends string = string>(props: MessageTextProps<TKind>): import("react").JSX.Element;
|
|
27
27
|
//# sourceMappingURL=MessageText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../../src/mentions/MessageText.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IAC7D,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IACtD,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"MessageText.d.ts","sourceRoot":"","sources":["../../src/mentions/MessageText.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IAC7D,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IACtD,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,+BAiBxF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Firestore } from "firebase/firestore";
|
|
2
1
|
import type { FirebaseStorage } from "firebase/storage";
|
|
3
2
|
import type { ReactNode } from "react";
|
|
4
3
|
import type { MediaOriginSpec } from "@ttt-productions/media-schemas";
|
|
@@ -88,7 +87,6 @@ export type ChatMentionConfig = {
|
|
|
88
87
|
renderMention?: (ref: MentionRef) => ReactNode;
|
|
89
88
|
};
|
|
90
89
|
export type ChatCoreConfig = {
|
|
91
|
-
db: Firestore;
|
|
92
90
|
chatCollectionPath: string | string[];
|
|
93
91
|
messagesSubcollection?: string;
|
|
94
92
|
threadId: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAMpC,sEAAsE;AACtE,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,CACjE,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,KACnB,SAAS,CAAC;AAEf;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,CACnC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,QAAQ,GAAG,OAAO,IAChB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;CAC7C,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,eAAe,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IAC5E,6FAA6F;IAC7F,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnG,CAAC;AAMF,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,eAAe,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAMF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,kCAAkC;IAClC,SAAS,EAAE,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACxD,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS,CAAC;CAChD,CAAC;AAMF,MAAM,MAAM,cAAc,GAAG;IAC3B,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,cAAc,CAAC;IAC3B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC,CAAC;AAMF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC"}
|
package/dist/ui/ChatShell.d.ts
CHANGED
|
@@ -27,5 +27,5 @@ export type ChatShellProps = {
|
|
|
27
27
|
* Usually unnecessary — prefer `fillHeight`. */
|
|
28
28
|
scrollClassName?: string;
|
|
29
29
|
};
|
|
30
|
-
export declare function ChatShell(props: ChatShellProps):
|
|
30
|
+
export declare function ChatShell(props: ChatShellProps): React.JSX.Element;
|
|
31
31
|
//# sourceMappingURL=ChatShell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatShell.d.ts","sourceRoot":"","sources":["../../src/ui/ChatShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAQrB,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,cAAc,CAAC;IAGvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAGzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5E,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5C,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAG9B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,mBAAmB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC5C,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAGrC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAGhE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;6FAGyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;qDACiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"ChatShell.d.ts","sourceRoot":"","sources":["../../src/ui/ChatShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAQrB,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,cAAc,CAAC;IAGvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAGzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5E,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5C,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAG9B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,mBAAmB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC5C,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAGrC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAGhE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;6FAGyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;qDACiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBA+G9C"}
|
package/dist/ui/Composer.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import type { ChatMessageV1, SendAttachmentFn } from "@ttt-productions/chat-core";
|
|
2
3
|
import type { ChatAttachmentConfig } from "../types.js";
|
|
3
4
|
export type ComposerProps = {
|
|
@@ -20,5 +21,5 @@ export type ComposerProps = {
|
|
|
20
21
|
placeholder?: string;
|
|
21
22
|
mentionConfig?: import('../types.js').ChatMentionConfig;
|
|
22
23
|
};
|
|
23
|
-
export declare function Composer(props: ComposerProps):
|
|
24
|
+
export declare function Composer(props: ComposerProps): React.JSX.Element;
|
|
24
25
|
//# sourceMappingURL=Composer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/ui/Composer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/ui/Composer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAkB,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAwBxD,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5E,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAElC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,aAAa,EAAE,iBAAiB,CAAC;CACzD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBA+L5C"}
|
|
@@ -7,5 +7,5 @@ export type MessageItemDefaultProps = {
|
|
|
7
7
|
isContinuation?: boolean;
|
|
8
8
|
onSenderClick?: (senderId: string, displayName: string) => void;
|
|
9
9
|
};
|
|
10
|
-
export declare function MessageItemDefault(props: MessageItemDefaultProps): import("react
|
|
10
|
+
export declare function MessageItemDefault(props: MessageItemDefaultProps): import("react").JSX.Element;
|
|
11
11
|
//# sourceMappingURL=MessageItemDefault.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemDefault.d.ts","sourceRoot":"","sources":["../../src/ui/MessageItemDefault.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAkB,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA4FpG,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,EAAE,aAAa,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAG9B,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAEjE,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB
|
|
1
|
+
{"version":3,"file":"MessageItemDefault.d.ts","sourceRoot":"","sources":["../../src/ui/MessageItemDefault.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAkB,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA4FpG,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,EAAE,aAAa,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAG9B,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAEjE,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,+BA4DhE"}
|
package/dist/ui/MessageList.d.ts
CHANGED
|
@@ -23,5 +23,5 @@ export declare function MessageList(props: {
|
|
|
23
23
|
fillHeight?: boolean;
|
|
24
24
|
handlers?: ModerationHandlers;
|
|
25
25
|
onSenderClick?: (senderId: string, displayName: string) => void;
|
|
26
|
-
}):
|
|
26
|
+
}): React.JSX.Element;
|
|
27
27
|
//# sourceMappingURL=MessageList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../src/ui/MessageList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAI3D,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IAEjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAE3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;4BAEwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE,
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../src/ui/MessageList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAI3D,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IAEjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAE3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;4BAEwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE,qBA4LA"}
|
package/dist/ui/menus.d.ts
CHANGED
|
@@ -3,10 +3,10 @@ export declare function MessageActions(props: {
|
|
|
3
3
|
messageId: string;
|
|
4
4
|
isAdmin: boolean;
|
|
5
5
|
handlers?: ModerationHandlers;
|
|
6
|
-
}): import("react
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
7
|
export declare function ThreadActions(props: {
|
|
8
8
|
threadId: string;
|
|
9
9
|
isAdmin: boolean;
|
|
10
10
|
handlers?: ModerationHandlers;
|
|
11
|
-
}): import("react
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
12
|
//# sourceMappingURL=menus.d.ts.map
|
package/dist/ui/menus.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../src/ui/menus.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B
|
|
1
|
+
{"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../src/ui/menus.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,+BA6BA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,+BA6BA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttt-productions/chat-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Chat React UI, hooks, and Firebase-client adapter for TTT Productions apps (realtime newest window + infinite older pagination)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"@tanstack/react-query": ">=5.0.0",
|
|
36
|
-
"
|
|
36
|
+
"@ttt-productions/query-core": "^0.11.0",
|
|
37
|
+
"firebase": ">=12.0.0",
|
|
37
38
|
"lucide-react": ">=0.0.0",
|
|
38
39
|
"react": ">=19.0.0",
|
|
39
40
|
"react-dom": ">=19.0.0"
|
|
@@ -42,6 +43,9 @@
|
|
|
42
43
|
"@tanstack/react-query": {
|
|
43
44
|
"optional": true
|
|
44
45
|
},
|
|
46
|
+
"@ttt-productions/query-core": {
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
45
49
|
"firebase": {
|
|
46
50
|
"optional": true
|
|
47
51
|
},
|
|
@@ -56,17 +60,18 @@
|
|
|
56
60
|
}
|
|
57
61
|
},
|
|
58
62
|
"dependencies": {
|
|
59
|
-
"@ttt-productions/chat-core": "^0.
|
|
60
|
-
"@ttt-productions/chat-schemas": "^0.
|
|
61
|
-
"@ttt-productions/media-schemas": "^0.
|
|
62
|
-
"@ttt-productions/ui-core": "^0.
|
|
63
|
-
"@ttt-productions/file-input": "^0.
|
|
64
|
-
"@ttt-productions/upload-ui": "^0.
|
|
65
|
-
"@ttt-productions/media-viewer": "^0.
|
|
66
|
-
"@ttt-productions/mobile-core": "^0.
|
|
67
|
-
"@ttt-productions/firebase-helpers": "^0.
|
|
63
|
+
"@ttt-productions/chat-core": "^0.8.0",
|
|
64
|
+
"@ttt-productions/chat-schemas": "^0.7.0",
|
|
65
|
+
"@ttt-productions/media-schemas": "^0.9.0",
|
|
66
|
+
"@ttt-productions/ui-core": "^0.9.0",
|
|
67
|
+
"@ttt-productions/file-input": "^0.7.0",
|
|
68
|
+
"@ttt-productions/upload-ui": "^0.5.0",
|
|
69
|
+
"@ttt-productions/media-viewer": "^0.6.0",
|
|
70
|
+
"@ttt-productions/mobile-core": "^0.6.0",
|
|
71
|
+
"@ttt-productions/firebase-helpers": "^0.9.0"
|
|
68
72
|
},
|
|
69
73
|
"devDependencies": {
|
|
74
|
+
"@ttt-productions/query-core": "^0.11.0",
|
|
70
75
|
"@types/react": "^19.0.0",
|
|
71
76
|
"@types/react-dom": "^19.0.0",
|
|
72
77
|
"react": "^19.0.0",
|