@sendbird/uikit-utils 2.4.0 → 2.4.2
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/README.md +1 -1
- package/lib/commonjs/hooks/index.js +3 -30
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/react-native.js +2 -11
- package/lib/commonjs/hooks/react-native.js.map +1 -1
- package/lib/commonjs/index.js +36 -155
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/sendbird/attrs.js +8 -11
- package/lib/commonjs/sendbird/attrs.js.map +1 -1
- package/lib/commonjs/sendbird/channel.js +0 -16
- package/lib/commonjs/sendbird/channel.js.map +1 -1
- package/lib/commonjs/sendbird/message.js +5 -36
- package/lib/commonjs/sendbird/message.js.map +1 -1
- package/lib/commonjs/sendbird/user.js +0 -2
- package/lib/commonjs/sendbird/user.js.map +1 -1
- package/lib/commonjs/shared/arrayToMap.js +0 -6
- package/lib/commonjs/shared/arrayToMap.js.map +1 -1
- package/lib/commonjs/shared/bufferedRequest.js +5 -26
- package/lib/commonjs/shared/bufferedRequest.js.map +1 -1
- package/lib/commonjs/shared/file.js +208 -0
- package/lib/commonjs/shared/file.js.map +1 -0
- package/lib/commonjs/shared/index.js +12 -49
- package/lib/commonjs/shared/index.js.map +1 -1
- package/lib/commonjs/shared/logger.js +3 -22
- package/lib/commonjs/shared/logger.js.map +1 -1
- package/lib/commonjs/shared/regex.js +3 -55
- package/lib/commonjs/shared/regex.js.map +1 -1
- package/lib/commonjs/ui-format/common.js +6 -18
- package/lib/commonjs/ui-format/common.js.map +1 -1
- package/lib/commonjs/ui-format/groupChannel.js +0 -15
- package/lib/commonjs/ui-format/groupChannel.js.map +1 -1
- package/lib/commonjs/ui-format/openChannel.js +0 -4
- package/lib/commonjs/ui-format/openChannel.js.map +1 -1
- package/lib/module/hooks/index.js +3 -7
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/react-native.js +2 -2
- package/lib/module/hooks/react-native.js.map +1 -1
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/sendbird/attrs.js +6 -9
- package/lib/module/sendbird/attrs.js.map +1 -1
- package/lib/module/sendbird/channel.js +0 -1
- package/lib/module/sendbird/channel.js.map +1 -1
- package/lib/module/sendbird/message.js +4 -18
- package/lib/module/sendbird/message.js.map +1 -1
- package/lib/module/sendbird/user.js.map +1 -1
- package/lib/module/shared/arrayToMap.js +0 -4
- package/lib/module/shared/arrayToMap.js.map +1 -1
- package/lib/module/shared/bufferedRequest.js +5 -24
- package/lib/module/shared/bufferedRequest.js.map +1 -1
- package/lib/module/shared/file.js +187 -0
- package/lib/module/shared/file.js.map +1 -0
- package/lib/module/shared/index.js +12 -39
- package/lib/module/shared/index.js.map +1 -1
- package/lib/module/shared/logger.js +3 -21
- package/lib/module/shared/logger.js.map +1 -1
- package/lib/module/shared/regex.js +3 -35
- package/lib/module/shared/regex.js.map +1 -1
- package/lib/module/ui-format/common.js +6 -9
- package/lib/module/ui-format/common.js.map +1 -1
- package/lib/module/ui-format/groupChannel.js +0 -7
- package/lib/module/ui-format/groupChannel.js.map +1 -1
- package/lib/module/ui-format/openChannel.js.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -3
- package/lib/typescript/src/shared/file.d.ts +68 -0
- package/lib/typescript/src/shared/index.d.ts +10 -16
- package/lib/typescript/src/shared/regex.d.ts +0 -6
- package/package.json +11 -7
- package/src/index.ts +3 -19
- package/src/sendbird/message.ts +1 -1
- package/src/shared/file.ts +193 -0
- package/src/shared/index.ts +10 -37
- package/src/shared/regex.ts +0 -34
- package/lib/commonjs/shared/pubsub.js +0 -54
- package/lib/commonjs/shared/pubsub.js.map +0 -1
- package/lib/module/shared/pubsub.js +0 -45
- package/lib/module/shared/pubsub.js.map +0 -1
- package/lib/typescript/src/shared/pubsub.d.ts +0 -8
- package/src/shared/pubsub.ts +0 -42
|
@@ -4,14 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.truncatedCount = exports.truncate = exports.getMessageTimeFormat = exports.getDateSeparatorFormat = void 0;
|
|
7
|
-
|
|
8
7
|
var _dateFns = require("date-fns");
|
|
9
|
-
|
|
10
8
|
const defaultOpts = {
|
|
11
9
|
mode: 'mid',
|
|
12
10
|
maxLen: 40,
|
|
13
11
|
separator: '...'
|
|
14
12
|
};
|
|
13
|
+
|
|
15
14
|
/**
|
|
16
15
|
* String truncate util
|
|
17
16
|
* @param {string} str
|
|
@@ -21,10 +20,10 @@ const defaultOpts = {
|
|
|
21
20
|
* @param {string} opts.separator default "..."
|
|
22
21
|
* @returns {string}
|
|
23
22
|
* */
|
|
24
|
-
|
|
25
23
|
const truncate = function (str) {
|
|
26
24
|
let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOpts;
|
|
27
|
-
const options = {
|
|
25
|
+
const options = {
|
|
26
|
+
...defaultOpts,
|
|
28
27
|
...opts
|
|
29
28
|
};
|
|
30
29
|
const {
|
|
@@ -33,23 +32,20 @@ const truncate = function (str) {
|
|
|
33
32
|
separator
|
|
34
33
|
} = options;
|
|
35
34
|
if (str.length <= maxLen) return str;
|
|
36
|
-
|
|
37
35
|
if (mode === 'head') {
|
|
38
36
|
return separator + str.slice(-maxLen);
|
|
39
37
|
}
|
|
40
|
-
|
|
41
38
|
if (mode === 'mid') {
|
|
42
39
|
const lead = Math.ceil(maxLen / 2);
|
|
43
40
|
const trail = Math.floor(maxLen / 2);
|
|
44
41
|
return str.slice(0, lead) + separator + str.slice(-trail);
|
|
45
42
|
}
|
|
46
|
-
|
|
47
43
|
if (mode === 'tail') {
|
|
48
44
|
return str.slice(0, maxLen) + separator;
|
|
49
45
|
}
|
|
50
|
-
|
|
51
46
|
throw new Error('Invalid truncate mode: ' + mode);
|
|
52
47
|
};
|
|
48
|
+
|
|
53
49
|
/**
|
|
54
50
|
* Count truncate util
|
|
55
51
|
* If count exceed the limit, it comes in the form of "MAX+"
|
|
@@ -59,16 +55,14 @@ const truncate = function (str) {
|
|
|
59
55
|
* @param {string} MAX_SUFFIX default +
|
|
60
56
|
* @returns {string}
|
|
61
57
|
* */
|
|
62
|
-
|
|
63
|
-
|
|
64
58
|
exports.truncate = truncate;
|
|
65
|
-
|
|
66
59
|
const truncatedCount = function (count) {
|
|
67
60
|
let MAX = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 99;
|
|
68
61
|
let MAX_SUFFIX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '+';
|
|
69
62
|
if (count >= MAX) return `${MAX}${MAX_SUFFIX}`;
|
|
70
63
|
return `${count}`;
|
|
71
64
|
};
|
|
65
|
+
|
|
72
66
|
/**
|
|
73
67
|
* Messages date separator format
|
|
74
68
|
*
|
|
@@ -76,10 +70,7 @@ const truncatedCount = function (count) {
|
|
|
76
70
|
* @param {Locale} [locale]
|
|
77
71
|
* @returns {string}
|
|
78
72
|
* */
|
|
79
|
-
|
|
80
|
-
|
|
81
73
|
exports.truncatedCount = truncatedCount;
|
|
82
|
-
|
|
83
74
|
const getDateSeparatorFormat = (date, locale) => {
|
|
84
75
|
if ((0, _dateFns.isThisYear)(date)) return (0, _dateFns.format)(date, 'MMM dd, yyyy', {
|
|
85
76
|
locale
|
|
@@ -88,6 +79,7 @@ const getDateSeparatorFormat = (date, locale) => {
|
|
|
88
79
|
locale
|
|
89
80
|
});
|
|
90
81
|
};
|
|
82
|
+
|
|
91
83
|
/**
|
|
92
84
|
* Message time format
|
|
93
85
|
*
|
|
@@ -95,15 +87,11 @@ const getDateSeparatorFormat = (date, locale) => {
|
|
|
95
87
|
* @param {Locale} [locale]
|
|
96
88
|
* @returns {string}
|
|
97
89
|
* */
|
|
98
|
-
|
|
99
|
-
|
|
100
90
|
exports.getDateSeparatorFormat = getDateSeparatorFormat;
|
|
101
|
-
|
|
102
91
|
const getMessageTimeFormat = (date, locale) => {
|
|
103
92
|
return (0, _dateFns.format)(date, 'p', {
|
|
104
93
|
locale
|
|
105
94
|
});
|
|
106
95
|
};
|
|
107
|
-
|
|
108
96
|
exports.getMessageTimeFormat = getMessageTimeFormat;
|
|
109
97
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultOpts","mode","maxLen","separator","truncate","str","opts","
|
|
1
|
+
{"version":3,"names":["_dateFns","require","defaultOpts","mode","maxLen","separator","truncate","str","opts","arguments","length","undefined","options","slice","lead","Math","ceil","trail","floor","Error","exports","truncatedCount","count","MAX","MAX_SUFFIX","getDateSeparatorFormat","date","locale","isThisYear","format","getMessageTimeFormat"],"sources":["common.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear } from 'date-fns';\n\ntype TruncateMode = 'head' | 'mid' | 'tail';\ntype TruncateOption = { mode: TruncateMode; maxLen: number; separator: string };\nconst defaultOpts: TruncateOption = { mode: 'mid', maxLen: 40, separator: '...' };\n\n/**\n * String truncate util\n * @param {string} str\n * @param {Object} opts Options for truncate\n * @param {'head' | 'mid' | 'tail'} opts.mode default \"mid\"\n * @param {number} opts.maxLen default 40\n * @param {string} opts.separator default \"...\"\n * @returns {string}\n * */\nexport const truncate = (str: string, opts: Partial<TruncateOption> = defaultOpts): string => {\n const options = { ...defaultOpts, ...opts };\n const { maxLen, mode, separator } = options;\n\n if (str.length <= maxLen) return str;\n\n if (mode === 'head') {\n return separator + str.slice(-maxLen);\n }\n\n if (mode === 'mid') {\n const lead = Math.ceil(maxLen / 2);\n const trail = Math.floor(maxLen / 2);\n return str.slice(0, lead) + separator + str.slice(-trail);\n }\n\n if (mode === 'tail') {\n return str.slice(0, maxLen) + separator;\n }\n\n throw new Error('Invalid truncate mode: ' + mode);\n};\n\n/**\n * Count truncate util\n * If count exceed the limit, it comes in the form of \"MAX+\"\n *\n * @param {number} count\n * @param {number} MAX default 99\n * @param {string} MAX_SUFFIX default +\n * @returns {string}\n * */\nexport const truncatedCount = (count: number, MAX = 99, MAX_SUFFIX = '+') => {\n if (count >= MAX) return `${MAX}${MAX_SUFFIX}`;\n return `${count}`;\n};\n\n/**\n * Messages date separator format\n *\n * @param {Date} date\n * @param {Locale} [locale]\n * @returns {string}\n * */\nexport const getDateSeparatorFormat = (date: Date, locale?: Locale): string => {\n if (isThisYear(date)) return format(date, 'MMM dd, yyyy', { locale });\n return format(date, 'E, MMM dd', { locale });\n};\n\n/**\n * Message time format\n *\n * @param {Date} date\n * @param {Locale} [locale]\n * @returns {string}\n * */\nexport const getMessageTimeFormat = (date: Date, locale?: Locale): string => {\n return format(date, 'p', { locale });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAIA,MAAMC,WAA2B,GAAG;EAAEC,IAAI,EAAE,KAAK;EAAEC,MAAM,EAAE,EAAE;EAAEC,SAAS,EAAE;AAAM,CAAC;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,QAAQ,GAAG,SAAAA,CAACC,GAAW,EAA0D;EAAA,IAAxDC,IAA6B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,WAAW;EAC/E,MAAMU,OAAO,GAAG;IAAE,GAAGV,WAAW;IAAE,GAAGM;EAAK,CAAC;EAC3C,MAAM;IAAEJ,MAAM;IAAED,IAAI;IAAEE;EAAU,CAAC,GAAGO,OAAO;EAE3C,IAAIL,GAAG,CAACG,MAAM,IAAIN,MAAM,EAAE,OAAOG,GAAG;EAEpC,IAAIJ,IAAI,KAAK,MAAM,EAAE;IACnB,OAAOE,SAAS,GAAGE,GAAG,CAACM,KAAK,CAAC,CAACT,MAAM,CAAC;EACvC;EAEA,IAAID,IAAI,KAAK,KAAK,EAAE;IAClB,MAAMW,IAAI,GAAGC,IAAI,CAACC,IAAI,CAACZ,MAAM,GAAG,CAAC,CAAC;IAClC,MAAMa,KAAK,GAAGF,IAAI,CAACG,KAAK,CAACd,MAAM,GAAG,CAAC,CAAC;IACpC,OAAOG,GAAG,CAACM,KAAK,CAAC,CAAC,EAAEC,IAAI,CAAC,GAAGT,SAAS,GAAGE,GAAG,CAACM,KAAK,CAAC,CAACI,KAAK,CAAC;EAC3D;EAEA,IAAId,IAAI,KAAK,MAAM,EAAE;IACnB,OAAOI,GAAG,CAACM,KAAK,CAAC,CAAC,EAAET,MAAM,CAAC,GAAGC,SAAS;EACzC;EAEA,MAAM,IAAIc,KAAK,CAAC,yBAAyB,GAAGhB,IAAI,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAiB,OAAA,CAAAd,QAAA,GAAAA,QAAA;AASO,MAAMe,cAAc,GAAG,SAAAA,CAACC,KAAa,EAAiC;EAAA,IAA/BC,GAAG,GAAAd,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAEe,UAAU,GAAAf,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EACtE,IAAIa,KAAK,IAAIC,GAAG,EAAE,OAAQ,GAAEA,GAAI,GAAEC,UAAW,EAAC;EAC9C,OAAQ,GAAEF,KAAM,EAAC;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAF,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAOO,MAAMI,sBAAsB,GAAGA,CAACC,IAAU,EAAEC,MAAe,KAAa;EAC7E,IAAI,IAAAC,mBAAU,EAACF,IAAI,CAAC,EAAE,OAAO,IAAAG,eAAM,EAACH,IAAI,EAAE,cAAc,EAAE;IAAEC;EAAO,CAAC,CAAC;EACrE,OAAO,IAAAE,eAAM,EAACH,IAAI,EAAE,WAAW,EAAE;IAAEC;EAAO,CAAC,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAP,OAAA,CAAAK,sBAAA,GAAAA,sBAAA;AAOO,MAAMK,oBAAoB,GAAGA,CAACJ,IAAU,EAAEC,MAAe,KAAa;EAC3E,OAAO,IAAAE,eAAM,EAACH,IAAI,EAAE,GAAG,EAAE;IAAEC;EAAO,CAAC,CAAC;AACtC,CAAC;AAACP,OAAA,CAAAU,oBAAA,GAAAA,oBAAA"}
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getGroupChannelTitle = exports.getGroupChannelPreviewTime = exports.getGroupChannelLastMessage = void 0;
|
|
7
|
-
|
|
8
7
|
var _dateFns = require("date-fns");
|
|
9
|
-
|
|
10
8
|
var _common = require("./common");
|
|
11
|
-
|
|
12
9
|
const getGroupChannelTitle = function (currentUserId, channel) {
|
|
13
10
|
let EMPTY_USERNAME = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '(No name)';
|
|
14
11
|
let NO_MEMBERS = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '(No members)';
|
|
@@ -27,12 +24,9 @@ const getGroupChannelTitle = function (currentUserId, channel) {
|
|
|
27
24
|
return nickname || EMPTY_USERNAME;
|
|
28
25
|
}).join(', ');
|
|
29
26
|
};
|
|
30
|
-
|
|
31
27
|
exports.getGroupChannelTitle = getGroupChannelTitle;
|
|
32
|
-
|
|
33
28
|
const getGroupChannelPreviewTime = (channel, locale) => {
|
|
34
29
|
var _channel$lastMessage;
|
|
35
|
-
|
|
36
30
|
const timestamp = ((_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.createdAt) || channel.joinedAt * 1000 || channel.createdAt;
|
|
37
31
|
if ((0, _dateFns.isToday)(timestamp)) return (0, _dateFns.format)(timestamp, 'p', {
|
|
38
32
|
locale
|
|
@@ -45,18 +39,14 @@ const getGroupChannelPreviewTime = (channel, locale) => {
|
|
|
45
39
|
locale
|
|
46
40
|
});
|
|
47
41
|
};
|
|
48
|
-
|
|
49
42
|
exports.getGroupChannelPreviewTime = getGroupChannelPreviewTime;
|
|
50
|
-
|
|
51
43
|
const getGroupChannelLastMessage = function (channel) {
|
|
52
44
|
let EMPTY_MESSAGE = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
53
45
|
let MAX_LEN = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 15;
|
|
54
46
|
const message = channel.lastMessage;
|
|
55
47
|
if (!message) return EMPTY_MESSAGE;
|
|
56
|
-
|
|
57
48
|
if (message.isFileMessage()) {
|
|
58
49
|
const extIdx = message.name.lastIndexOf('.');
|
|
59
|
-
|
|
60
50
|
if (extIdx > -1) {
|
|
61
51
|
const file = message.name.slice(0, extIdx);
|
|
62
52
|
const ext = message.name.slice(extIdx);
|
|
@@ -64,22 +54,17 @@ const getGroupChannelLastMessage = function (channel) {
|
|
|
64
54
|
maxLen: MAX_LEN
|
|
65
55
|
}) + ext;
|
|
66
56
|
}
|
|
67
|
-
|
|
68
57
|
return (0, _common.truncate)(message.name, {
|
|
69
58
|
maxLen: MAX_LEN
|
|
70
59
|
});
|
|
71
60
|
}
|
|
72
|
-
|
|
73
61
|
if (message.isUserMessage()) {
|
|
74
62
|
return message.message ?? EMPTY_MESSAGE;
|
|
75
63
|
}
|
|
76
|
-
|
|
77
64
|
if (message.isAdminMessage()) {
|
|
78
65
|
return message.message ?? EMPTY_MESSAGE;
|
|
79
66
|
}
|
|
80
|
-
|
|
81
67
|
return EMPTY_MESSAGE;
|
|
82
68
|
};
|
|
83
|
-
|
|
84
69
|
exports.getGroupChannelLastMessage = getGroupChannelLastMessage;
|
|
85
70
|
//# sourceMappingURL=groupChannel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getGroupChannelTitle","currentUserId","channel","EMPTY_USERNAME","NO_MEMBERS","DEFAULT_CHANNEL_NAME","name","memberCount","members","filter","userId","map","nickname","join","getGroupChannelPreviewTime","locale","timestamp","lastMessage","createdAt","joinedAt","isToday","format","isYesterday","isThisYear","getGroupChannelLastMessage","EMPTY_MESSAGE","MAX_LEN","message","isFileMessage","extIdx","lastIndexOf","file","slice","ext","truncate","maxLen","isUserMessage","isAdminMessage"],"sources":["groupChannel.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear, isToday, isYesterday } from 'date-fns';\n\nimport type { SendbirdGroupChannel } from '../types';\nimport { truncate } from './common';\n\nexport const getGroupChannelTitle = (\n currentUserId: string,\n channel: SendbirdGroupChannel,\n EMPTY_USERNAME = '(No name)',\n NO_MEMBERS = '(No members)',\n DEFAULT_CHANNEL_NAME = 'Group Channel',\n) => {\n if (channel.name !== DEFAULT_CHANNEL_NAME && channel.name !== '') return channel.name;\n if (channel.memberCount === 1) return NO_MEMBERS;\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => nickname || EMPTY_USERNAME)\n .join(', ');\n};\n\nexport const getGroupChannelPreviewTime = (channel: SendbirdGroupChannel, locale?: Locale) => {\n const timestamp = channel.lastMessage?.createdAt || channel.joinedAt * 1000 || channel.createdAt;\n\n if (isToday(timestamp)) return format(timestamp, 'p', { locale });\n if (isYesterday(timestamp)) return 'Yesterday';\n if (isThisYear(timestamp)) return format(timestamp, 'MMM dd', { locale });\n\n return format(timestamp, 'yyyy/MM/dd', { locale });\n};\n\nexport const getGroupChannelLastMessage = (channel: SendbirdGroupChannel, EMPTY_MESSAGE = '', MAX_LEN = 15) => {\n const message = channel.lastMessage;\n if (!message) return EMPTY_MESSAGE;\n\n if (message.isFileMessage()) {\n const extIdx = message.name.lastIndexOf('.');\n if (extIdx > -1) {\n const file = message.name.slice(0, extIdx);\n const ext = message.name.slice(extIdx);\n return truncate(file, { maxLen: MAX_LEN }) + ext;\n }\n\n return truncate(message.name, { maxLen: MAX_LEN });\n }\n\n if (message.isUserMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n if (message.isAdminMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n return EMPTY_MESSAGE;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_dateFns","require","_common","getGroupChannelTitle","currentUserId","channel","EMPTY_USERNAME","arguments","length","undefined","NO_MEMBERS","DEFAULT_CHANNEL_NAME","name","memberCount","members","filter","_ref","userId","map","_ref2","nickname","join","exports","getGroupChannelPreviewTime","locale","_channel$lastMessage","timestamp","lastMessage","createdAt","joinedAt","isToday","format","isYesterday","isThisYear","getGroupChannelLastMessage","EMPTY_MESSAGE","MAX_LEN","message","isFileMessage","extIdx","lastIndexOf","file","slice","ext","truncate","maxLen","isUserMessage","isAdminMessage"],"sources":["groupChannel.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear, isToday, isYesterday } from 'date-fns';\n\nimport type { SendbirdGroupChannel } from '../types';\nimport { truncate } from './common';\n\nexport const getGroupChannelTitle = (\n currentUserId: string,\n channel: SendbirdGroupChannel,\n EMPTY_USERNAME = '(No name)',\n NO_MEMBERS = '(No members)',\n DEFAULT_CHANNEL_NAME = 'Group Channel',\n) => {\n if (channel.name !== DEFAULT_CHANNEL_NAME && channel.name !== '') return channel.name;\n if (channel.memberCount === 1) return NO_MEMBERS;\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => nickname || EMPTY_USERNAME)\n .join(', ');\n};\n\nexport const getGroupChannelPreviewTime = (channel: SendbirdGroupChannel, locale?: Locale) => {\n const timestamp = channel.lastMessage?.createdAt || channel.joinedAt * 1000 || channel.createdAt;\n\n if (isToday(timestamp)) return format(timestamp, 'p', { locale });\n if (isYesterday(timestamp)) return 'Yesterday';\n if (isThisYear(timestamp)) return format(timestamp, 'MMM dd', { locale });\n\n return format(timestamp, 'yyyy/MM/dd', { locale });\n};\n\nexport const getGroupChannelLastMessage = (channel: SendbirdGroupChannel, EMPTY_MESSAGE = '', MAX_LEN = 15) => {\n const message = channel.lastMessage;\n if (!message) return EMPTY_MESSAGE;\n\n if (message.isFileMessage()) {\n const extIdx = message.name.lastIndexOf('.');\n if (extIdx > -1) {\n const file = message.name.slice(0, extIdx);\n const ext = message.name.slice(extIdx);\n return truncate(file, { maxLen: MAX_LEN }) + ext;\n }\n\n return truncate(message.name, { maxLen: MAX_LEN });\n }\n\n if (message.isUserMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n if (message.isAdminMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n return EMPTY_MESSAGE;\n};\n"],"mappings":"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"}
|
|
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getOpenChannelTitle = exports.getOpenChannelParticipants = void 0;
|
|
7
|
-
|
|
8
7
|
const getOpenChannelTitle = function (channel) {
|
|
9
8
|
let DEFAULT_CHANNEL_NAME = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Open Channel';
|
|
10
9
|
const trimmedChannelName = channel.name.trim();
|
|
11
10
|
if (trimmedChannelName === '') return DEFAULT_CHANNEL_NAME;
|
|
12
11
|
return trimmedChannelName;
|
|
13
12
|
};
|
|
14
|
-
|
|
15
13
|
exports.getOpenChannelTitle = getOpenChannelTitle;
|
|
16
|
-
|
|
17
14
|
const getOpenChannelParticipants = channel => {
|
|
18
15
|
return `${channel.participantCount} participants`;
|
|
19
16
|
};
|
|
20
|
-
|
|
21
17
|
exports.getOpenChannelParticipants = getOpenChannelParticipants;
|
|
22
18
|
//# sourceMappingURL=openChannel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getOpenChannelTitle","channel","DEFAULT_CHANNEL_NAME","trimmedChannelName","name","trim","getOpenChannelParticipants","participantCount"],"sources":["openChannel.ts"],"sourcesContent":["import type { SendbirdOpenChannel } from '../types';\n\nexport const getOpenChannelTitle = (channel: SendbirdOpenChannel, DEFAULT_CHANNEL_NAME = 'Open Channel') => {\n const trimmedChannelName = channel.name.trim();\n if (trimmedChannelName === '') return DEFAULT_CHANNEL_NAME;\n return trimmedChannelName;\n};\n\nexport const getOpenChannelParticipants = (channel: SendbirdOpenChannel) => {\n return `${channel.participantCount} participants`;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["getOpenChannelTitle","channel","DEFAULT_CHANNEL_NAME","arguments","length","undefined","trimmedChannelName","name","trim","exports","getOpenChannelParticipants","participantCount"],"sources":["openChannel.ts"],"sourcesContent":["import type { SendbirdOpenChannel } from '../types';\n\nexport const getOpenChannelTitle = (channel: SendbirdOpenChannel, DEFAULT_CHANNEL_NAME = 'Open Channel') => {\n const trimmedChannelName = channel.name.trim();\n if (trimmedChannelName === '') return DEFAULT_CHANNEL_NAME;\n return trimmedChannelName;\n};\n\nexport const getOpenChannelParticipants = (channel: SendbirdOpenChannel) => {\n return `${channel.participantCount} participants`;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,GAAG,SAAAA,CAACC,OAA4B,EAA4C;EAAA,IAA1CC,oBAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,cAAc;EACrG,MAAMG,kBAAkB,GAAGL,OAAO,CAACM,IAAI,CAACC,IAAI,EAAE;EAC9C,IAAIF,kBAAkB,KAAK,EAAE,EAAE,OAAOJ,oBAAoB;EAC1D,OAAOI,kBAAkB;AAC3B,CAAC;AAACG,OAAA,CAAAT,mBAAA,GAAAA,mBAAA;AAEK,MAAMU,0BAA0B,GAAIT,OAA4B,IAAK;EAC1E,OAAQ,GAAEA,OAAO,CAACU,gBAAiB,eAAc;AACnD,CAAC;AAACF,OAAA,CAAAC,0BAAA,GAAAA,0BAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
|
|
2
3
|
import { useCallback, useEffect, useLayoutEffect, useReducer, useRef, useState } from 'react';
|
|
3
4
|
const idPool = {};
|
|
4
5
|
export const useUniqId = key => {
|
|
@@ -24,14 +25,11 @@ export const useAsyncLayoutEffect = (asyncEffect, deps) => {
|
|
|
24
25
|
export const useIIFE = callback => {
|
|
25
26
|
return iife(callback);
|
|
26
27
|
};
|
|
27
|
-
|
|
28
28
|
const iife = callback => callback();
|
|
29
|
-
|
|
30
29
|
const createAsyncEffectCallback = asyncEffect => () => {
|
|
31
30
|
const destructor = iife(asyncEffect);
|
|
32
31
|
return () => {
|
|
33
32
|
if (!destructor) return;
|
|
34
|
-
|
|
35
33
|
if (destructor instanceof Promise) {
|
|
36
34
|
iife(async () => {
|
|
37
35
|
const awaitedDestructor = await destructor;
|
|
@@ -42,7 +40,6 @@ const createAsyncEffectCallback = asyncEffect => () => {
|
|
|
42
40
|
}
|
|
43
41
|
};
|
|
44
42
|
};
|
|
45
|
-
|
|
46
43
|
export const useIsMountedRef = () => {
|
|
47
44
|
const isMounted = useRef(true);
|
|
48
45
|
useEffect(() => {
|
|
@@ -54,12 +51,10 @@ export const useIsMountedRef = () => {
|
|
|
54
51
|
};
|
|
55
52
|
export const useIsFirstMount = () => {
|
|
56
53
|
const isFirstMount = useRef(true);
|
|
57
|
-
|
|
58
54
|
if (isFirstMount.current) {
|
|
59
55
|
isFirstMount.current = false;
|
|
60
56
|
return true;
|
|
61
57
|
}
|
|
62
|
-
|
|
63
58
|
return isFirstMount.current;
|
|
64
59
|
};
|
|
65
60
|
export const useFreshCallback = callback => {
|
|
@@ -89,7 +84,8 @@ export const useDebounceEffect = function (action, delay) {
|
|
|
89
84
|
}, [delay, ...deps]);
|
|
90
85
|
};
|
|
91
86
|
export const usePartialState = initialState => {
|
|
92
|
-
return useReducer((prev, state) => ({
|
|
87
|
+
return useReducer((prev, state) => ({
|
|
88
|
+
...prev,
|
|
93
89
|
...state
|
|
94
90
|
}), initialState);
|
|
95
91
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useLayoutEffect","useReducer","useRef","useState","idPool","useUniqId","key","useUniqHandlerId","name","id","useForceUpdate","updater","prev","useAsyncEffect","asyncEffect","deps","createAsyncEffectCallback","useAsyncLayoutEffect","useIIFE","callback","iife","destructor","Promise","awaitedDestructor","useIsMountedRef","isMounted","current","useIsFirstMount","isFirstMount","useFreshCallback","ref","useDebounceEffect","action","delay","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useLayoutEffect","useReducer","useRef","useState","idPool","useUniqId","key","useUniqHandlerId","name","id","useForceUpdate","updater","prev","useAsyncEffect","asyncEffect","deps","createAsyncEffectCallback","useAsyncLayoutEffect","useIIFE","callback","iife","destructor","Promise","awaitedDestructor","useIsMountedRef","isMounted","current","useIsFirstMount","isFirstMount","useFreshCallback","ref","arguments","useDebounceEffect","action","delay","length","undefined","timeoutRef","setTimeout","clearTimeout","usePartialState","initialState","state"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useReducer, useRef, useState } from 'react';\n\ntype Destructor = () => void;\ntype AsyncEffectCallback = () => void | Destructor | Promise<void> | Promise<Destructor>;\n\nconst idPool: { [key: string]: number } = {};\nexport const useUniqId = (key: string) => {\n return useState(() => {\n if (!idPool[key]) idPool[key] = 1;\n return idPool[key]++;\n })[0];\n};\n\nexport const useUniqHandlerId = (name: string) => {\n const id = useUniqId(name);\n return `${name}_${id}`;\n};\n\nexport const useForceUpdate = () => {\n const [, updater] = useState(0);\n return useCallback(() => updater((prev) => prev + 1), []);\n};\n\nexport const useAsyncEffect = (asyncEffect: AsyncEffectCallback, deps?: DependencyList) => {\n useEffect(createAsyncEffectCallback(asyncEffect), deps);\n};\nexport const useAsyncLayoutEffect = (asyncEffect: AsyncEffectCallback, deps?: DependencyList) => {\n useLayoutEffect(createAsyncEffectCallback(asyncEffect), deps);\n};\nexport const useIIFE = <T>(callback: () => T) => {\n return iife(callback);\n};\nconst iife = <T extends (...args: any[]) => any>(callback: T): ReturnType<T> => callback();\nconst createAsyncEffectCallback = (asyncEffect: AsyncEffectCallback) => () => {\n const destructor = iife(asyncEffect);\n return () => {\n if (!destructor) return;\n\n if (destructor instanceof Promise) {\n iife(async () => {\n const awaitedDestructor = await destructor;\n if (awaitedDestructor) awaitedDestructor();\n });\n } else {\n iife(destructor);\n }\n };\n};\n\nexport const useIsMountedRef = () => {\n const isMounted = useRef(true);\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n\nexport const useIsFirstMount = () => {\n const isFirstMount = useRef(true);\n\n if (isFirstMount.current) {\n isFirstMount.current = false;\n return true;\n }\n\n return isFirstMount.current;\n};\n\nexport const useFreshCallback = <T extends (...args: any[]) => any>(callback: T): T => {\n const ref = useRef<T>(callback);\n ref.current = callback;\n return useCallback(((...args) => ref.current(...args)) as T, []);\n};\n\nexport const useDebounceEffect = (action: () => void, delay: number, deps: DependencyList = []) => {\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n timeoutRef.current = setTimeout(async () => {\n try {\n await action();\n } finally {\n timeoutRef.current = undefined;\n }\n }, delay);\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n };\n }, [delay, ...deps]);\n};\n\nexport const usePartialState = <S>(initialState: S) => {\n return useReducer((prev: S, state: Partial<S>) => ({ ...prev, ...state }), initialState);\n};\n"],"mappings":"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"}
|
|
@@ -20,13 +20,13 @@ export const useAppState = (type, listener) => {
|
|
|
20
20
|
callbackRef.current = listener;
|
|
21
21
|
useEffect(() => {
|
|
22
22
|
const eventListener = state => callbackRef.current(state);
|
|
23
|
-
|
|
24
23
|
const subscriber = AppState.addEventListener(type, eventListener);
|
|
25
24
|
return () => {
|
|
26
25
|
// @ts-ignore
|
|
27
26
|
if (subscriber !== null && subscriber !== void 0 && subscriber.remove) {
|
|
28
27
|
subscriber.remove();
|
|
29
|
-
}
|
|
28
|
+
}
|
|
29
|
+
// @ts-ignore
|
|
30
30
|
else if (AppState.removeEventListener) {
|
|
31
31
|
// @ts-ignore
|
|
32
32
|
AppState.removeEventListener(type, eventListener);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","AppState","useSafeAreaInsets","edgePaddingMap","left","right","top","bottom","useSafeAreaPadding","edges","safeAreaInsets","reduce","map","edge","paddingKey","useAppState","type","listener","callbackRef","current","eventListener","state","subscriber","addEventListener","remove","removeEventListener"],"sources":["react-native.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { AppState, AppStateEvent, AppStateStatus } from 'react-native';\nimport { EdgeInsets, useSafeAreaInsets } from 'react-native-safe-area-context';\n\ntype EdgePaddingMap = {\n left: 'paddingLeft';\n right: 'paddingRight';\n top: 'paddingTop';\n bottom: 'paddingBottom';\n};\nconst edgePaddingMap: EdgePaddingMap = {\n left: 'paddingLeft',\n right: 'paddingRight',\n top: 'paddingTop',\n bottom: 'paddingBottom',\n};\n\nexport const useSafeAreaPadding = <\n T extends keyof EdgeInsets,\n Result extends { [key in EdgePaddingMap[T]]: EdgeInsets[T] },\n>(\n edges: T[],\n): Result => {\n const safeAreaInsets = useSafeAreaInsets();\n return edges.reduce((map, edge) => {\n const paddingKey = edgePaddingMap[edge];\n map[paddingKey] = safeAreaInsets[edge];\n return map;\n }, {} as { [key in EdgePaddingMap[T]]: EdgeInsets[T] }) as Result;\n};\n\ntype AppStateListener = (status: AppStateStatus) => void;\n\nexport const useAppState = (type: AppStateEvent, listener: AppStateListener) => {\n const callbackRef = useRef<AppStateListener>(listener);\n callbackRef.current = listener;\n\n useEffect(() => {\n const eventListener = (state: AppStateStatus) => callbackRef.current(state);\n const subscriber = AppState.addEventListener(type, eventListener);\n\n return () => {\n // @ts-ignore\n if (subscriber?.remove) {\n subscriber.remove();\n }\n // @ts-ignore\n else if (AppState.removeEventListener) {\n // @ts-ignore\n AppState.removeEventListener(type, eventListener);\n }\n };\n }, []);\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","AppState","useSafeAreaInsets","edgePaddingMap","left","right","top","bottom","useSafeAreaPadding","edges","safeAreaInsets","reduce","map","edge","paddingKey","useAppState","type","listener","callbackRef","current","eventListener","state","subscriber","addEventListener","remove","removeEventListener"],"sources":["react-native.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { AppState, AppStateEvent, AppStateStatus } from 'react-native';\nimport { EdgeInsets, useSafeAreaInsets } from 'react-native-safe-area-context';\n\ntype EdgePaddingMap = {\n left: 'paddingLeft';\n right: 'paddingRight';\n top: 'paddingTop';\n bottom: 'paddingBottom';\n};\nconst edgePaddingMap: EdgePaddingMap = {\n left: 'paddingLeft',\n right: 'paddingRight',\n top: 'paddingTop',\n bottom: 'paddingBottom',\n};\n\nexport const useSafeAreaPadding = <\n T extends keyof EdgeInsets,\n Result extends { [key in EdgePaddingMap[T]]: EdgeInsets[T] },\n>(\n edges: T[],\n): Result => {\n const safeAreaInsets = useSafeAreaInsets();\n return edges.reduce((map, edge) => {\n const paddingKey = edgePaddingMap[edge];\n map[paddingKey] = safeAreaInsets[edge];\n return map;\n }, {} as { [key in EdgePaddingMap[T]]: EdgeInsets[T] }) as Result;\n};\n\ntype AppStateListener = (status: AppStateStatus) => void;\n\nexport const useAppState = (type: AppStateEvent, listener: AppStateListener) => {\n const callbackRef = useRef<AppStateListener>(listener);\n callbackRef.current = listener;\n\n useEffect(() => {\n const eventListener = (state: AppStateStatus) => callbackRef.current(state);\n const subscriber = AppState.addEventListener(type, eventListener);\n\n return () => {\n // @ts-ignore\n if (subscriber?.remove) {\n subscriber.remove();\n }\n // @ts-ignore\n else if (AppState.removeEventListener) {\n // @ts-ignore\n AppState.removeEventListener(type, eventListener);\n }\n };\n }, []);\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAuC,cAAc;AACtE,SAAqBC,iBAAiB,QAAQ,gCAAgC;AAQ9E,MAAMC,cAA8B,GAAG;EACrCC,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,cAAc;EACrBC,GAAG,EAAE,YAAY;EACjBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAI7BC,KAAU,IACC;EACX,MAAMC,cAAc,GAAGR,iBAAiB,EAAE;EAC1C,OAAOO,KAAK,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;IACjC,MAAMC,UAAU,GAAGX,cAAc,CAACU,IAAI,CAAC;IACvCD,GAAG,CAACE,UAAU,CAAC,GAAGJ,cAAc,CAACG,IAAI,CAAC;IACtC,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAkD;AACzD,CAAC;AAID,OAAO,MAAMG,WAAW,GAAGA,CAACC,IAAmB,EAAEC,QAA0B,KAAK;EAC9E,MAAMC,WAAW,GAAGlB,MAAM,CAAmBiB,QAAQ,CAAC;EACtDC,WAAW,CAACC,OAAO,GAAGF,QAAQ;EAE9BlB,SAAS,CAAC,MAAM;IACd,MAAMqB,aAAa,GAAIC,KAAqB,IAAKH,WAAW,CAACC,OAAO,CAACE,KAAK,CAAC;IAC3E,MAAMC,UAAU,GAAGrB,QAAQ,CAACsB,gBAAgB,CAACP,IAAI,EAAEI,aAAa,CAAC;IAEjE,OAAO,MAAM;MACX;MACA,IAAIE,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEE,MAAM,EAAE;QACtBF,UAAU,CAACE,MAAM,EAAE;MACrB;MACA;MAAA,KACK,IAAIvB,QAAQ,CAACwB,mBAAmB,EAAE;QACrC;QACAxB,QAAQ,CAACwB,mBAAmB,CAACT,IAAI,EAAEI,aAAa,CAAC;MACnD;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { Logger } from './shared/logger';
|
|
2
2
|
export { default as arrayToMap, arrayToMapWithGetter } from './shared/arrayToMap';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
3
|
+
export * from './shared/regex';
|
|
4
|
+
export * from './shared/bufferedRequest';
|
|
5
|
+
export * from './shared/file';
|
|
6
6
|
export * from './shared';
|
|
7
7
|
export * from './hooks';
|
|
8
8
|
export * from './hooks/react-native';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Logger","default","arrayToMap","arrayToMapWithGetter","
|
|
1
|
+
{"version":3,"names":["Logger","default","arrayToMap","arrayToMapWithGetter","NOOP","ASYNC_NOOP","PASS","val","toMegabyte","byte","isFunction","param","ifThenOr","cond","then","or","SBErrorCode","NON_AUTHORIZED","CHANNEL_NOT_FOUND_SERVER","CHANNEL_NOT_FOUND_SDK","SBErrorMessage","ACL"],"sources":["index.ts"],"sourcesContent":["export { Logger } from './shared/logger';\nexport { default as arrayToMap, arrayToMapWithGetter } from './shared/arrayToMap';\nexport * from './shared/regex';\nexport * from './shared/bufferedRequest';\nexport * from './shared/file';\nexport * from './shared';\n\nexport * from './hooks';\nexport * from './hooks/react-native';\nexport * from './ui-format/groupChannel';\nexport * from './ui-format/openChannel';\nexport * from './ui-format/common';\nexport * from './sendbird/channel';\nexport * from './sendbird/message';\nexport * from './sendbird/attrs';\nexport * from './sendbird/user';\n\nexport const NOOP: () => void = () => void 0;\nexport const ASYNC_NOOP = async () => void 0;\nexport const PASS = <T>(val: T) => val;\nexport const toMegabyte = (byte: number) => byte / 1024 / 1024;\nexport const isFunction = (param?: unknown): param is Function => typeof param === 'function';\n\nexport function ifThenOr<T>(cond: boolean, then: T): T | undefined;\nexport function ifThenOr<T, V>(cond: boolean, then: T, or: V): T | V;\nexport function ifThenOr(cond: boolean, then: unknown, or?: unknown) {\n if (cond) return then;\n return or;\n}\n\nexport const SBErrorCode = {\n NON_AUTHORIZED: 400108,\n CHANNEL_NOT_FOUND_SERVER: 400201,\n CHANNEL_NOT_FOUND_SDK: 900500,\n};\nexport const SBErrorMessage = {\n ACL:\n 'Sendbird provides various access control options when using the Chat SDK.\\n' +\n 'By default, the Allow retrieving user list attribute is turned on to facilitate creating sample apps.\\n' +\n 'However, this may grant access to unwanted data or operations, leading to potential security concerns.\\n' +\n 'To manage your access control settings, you can turn on or off each setting on Sendbird Dashboard.',\n};\n\nexport type {\n UserStruct,\n FilterByValueType,\n UnionToIntersection,\n OmittedValues,\n PartialDeep,\n Optional,\n ContextValue,\n OnBeforeHandler,\n SendbirdMessage,\n SendbirdChatSDK,\n SendbirdChannel,\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdOpenChannel,\n SendbirdUser,\n SendbirdMember,\n SendbirdBaseMessage,\n SendbirdUserMessage,\n SendbirdFileMessage,\n SendbirdAdminMessage,\n SendbirdGroupChannelCreateParams,\n SendbirdFileMessageCreateParams,\n SendbirdUserMessageCreateParams,\n SendbirdError,\n SendbirdMessageCollection,\n SendbirdGroupChannelCollection,\n NotificationFiles,\n NotificationMentionedUsers,\n NotificationTranslations,\n PartialNullable,\n SendbirdDataPayload,\n SendbirdPreviousMessageListQuery,\n SendbirdSendableMessage,\n SendbirdOpenChannelListQuery,\n SendbirdGroupChannelListQuery,\n SendbirdGroupChannelUpdateParams,\n SendbirdUserMessageUpdateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdUserUpdateParams,\n SendbirdRestrictedUser,\n SendbirdReaction,\n SendbirdEmojiContainer,\n SendbirdEmoji,\n SendbirdEmojiCategory,\n SendbirdOpenChannelUpdateParams,\n SendbirdOpenChannelCreateParams,\n SendbirdParticipant,\n} from './types';\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AACxC,SAASC,OAAO,IAAIC,UAAU,EAAEC,oBAAoB,QAAQ,qBAAqB;AACjF,cAAc,gBAAgB;AAC9B,cAAc,0BAA0B;AACxC,cAAc,eAAe;AAC7B,cAAc,UAAU;AAExB,cAAc,SAAS;AACvB,cAAc,sBAAsB;AACpC,cAAc,0BAA0B;AACxC,cAAc,yBAAyB;AACvC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,kBAAkB;AAChC,cAAc,iBAAiB;AAE/B,OAAO,MAAMC,IAAgB,GAAGA,CAAA,KAAM,KAAK,CAAC;AAC5C,OAAO,MAAMC,UAAU,GAAG,MAAAA,CAAA,KAAY,KAAK,CAAC;AAC5C,OAAO,MAAMC,IAAI,GAAOC,GAAM,IAAKA,GAAG;AACtC,OAAO,MAAMC,UAAU,GAAIC,IAAY,IAAKA,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D,OAAO,MAAMC,UAAU,GAAIC,KAAe,IAAwB,OAAOA,KAAK,KAAK,UAAU;AAI7F,OAAO,SAASC,QAAQA,CAACC,IAAa,EAAEC,IAAa,EAAEC,EAAY,EAAE;EACnE,IAAIF,IAAI,EAAE,OAAOC,IAAI;EACrB,OAAOC,EAAE;AACX;AAEA,OAAO,MAAMC,WAAW,GAAG;EACzBC,cAAc,EAAE,MAAM;EACtBC,wBAAwB,EAAE,MAAM;EAChCC,qBAAqB,EAAE;AACzB,CAAC;AACD,OAAO,MAAMC,cAAc,GAAG;EAC5BC,GAAG,EACD,6EAA6E,GAC7E,yGAAyG,GACzG,0GAA0G,GAC1G;AACJ,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export let ApplicationAttributes
|
|
2
|
-
|
|
3
|
-
(function (ApplicationAttributes) {
|
|
1
|
+
export let ApplicationAttributes = /*#__PURE__*/function (ApplicationAttributes) {
|
|
4
2
|
ApplicationAttributes["reactions"] = "reactions";
|
|
5
3
|
ApplicationAttributes["message_search_v3"] = "message_search_v3";
|
|
6
4
|
ApplicationAttributes["enable_og_tag"] = "enable_og_tag";
|
|
@@ -26,11 +24,9 @@ export let ApplicationAttributes;
|
|
|
26
24
|
ApplicationAttributes["allow_group_channel_delete_from_sdk"] = "allow_group_channel_delete_from_sdk";
|
|
27
25
|
ApplicationAttributes["allow_operators_to_ban_operators"] = "allow_operators_to_ban_operators";
|
|
28
26
|
ApplicationAttributes["allow_operators_to_edit_operators"] = "allow_operators_to_edit_operators";
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
export let PremiumFeatures
|
|
32
|
-
|
|
33
|
-
(function (PremiumFeatures) {
|
|
27
|
+
return ApplicationAttributes;
|
|
28
|
+
}({});
|
|
29
|
+
export let PremiumFeatures = /*#__PURE__*/function (PremiumFeatures) {
|
|
34
30
|
PremiumFeatures["reactions"] = "reactions";
|
|
35
31
|
PremiumFeatures["moderation_group"] = "moderation_group";
|
|
36
32
|
PremiumFeatures["message_search_v3"] = "message_search_v3";
|
|
@@ -45,5 +41,6 @@ export let PremiumFeatures;
|
|
|
45
41
|
PremiumFeatures["desk"] = "desk";
|
|
46
42
|
PremiumFeatures["bot_interface"] = "bot_interface";
|
|
47
43
|
PremiumFeatures["auto_trans"] = "auto_trans";
|
|
48
|
-
|
|
44
|
+
return PremiumFeatures;
|
|
45
|
+
}({});
|
|
49
46
|
//# sourceMappingURL=attrs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ApplicationAttributes","PremiumFeatures"],"sources":["attrs.ts"],"sourcesContent":["export enum ApplicationAttributes {\n reactions = 'reactions',\n message_search_v3 = 'message_search_v3',\n enable_og_tag = 'enable_og_tag',\n use_last_seen_at = 'use_last_seen_at',\n enable_message_threading = 'enable_message_threading',\n allow_message_update_from_sdk = 'allow_message_update_from_sdk',\n allow_group_channel_create_from_sdk = 'allow_group_channel_create_from_sdk',\n allow_migration_api = 'allow_migration_api',\n allow_only_operator_sdk_to_update_group_channel_image = 'allow_only_operator_sdk_to_update_group_channel_image',\n allow_user_update_from_sdk = 'allow_user_update_from_sdk',\n allow_broadcast_channel = 'allow_broadcast_channel',\n allow_sdk_file_message_urls = 'allow_sdk_file_message_urls',\n allow_group_channel_leave_from_sdk = 'allow_group_channel_leave_from_sdk',\n allow_user_list_from_sdk = 'allow_user_list_from_sdk',\n allow_group_channel_invite_from_sdk = 'allow_group_channel_invite_from_sdk',\n allow_only_operator_sdk_to_update_group_channel_name = 'allow_only_operator_sdk_to_update_group_channel_name',\n allow_group_channel_update_from_sdk = 'allow_group_channel_update_from_sdk',\n allow_super_group_channel = 'allow_super_group_channel',\n allow_non_operators_to_mention_channel = 'allow_non_operators_to_mention_channel',\n allow_file_messages_from_sdk = 'allow_file_messages_from_sdk',\n allow_open_channel_create_from_sdk = 'allow_open_channel_create_from_sdk',\n allow_anonymous_message_update = 'allow_anonymous_message_update',\n allow_group_channel_delete_from_sdk = 'allow_group_channel_delete_from_sdk',\n allow_operators_to_ban_operators = 'allow_operators_to_ban_operators',\n allow_operators_to_edit_operators = 'allow_operators_to_edit_operators',\n}\n\nexport enum PremiumFeatures {\n reactions = 'reactions',\n moderation_group = 'moderation_group',\n message_search_v3 = 'message_search_v3',\n data_export = 'data_export',\n migration = 'migration',\n delivery_receipt = 'delivery_receipt',\n auto_thumbnail = 'auto_thumbnail',\n image_moderation = 'image_moderation',\n super_group_channel = 'super_group_channel',\n announcement = 'announcement',\n moderation_open = 'moderation_open',\n desk = 'desk',\n bot_interface = 'bot_interface',\n auto_trans = 'auto_trans',\n}\n"],"mappings":"AAAA,WAAYA,
|
|
1
|
+
{"version":3,"names":["ApplicationAttributes","PremiumFeatures"],"sources":["attrs.ts"],"sourcesContent":["export enum ApplicationAttributes {\n reactions = 'reactions',\n message_search_v3 = 'message_search_v3',\n enable_og_tag = 'enable_og_tag',\n use_last_seen_at = 'use_last_seen_at',\n enable_message_threading = 'enable_message_threading',\n allow_message_update_from_sdk = 'allow_message_update_from_sdk',\n allow_group_channel_create_from_sdk = 'allow_group_channel_create_from_sdk',\n allow_migration_api = 'allow_migration_api',\n allow_only_operator_sdk_to_update_group_channel_image = 'allow_only_operator_sdk_to_update_group_channel_image',\n allow_user_update_from_sdk = 'allow_user_update_from_sdk',\n allow_broadcast_channel = 'allow_broadcast_channel',\n allow_sdk_file_message_urls = 'allow_sdk_file_message_urls',\n allow_group_channel_leave_from_sdk = 'allow_group_channel_leave_from_sdk',\n allow_user_list_from_sdk = 'allow_user_list_from_sdk',\n allow_group_channel_invite_from_sdk = 'allow_group_channel_invite_from_sdk',\n allow_only_operator_sdk_to_update_group_channel_name = 'allow_only_operator_sdk_to_update_group_channel_name',\n allow_group_channel_update_from_sdk = 'allow_group_channel_update_from_sdk',\n allow_super_group_channel = 'allow_super_group_channel',\n allow_non_operators_to_mention_channel = 'allow_non_operators_to_mention_channel',\n allow_file_messages_from_sdk = 'allow_file_messages_from_sdk',\n allow_open_channel_create_from_sdk = 'allow_open_channel_create_from_sdk',\n allow_anonymous_message_update = 'allow_anonymous_message_update',\n allow_group_channel_delete_from_sdk = 'allow_group_channel_delete_from_sdk',\n allow_operators_to_ban_operators = 'allow_operators_to_ban_operators',\n allow_operators_to_edit_operators = 'allow_operators_to_edit_operators',\n}\n\nexport enum PremiumFeatures {\n reactions = 'reactions',\n moderation_group = 'moderation_group',\n message_search_v3 = 'message_search_v3',\n data_export = 'data_export',\n migration = 'migration',\n delivery_receipt = 'delivery_receipt',\n auto_thumbnail = 'auto_thumbnail',\n image_moderation = 'image_moderation',\n super_group_channel = 'super_group_channel',\n announcement = 'announcement',\n moderation_open = 'moderation_open',\n desk = 'desk',\n bot_interface = 'bot_interface',\n auto_trans = 'auto_trans',\n}\n"],"mappings":"AAAA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AA4BjC,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BufferedRequest","isDifferentChannel","a","b","url","getGroupChannelChatAvailableState","channel","isOperator","myRole","frozen","isFrozen","muted","myMutedState","disabled","getOpenChannelChatAvailableState","userId","getMyMutedInfo","isMuted","confirmAndMarkAsRead","channels","filter","it","isGroupChannel","unreadMessageCount","forEach","markAsRead","push","confirmAndMarkAsDelivered","markAsDelivered","isDefaultCoverImage","coverUrl","startsWith","getMembersExcludeMe","currentUserId","members","m","getGroupChannels","c","getOpenChannels","isOpenChannel","getChannelUniqId","getDefaultGroupChannelCreateParams","params","createParams","name","isDistinct","invitedUserIds","operatorUserIds"],"sources":["channel.ts"],"sourcesContent":["import { BufferedRequest } from '../shared/bufferedRequest';\nimport type {\n SendbirdBaseChannel,\n SendbirdChannel,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdOpenChannel,\n} from '../types';\n\n/**\n * Diff utils for channel\n * @param {SendbirdBaseChannel} [a]\n * @param {SendbirdBaseChannel} [b]\n * @returns {boolean}\n * */\nexport function isDifferentChannel<T extends SendbirdBaseChannel>(a?: T, b?: T): boolean {\n if (!a || !b) return true;\n return a.url !== b.url;\n}\n\nexport const getGroupChannelChatAvailableState = (channel: SendbirdGroupChannel) => {\n const isOperator = channel.myRole === 'operator';\n const frozen = channel.isFrozen && !isOperator;\n const muted = channel.myMutedState === 'muted';\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const getOpenChannelChatAvailableState = async (channel: SendbirdOpenChannel, userId: string) => {\n const isOperator = channel.isOperator(userId);\n const frozen = channel.isFrozen && !isOperator;\n const muted = (await channel.getMyMutedInfo()).isMuted;\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const confirmAndMarkAsRead = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsRead.push(() => it.markAsRead(), it.url));\n};\n\nexport const confirmAndMarkAsDelivered = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsDelivered.push(() => it.markAsDelivered(), it.url));\n};\n\nexport function isDefaultCoverImage(coverUrl: string) {\n return coverUrl === '' || coverUrl.startsWith('https://static.sendbird.com/sample/cover');\n}\n\nexport function getMembersExcludeMe(channel: SendbirdGroupChannel, currentUserId?: string) {\n return channel.members.filter((m) => m.userId !== currentUserId);\n}\n\nexport function getGroupChannels(channels: SendbirdChannel[]): SendbirdGroupChannel[] {\n return channels.filter((c): c is SendbirdGroupChannel => c.isGroupChannel());\n}\n\nexport function getOpenChannels(channels: SendbirdChannel[]): SendbirdOpenChannel[] {\n return channels.filter((c): c is SendbirdOpenChannel => c.isOpenChannel());\n}\n\nexport function getChannelUniqId(channel: SendbirdChannel) {\n return channel.url;\n}\n\nexport function getDefaultGroupChannelCreateParams(params: {\n invitedUserIds: string[];\n currentUserId?: string;\n}): SendbirdGroupChannelCreateParams {\n const createParams: SendbirdGroupChannelCreateParams = {\n name: '',\n coverUrl: '',\n isDistinct: false,\n invitedUserIds: params.invitedUserIds,\n };\n\n if (params.currentUserId) createParams.operatorUserIds = [params.currentUserId];\n\n return createParams;\n}\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["BufferedRequest","isDifferentChannel","a","b","url","getGroupChannelChatAvailableState","channel","isOperator","myRole","frozen","isFrozen","muted","myMutedState","disabled","getOpenChannelChatAvailableState","userId","getMyMutedInfo","isMuted","confirmAndMarkAsRead","channels","filter","it","isGroupChannel","unreadMessageCount","forEach","markAsRead","push","confirmAndMarkAsDelivered","markAsDelivered","isDefaultCoverImage","coverUrl","startsWith","getMembersExcludeMe","currentUserId","members","m","getGroupChannels","c","getOpenChannels","isOpenChannel","getChannelUniqId","getDefaultGroupChannelCreateParams","params","createParams","name","isDistinct","invitedUserIds","operatorUserIds"],"sources":["channel.ts"],"sourcesContent":["import { BufferedRequest } from '../shared/bufferedRequest';\nimport type {\n SendbirdBaseChannel,\n SendbirdChannel,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdOpenChannel,\n} from '../types';\n\n/**\n * Diff utils for channel\n * @param {SendbirdBaseChannel} [a]\n * @param {SendbirdBaseChannel} [b]\n * @returns {boolean}\n * */\nexport function isDifferentChannel<T extends SendbirdBaseChannel>(a?: T, b?: T): boolean {\n if (!a || !b) return true;\n return a.url !== b.url;\n}\n\nexport const getGroupChannelChatAvailableState = (channel: SendbirdGroupChannel) => {\n const isOperator = channel.myRole === 'operator';\n const frozen = channel.isFrozen && !isOperator;\n const muted = channel.myMutedState === 'muted';\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const getOpenChannelChatAvailableState = async (channel: SendbirdOpenChannel, userId: string) => {\n const isOperator = channel.isOperator(userId);\n const frozen = channel.isFrozen && !isOperator;\n const muted = (await channel.getMyMutedInfo()).isMuted;\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const confirmAndMarkAsRead = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsRead.push(() => it.markAsRead(), it.url));\n};\n\nexport const confirmAndMarkAsDelivered = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsDelivered.push(() => it.markAsDelivered(), it.url));\n};\n\nexport function isDefaultCoverImage(coverUrl: string) {\n return coverUrl === '' || coverUrl.startsWith('https://static.sendbird.com/sample/cover');\n}\n\nexport function getMembersExcludeMe(channel: SendbirdGroupChannel, currentUserId?: string) {\n return channel.members.filter((m) => m.userId !== currentUserId);\n}\n\nexport function getGroupChannels(channels: SendbirdChannel[]): SendbirdGroupChannel[] {\n return channels.filter((c): c is SendbirdGroupChannel => c.isGroupChannel());\n}\n\nexport function getOpenChannels(channels: SendbirdChannel[]): SendbirdOpenChannel[] {\n return channels.filter((c): c is SendbirdOpenChannel => c.isOpenChannel());\n}\n\nexport function getChannelUniqId(channel: SendbirdChannel) {\n return channel.url;\n}\n\nexport function getDefaultGroupChannelCreateParams(params: {\n invitedUserIds: string[];\n currentUserId?: string;\n}): SendbirdGroupChannelCreateParams {\n const createParams: SendbirdGroupChannelCreateParams = {\n name: '',\n coverUrl: '',\n isDistinct: false,\n invitedUserIds: params.invitedUserIds,\n };\n\n if (params.currentUserId) createParams.operatorUserIds = [params.currentUserId];\n\n return createParams;\n}\n"],"mappings":"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"}
|