@natoe/colab 0.1.24 → 0.1.26
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/index.d.mts +31 -2
- package/dist/index.d.ts +31 -2
- package/dist/index.js +71 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -16
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1942,6 +1942,20 @@ function MoreIcon({ size = 18, color = "currentColor" }) {
|
|
|
1942
1942
|
}
|
|
1943
1943
|
);
|
|
1944
1944
|
}
|
|
1945
|
+
function AlertIcon({ size = 14, color = "currentColor" }) {
|
|
1946
|
+
return /* @__PURE__ */ jsx(
|
|
1947
|
+
"svg",
|
|
1948
|
+
{
|
|
1949
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1950
|
+
width: size,
|
|
1951
|
+
height: size,
|
|
1952
|
+
viewBox: "0 0 24 24",
|
|
1953
|
+
fill: color,
|
|
1954
|
+
"aria-hidden": "true",
|
|
1955
|
+
children: /* @__PURE__ */ jsx("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" })
|
|
1956
|
+
}
|
|
1957
|
+
);
|
|
1958
|
+
}
|
|
1945
1959
|
var VIEWPORT_MARGIN = 8;
|
|
1946
1960
|
var TRIGGER_GAP = 4;
|
|
1947
1961
|
function MessageActionsMenu({
|
|
@@ -1950,6 +1964,9 @@ function MessageActionsMenu({
|
|
|
1950
1964
|
onPin,
|
|
1951
1965
|
onUnpin,
|
|
1952
1966
|
onCopy,
|
|
1967
|
+
onReport,
|
|
1968
|
+
onBlock,
|
|
1969
|
+
canModerate = false,
|
|
1953
1970
|
pinDisabled = false,
|
|
1954
1971
|
anchorRight = false,
|
|
1955
1972
|
className
|
|
@@ -2088,6 +2105,36 @@ function MessageActionsMenu({
|
|
|
2088
2105
|
/* @__PURE__ */ jsx("span", { children: "Copy text" })
|
|
2089
2106
|
]
|
|
2090
2107
|
}
|
|
2108
|
+
),
|
|
2109
|
+
canModerate && (onReport || onBlock) && /* @__PURE__ */ jsx("div", { style: styles4.divider }),
|
|
2110
|
+
canModerate && onReport && /* @__PURE__ */ jsxs(
|
|
2111
|
+
"button",
|
|
2112
|
+
{
|
|
2113
|
+
type: "button",
|
|
2114
|
+
role: "menuitem",
|
|
2115
|
+
onClick: () => run(() => onReport(message)),
|
|
2116
|
+
style: styles4.item,
|
|
2117
|
+
children: [
|
|
2118
|
+
/* @__PURE__ */ jsx(AlertIcon, { size: 16, color: COLOR.neutral700 }),
|
|
2119
|
+
/* @__PURE__ */ jsx("span", { children: "Report message" })
|
|
2120
|
+
]
|
|
2121
|
+
}
|
|
2122
|
+
),
|
|
2123
|
+
canModerate && onBlock && /* @__PURE__ */ jsxs(
|
|
2124
|
+
"button",
|
|
2125
|
+
{
|
|
2126
|
+
type: "button",
|
|
2127
|
+
role: "menuitem",
|
|
2128
|
+
onClick: () => run(() => onBlock(message)),
|
|
2129
|
+
style: { ...styles4.item, ...styles4.itemDanger },
|
|
2130
|
+
children: [
|
|
2131
|
+
/* @__PURE__ */ jsx(AlertIcon, { size: 16, color: "#c0392b" }),
|
|
2132
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
2133
|
+
"Block ",
|
|
2134
|
+
message.senderName
|
|
2135
|
+
] })
|
|
2136
|
+
]
|
|
2137
|
+
}
|
|
2091
2138
|
)
|
|
2092
2139
|
]
|
|
2093
2140
|
}
|
|
@@ -2166,6 +2213,14 @@ var styles4 = {
|
|
|
2166
2213
|
itemDisabled: {
|
|
2167
2214
|
color: COLOR.neutral400,
|
|
2168
2215
|
cursor: "not-allowed"
|
|
2216
|
+
},
|
|
2217
|
+
itemDanger: {
|
|
2218
|
+
color: "#c0392b"
|
|
2219
|
+
},
|
|
2220
|
+
divider: {
|
|
2221
|
+
height: "1px",
|
|
2222
|
+
backgroundColor: COLOR.neutral200,
|
|
2223
|
+
margin: "4px 0"
|
|
2169
2224
|
}
|
|
2170
2225
|
};
|
|
2171
2226
|
function FileIcon({ size = 18, color = "currentColor" }) {
|
|
@@ -2182,20 +2237,6 @@ function FileIcon({ size = 18, color = "currentColor" }) {
|
|
|
2182
2237
|
}
|
|
2183
2238
|
);
|
|
2184
2239
|
}
|
|
2185
|
-
function AlertIcon({ size = 14, color = "currentColor" }) {
|
|
2186
|
-
return /* @__PURE__ */ jsx(
|
|
2187
|
-
"svg",
|
|
2188
|
-
{
|
|
2189
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
2190
|
-
width: size,
|
|
2191
|
-
height: size,
|
|
2192
|
-
viewBox: "0 0 24 24",
|
|
2193
|
-
fill: color,
|
|
2194
|
-
"aria-hidden": "true",
|
|
2195
|
-
children: /* @__PURE__ */ jsx("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" })
|
|
2196
|
-
}
|
|
2197
|
-
);
|
|
2198
|
-
}
|
|
2199
2240
|
function RoleAvatarIcon({
|
|
2200
2241
|
role,
|
|
2201
2242
|
size = 18,
|
|
@@ -2297,6 +2338,8 @@ function MessageBubble({
|
|
|
2297
2338
|
onPin,
|
|
2298
2339
|
onUnpin,
|
|
2299
2340
|
onCopy,
|
|
2341
|
+
onReport,
|
|
2342
|
+
onBlock,
|
|
2300
2343
|
onReplyJumpTo,
|
|
2301
2344
|
onRetry,
|
|
2302
2345
|
pinDisabled = false,
|
|
@@ -2305,7 +2348,8 @@ function MessageBubble({
|
|
|
2305
2348
|
if (message.type === "system") {
|
|
2306
2349
|
return /* @__PURE__ */ jsx(SystemBubble, { message });
|
|
2307
2350
|
}
|
|
2308
|
-
const
|
|
2351
|
+
const canModerate = !isOwn && !!(onReport || onBlock);
|
|
2352
|
+
const hasActions = !!(onReply || onPin || onUnpin || onCopy) || canModerate;
|
|
2309
2353
|
const actionsSlot = hasActions ? /* @__PURE__ */ jsx("div", { style: styles5.actionsSlot, children: /* @__PURE__ */ jsx(
|
|
2310
2354
|
MessageActionsMenu,
|
|
2311
2355
|
{
|
|
@@ -2317,6 +2361,9 @@ function MessageBubble({
|
|
|
2317
2361
|
onUnpin: onUnpin ?? (() => {
|
|
2318
2362
|
}),
|
|
2319
2363
|
onCopy,
|
|
2364
|
+
onReport,
|
|
2365
|
+
onBlock,
|
|
2366
|
+
canModerate,
|
|
2320
2367
|
pinDisabled,
|
|
2321
2368
|
anchorRight: !isOwn
|
|
2322
2369
|
}
|
|
@@ -2853,6 +2900,9 @@ var MessageList = forwardRef(function MessageList2({
|
|
|
2853
2900
|
onPin,
|
|
2854
2901
|
onUnpin,
|
|
2855
2902
|
onCopy,
|
|
2903
|
+
onReport,
|
|
2904
|
+
onBlock,
|
|
2905
|
+
blockedUserIds,
|
|
2856
2906
|
onRetry,
|
|
2857
2907
|
pinDisabled,
|
|
2858
2908
|
className
|
|
@@ -2956,7 +3006,7 @@ var MessageList = forwardRef(function MessageList2({
|
|
|
2956
3006
|
messages.length === 0 && isLoading && /* @__PURE__ */ jsx("div", { style: styles6.firstLoad, children: /* @__PURE__ */ jsx(Spinner, { size: 20 }) }),
|
|
2957
3007
|
(() => {
|
|
2958
3008
|
let lastValidBucket = null;
|
|
2959
|
-
return messages.map((message) => {
|
|
3009
|
+
return messages.filter((m) => !blockedUserIds?.includes(m.senderId)).map((message) => {
|
|
2960
3010
|
const currentBucket = dayBucketKey(message.insertedAt);
|
|
2961
3011
|
const showDivider = !!currentBucket && currentBucket !== lastValidBucket;
|
|
2962
3012
|
if (currentBucket) lastValidBucket = currentBucket;
|
|
@@ -2979,6 +3029,8 @@ var MessageList = forwardRef(function MessageList2({
|
|
|
2979
3029
|
onPin,
|
|
2980
3030
|
onUnpin,
|
|
2981
3031
|
onCopy,
|
|
3032
|
+
onReport,
|
|
3033
|
+
onBlock,
|
|
2982
3034
|
onRetry,
|
|
2983
3035
|
pinDisabled
|
|
2984
3036
|
}
|
|
@@ -4598,6 +4650,9 @@ function CollabPanel({
|
|
|
4598
4650
|
onPin: handlePin,
|
|
4599
4651
|
onUnpin: handleUnpin,
|
|
4600
4652
|
onCopy: handleCopy,
|
|
4653
|
+
onReport: config.onReportMessage ? (m) => config.onReportMessage(m) : void 0,
|
|
4654
|
+
onBlock: config.onBlockUser ? (m) => config.onBlockUser(m.senderId, m.senderName) : void 0,
|
|
4655
|
+
blockedUserIds: config.blockedUserIds,
|
|
4601
4656
|
onRetry: retryMessage,
|
|
4602
4657
|
pinDisabled
|
|
4603
4658
|
}
|