stream-chat-react-native-core 5.6.0-beta.1 → 5.6.0-beta.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/lib/commonjs/components/Channel/Channel.js +22 -16
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +1 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js +51 -22
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js +46 -1
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient_v4.js +112 -0
- package/lib/commonjs/store/QuickSqliteClient_v4.js.map +1 -0
- package/lib/commonjs/store/apis/getAppSettings.js +23 -0
- package/lib/commonjs/store/apis/getAppSettings.js.map +1 -0
- package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -1
- package/lib/commonjs/store/apis/index.js +26 -0
- package/lib/commonjs/store/apis/index.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/upsertAppSettings.js +26 -0
- package/lib/commonjs/store/apis/upsertAppSettings.js.map +1 -0
- package/lib/commonjs/store/schema.js +1 -0
- package/lib/commonjs/store/schema.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +22 -16
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +1 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js +51 -22
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js +46 -1
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/QuickSqliteClient_v4.js +112 -0
- package/lib/module/store/QuickSqliteClient_v4.js.map +1 -0
- package/lib/module/store/apis/getAppSettings.js +23 -0
- package/lib/module/store/apis/getAppSettings.js.map +1 -0
- package/lib/module/store/apis/getPendingTasks.js.map +1 -1
- package/lib/module/store/apis/index.js +26 -0
- package/lib/module/store/apis/index.js.map +1 -1
- package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/module/store/apis/upsertAppSettings.js +26 -0
- package/lib/module/store/apis/upsertAppSettings.js.map +1 -0
- package/lib/module/store/schema.js +1 -0
- package/lib/module/store/schema.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +2 -2
- package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts +1 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -1
- package/lib/typescript/store/QuickSqliteClient.d.ts +4 -1
- package/lib/typescript/store/QuickSqliteClient_v4.d.ts +12 -0
- package/lib/typescript/store/apis/getAppSettings.d.ts +4 -0
- package/lib/typescript/store/apis/getPendingTasks.d.ts +1 -1
- package/lib/typescript/store/apis/index.d.ts +2 -0
- package/lib/typescript/store/apis/upsertAppSettings.d.ts +6 -0
- package/lib/typescript/store/schema.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/Attachment/__tests__/Gallery.test.js +9 -2
- package/src/components/Attachment/__tests__/Giphy.test.js +9 -5
- package/src/components/Channel/Channel.tsx +8 -1
- package/src/components/Chat/Chat.tsx +1 -1
- package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +1 -0
- package/src/components/Chat/hooks/useAppSettings.ts +19 -6
- package/src/components/Chat/hooks/useIsOnline.ts +1 -1
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +29 -15
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +12 -6
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +9 -4
- package/src/contexts/chatContext/ChatContext.tsx +1 -1
- package/src/contexts/messageInputContext/__tests__/MessageInputContext.test.tsx +8 -3
- package/src/contexts/messageInputContext/__tests__/uploadFile.test.tsx +16 -6
- package/src/store/QuickSqliteClient.ts +49 -5
- package/src/store/QuickSqliteClient_v4.ts +98 -0
- package/src/store/apis/getAppSettings.ts +19 -0
- package/src/store/apis/getPendingTasks.ts +2 -1
- package/src/store/apis/index.ts +2 -0
- package/src/store/apis/queries/selectChannels.ts +4 -1
- package/src/store/apis/queries/selectMembersForChannels.ts +1 -1
- package/src/store/apis/queries/selectMessagesForChannels.ts +1 -1
- package/src/store/apis/queries/selectReactionsForMessages.ts +1 -1
- package/src/store/apis/queries/selectReadsForChannels.ts +1 -1
- package/src/store/apis/upsertAppSettings.ts +23 -0
- package/src/store/schema.ts +2 -0
- package/src/version.json +1 -1
|
@@ -80,6 +80,19 @@ Object.keys(_getAllChannelIds).forEach(function (key) {
|
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
|
|
83
|
+
var _getAppSettings = require("./getAppSettings");
|
|
84
|
+
|
|
85
|
+
Object.keys(_getAppSettings).forEach(function (key) {
|
|
86
|
+
if (key === "default" || key === "__esModule") return;
|
|
87
|
+
if (key in exports && exports[key] === _getAppSettings[key]) return;
|
|
88
|
+
Object.defineProperty(exports, key, {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
get: function get() {
|
|
91
|
+
return _getAppSettings[key];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
83
96
|
var _getChannelMessages = require("./getChannelMessages");
|
|
84
97
|
|
|
85
98
|
Object.keys(_getChannelMessages).forEach(function (key) {
|
|
@@ -184,6 +197,19 @@ Object.keys(_updateReaction).forEach(function (key) {
|
|
|
184
197
|
});
|
|
185
198
|
});
|
|
186
199
|
|
|
200
|
+
var _upsertAppSettings = require("./upsertAppSettings");
|
|
201
|
+
|
|
202
|
+
Object.keys(_upsertAppSettings).forEach(function (key) {
|
|
203
|
+
if (key === "default" || key === "__esModule") return;
|
|
204
|
+
if (key in exports && exports[key] === _upsertAppSettings[key]) return;
|
|
205
|
+
Object.defineProperty(exports, key, {
|
|
206
|
+
enumerable: true,
|
|
207
|
+
get: function get() {
|
|
208
|
+
return _upsertAppSettings[key];
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
|
|
187
213
|
var _upsertChannelData = require("./upsertChannelData");
|
|
188
214
|
|
|
189
215
|
Object.keys(_upsertChannelData).forEach(function (key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"]}
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getAppSettings';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertAppSettings';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectChannels.ts"],"names":["selectChannels","channelIds","query","cid","undefined","result","QuickSqliteClient","executeSql","apply","sort","a","b","indexOf"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAE0C;AAAA,iFAAzC,EAAyC;AAAA,MADtEC,UACsE,QADtEA,UACsE;;AACtE,MAAMC,KAAK,GAAG,0CACZ,UADY,EAEZ,CAAC,GAAD,CAFY,EAGZD,UAAU,GACN;AACEE,IAAAA,GAAG,EAAEF;AADP,GADM,GAING,SAPQ,CAAd;;AAUA,MAAMC,MAAM,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCN,KAAzC,CAAf;;AAEA,MAAID,UAAJ,EAAgB;AACd,WAAOI,MAAM,CAACI,IAAP,
|
|
1
|
+
{"version":3,"sources":["selectChannels.ts"],"names":["selectChannels","channelIds","query","cid","undefined","result","QuickSqliteClient","executeSql","apply","sort","a","b","indexOf"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAE0C;AAAA,iFAAzC,EAAyC;AAAA,MADtEC,UACsE,QADtEA,UACsE;;AACtE,MAAMC,KAAK,GAAG,0CACZ,UADY,EAEZ,CAAC,GAAD,CAFY,EAGZD,UAAU,GACN;AACEE,IAAAA,GAAG,EAAEF;AADP,GADM,GAING,SAPQ,CAAd;;AAUA,MAAMC,MAAM,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCN,KAAzC,CAAf;;AAEA,MAAID,UAAJ,EAAgB;AACd,WAAOI,MAAM,CAACI,IAAP,CACL,UAACC,CAAD,EAAqBC,CAArB;AAAA,aACEV,UAAU,CAACW,OAAX,CAAmBF,CAAC,CAACP,GAArB,IAA4BF,UAAU,CAACW,OAAX,CAAmBD,CAAC,CAACR,GAArB,CAD9B;AAAA,KADK,CAAP;AAID,GALD,MAKO;AACL,WAAOE,MAAP;AACD;AACF,CAvBM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { createSelectQuery } from '../../sqlite-utils/createSelectQuery';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectChannels = ({\n channelIds,\n}: { channelIds?: string[] } = {}): TableRowJoinedUser<'channels'>[] => {\n const query = createSelectQuery(\n 'channels',\n ['*'],\n channelIds\n ? {\n cid: channelIds,\n }\n : undefined,\n );\n\n const result = QuickSqliteClient.executeSql.apply(null, query);\n\n if (channelIds) {\n return result.sort(\n (a: { cid: string }, b: { cid: string }) =>\n channelIds.indexOf(a.cid) - channelIds.indexOf(b.cid),\n );\n } else {\n return result;\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectMembersForChannels.ts"],"names":["selectMembersForChannels","cids","questionMarks","Array","length","fill","join","membersColumnNames","Object","keys","tables","members","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,IAAD,EAAqD;AAC3F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,OAAP,CAAeC,OAA3B,EACxBC,GADwB,CACpB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADoB,EAExBR,IAFwB,CAEnB,IAFmB,CAA3B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,kBANO,yHAYGL,aAZH,4CAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectMembersForChannels.ts"],"names":["selectMembersForChannels","cids","questionMarks","Array","length","fill","join","membersColumnNames","Object","keys","tables","members","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,IAAD,EAAqD;AAC3F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,OAAP,CAAeC,OAA3B,EACxBC,GADwB,CACpB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADoB,EAExBR,IAFwB,CAEnB,IAFmB,CAA3B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,kBANO,yHAYGL,aAZH,4CAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CA1BM","sourcesContent":["import type { TableRowJoinedUser } from 'src/store/types';\n\nimport { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\n\nexport const selectMembersForChannels = (cids: string[]): TableRowJoinedUser<'members'>[] => {\n const questionMarks = Array(cids.length).fill('?').join(',');\n const membersColumnNames = Object.keys(tables.members.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${membersColumnNames}\n ) as value\n FROM members a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE cid in (${questionMarks}) ORDER BY datetime(a.createdAt) DESC`,\n cids,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectMessagesForChannels.ts"],"names":["selectMessagesForChannels","cids","questionMarks","Array","length","fill","join","messagesColumnNames","Object","keys","tables","messages","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,IAAD,EAAsD;AAC7F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,QAAP,CAAgBC,OAA5B,EACzBC,GADyB,CACrB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADqB,EAEzBR,IAFyB,CAEpB,IAFoB,CAA5B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,mBANO,mOAgBKL,aAhBL,gGAsBbD,IAtBa,CAAf;;AAyBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectMessagesForChannels.ts"],"names":["selectMessagesForChannels","cids","questionMarks","Array","length","fill","join","messagesColumnNames","Object","keys","tables","messages","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,IAAD,EAAsD;AAC7F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,QAAP,CAAgBC,OAA5B,EACzBC,GADyB,CACrB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADqB,EAEzBR,IAFyB,CAEpB,IAFoB,CAA5B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,mBANO,mOAgBKL,aAhBL,gGAsBbD,IAtBa,CAAf;;AAyBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CAnCM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectMessagesForChannels = (cids: string[]): TableRowJoinedUser<'messages'>[] => {\n const questionMarks = Array(cids.length).fill('?').join(',');\n const messagesColumnNames = Object.keys(tables.messages.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${messagesColumnNames}\n ) as value\n FROM (\n SELECT\n *,\n ROW_NUMBER() OVER (\n PARTITION BY cid\n ORDER BY datetime(createdAt) DESC\n ) RowNum\n FROM messages\n WHERE cid in (${questionMarks})\n ) a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE RowNum < 200`,\n cids,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectReactionsForMessages.ts"],"names":["selectReactionsForMessages","messageIds","questionMarks","Array","length","fill","join","reactionsColumnNames","Object","keys","tables","reactions","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCC,UADwC,EAEF;AACtC,MAAMC,aAAa,GAAGC,KAAK,CAACF,UAAU,CAACG,MAAZ,CAAL,CAAyBC,IAAzB,CAA8B,GAA9B,EAAmCC,IAAnC,CAAwC,GAAxC,CAAtB;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,SAAP,CAAiBC,OAA7B,EAC1BC,GAD0B,CACtB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADsB,EAE1BR,IAF0B,CAErB,IAFqB,CAA7B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,oBANO,mIAYWL,aAZX,QAabD,UAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectReactionsForMessages.ts"],"names":["selectReactionsForMessages","messageIds","questionMarks","Array","length","fill","join","reactionsColumnNames","Object","keys","tables","reactions","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCC,UADwC,EAEF;AACtC,MAAMC,aAAa,GAAGC,KAAK,CAACF,UAAU,CAACG,MAAZ,CAAL,CAAyBC,IAAzB,CAA8B,GAA9B,EAAmCC,IAAnC,CAAwC,GAAxC,CAAtB;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,SAAP,CAAiBC,OAA7B,EAC1BC,GAD0B,CACtB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADsB,EAE1BR,IAF0B,CAErB,IAFqB,CAA7B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,oBANO,mIAYWL,aAZX,QAabD,UAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CA5BM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectReactionsForMessages = (\n messageIds: string[],\n): TableRowJoinedUser<'reactions'>[] => {\n const questionMarks = Array(messageIds.length).fill('?').join(',');\n const reactionsColumnNames = Object.keys(tables.reactions.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${reactionsColumnNames}\n ) as value\n FROM reactions a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE a.messageId in (${questionMarks})`,\n messageIds,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectReadsForChannels.ts"],"names":["selectReadsForChannels","cids","questionMarks","Array","length","fill","join","readsColumnNames","Object","keys","tables","reads","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,IAAD,EAAmD;AACvF,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,KAAP,CAAaC,OAAzB,EACtBC,GADsB,CAClB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADkB,EAEtBR,IAFsB,CAEjB,IAFiB,CAAzB;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAGA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,gBANO,yHAYKL,aAZL,QAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectReadsForChannels.ts"],"names":["selectReadsForChannels","cids","questionMarks","Array","length","fill","join","readsColumnNames","Object","keys","tables","reads","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,IAAD,EAAmD;AACvF,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,KAAP,CAAaC,OAAzB,EACtBC,GADsB,CAClB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADkB,EAEtBR,IAFsB,CAEjB,IAFiB,CAAzB;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAGA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,gBANO,yHAYKL,aAZL,QAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CAzBM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectReadsForChannels = (cids: string[]): TableRowJoinedUser<'reads'>[] => {\n const questionMarks = Array(cids.length).fill('?').join(',');\n const readsColumnNames = Object.keys(tables.reads.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${readsColumnNames}\n ) as value\n FROM reads a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE a.cid in (${questionMarks})`,\n cids,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.upsertAppSettings = void 0;
|
|
5
|
+
|
|
6
|
+
var _QuickSqliteClient = require("../QuickSqliteClient");
|
|
7
|
+
|
|
8
|
+
var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
|
|
9
|
+
|
|
10
|
+
var upsertAppSettings = function upsertAppSettings(_ref) {
|
|
11
|
+
var appSettings = _ref.appSettings,
|
|
12
|
+
currentUserId = _ref.currentUserId,
|
|
13
|
+
_ref$flush = _ref.flush,
|
|
14
|
+
flush = _ref$flush === void 0 ? true : _ref$flush;
|
|
15
|
+
var query = (0, _createUpsertQuery.createUpsertQuery)('userSyncStatus', {
|
|
16
|
+
appSettings: JSON.stringify(appSettings),
|
|
17
|
+
userId: currentUserId
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
if (flush) {
|
|
21
|
+
_QuickSqliteClient.QuickSqliteClient.executeSql.apply(null, query);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.upsertAppSettings = upsertAppSettings;
|
|
26
|
+
//# sourceMappingURL=upsertAppSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["upsertAppSettings.ts"],"names":["upsertAppSettings","appSettings","currentUserId","flush","query","JSON","stringify","userId","QuickSqliteClient","executeSql","apply"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,OAQ3B;AAAA,MAPJC,WAOI,QAPJA,WAOI;AAAA,MANJC,aAMI,QANJA,aAMI;AAAA,wBALJC,KAKI;AAAA,MALJA,KAKI,2BALI,IAKJ;AACJ,MAAMC,KAAK,GAAG,0CAAkB,gBAAlB,EAAoC;AAChDH,IAAAA,WAAW,EAAEI,IAAI,CAACC,SAAL,CAAeL,WAAf,CADmC;AAEhDM,IAAAA,MAAM,EAAEL;AAFwC,GAApC,CAAd;;AAKA,MAAIC,KAAJ,EAAW;AACTK,yCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCN,KAAzC;AACD;AACF,CAjBM","sourcesContent":["import type { AppSettingsAPIResponse } from 'stream-chat';\n\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertAppSettings = ({\n appSettings,\n currentUserId,\n flush = true,\n}: {\n appSettings: AppSettingsAPIResponse;\n currentUserId: string;\n flush?: boolean;\n}) => {\n const query = createUpsertQuery('userSyncStatus', {\n appSettings: JSON.stringify(appSettings),\n userId: currentUserId,\n });\n\n if (flush) {\n QuickSqliteClient.executeSql.apply(null, query);\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["schema.ts"],"names":["tables","channelQueries","columns","cids","id","primaryKey","channels","autoTranslationEnabled","autoTranslationLanguage","cid","config","cooldown","createdAt","createdById","deletedAt","disabled","extraData","frozen","hidden","invites","lastMessageAt","memberCount","muted","ownCapabilities","team","truncatedAt","truncatedBy","truncatedById","type","updatedAt","members","banned","channelRole","inviteAcceptedAt","invited","inviteRejectedAt","isModerator","role","shadowBanned","userId","foreignKeys","column","onDeleteAction","referenceTable","referenceTableColumn","indexes","name","unique","messages","attachments","reactionCounts","text","pendingTasks","channelId","channelType","messageId","payload","reactions","score","reads","lastRead","unreadMessages","users","lastActive","online","userSyncStatus","lastSyncedAt"],"mappings":"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","sourcesContent":["import type { MessageLabel, Role } from 'stream-chat';\n\nimport type { PendingTaskTypes } from './types';\n\nimport type { ValueOf } from '../types/types';\n\ntype Tables = {\n [P in keyof Schema]: {\n columns: {\n [K in keyof Schema[P]]: string;\n };\n foreignKeys?: Array<{\n column: `${Exclude<keyof Schema[P], symbol>}`;\n referenceTable: `${keyof Schema}`;\n referenceTableColumn: string;\n // https://www.sqlite.org/foreignkeys.html#fk_actions\n onDeleteAction?: 'NO ACTION' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'CASCADE';\n }>;\n indexes?: Array<{\n columns: Array<keyof Schema[P]>;\n name: string;\n unique: boolean;\n }>;\n primaryKey?: Array<keyof Schema[P]>;\n };\n};\n\nexport const tables: Tables = {\n channelQueries: {\n columns: {\n cids: 'TEXT',\n id: 'TEXT',\n },\n primaryKey: ['id'],\n },\n channels: {\n columns: {\n autoTranslationEnabled: 'BOOLEAN',\n autoTranslationLanguage: 'TEXT',\n cid: 'TEXT',\n config: 'TEXT',\n cooldown: 'BOOLEAN',\n createdAt: 'TEXT',\n createdById: 'TEXT',\n deletedAt: 'TEXT',\n disabled: 'BOOLEAN DEFAULT FALSE',\n extraData: 'TEXT',\n frozen: 'BOOLEAN',\n hidden: 'BOOLEAN',\n id: 'TEXT',\n invites: 'TEXT',\n lastMessageAt: 'TEXT',\n memberCount: 'INTEGER',\n muted: 'BOOLEAN DEFAULT FALSE',\n ownCapabilities: 'TEXT',\n team: 'TEXT',\n truncatedAt: 'TEXT',\n truncatedBy: 'TEXT',\n truncatedById: 'TEXT',\n type: 'TEXT',\n updatedAt: 'TEXT',\n },\n primaryKey: ['cid'],\n },\n members: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n channelRole: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n inviteAcceptedAt: 'TEXT',\n invited: 'BOOLEAN',\n inviteRejectedAt: 'TEXT',\n isModerator: 'BOOLEAN',\n role: 'TEXT',\n shadowBanned: 'BOOLEAN DEFAULT FALSE',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_members',\n unique: false,\n },\n ],\n primaryKey: ['cid', 'userId'],\n },\n messages: {\n columns: {\n attachments: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n deletedAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n reactionCounts: 'TEXT',\n text: \"TEXT DEFAULT ''\",\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_messages',\n unique: false,\n },\n ],\n primaryKey: ['id'],\n },\n pendingTasks: {\n columns: {\n channelId: 'TEXT',\n channelType: 'TEXT',\n createdAt: 'TEXT',\n id: 'INTEGER PRIMARY KEY AUTOINCREMENT',\n messageId: 'TEXT',\n payload: 'TEXT',\n type: 'TEXT',\n },\n },\n reactions: {\n columns: {\n createdAt: 'TEXT',\n extraData: 'TEXT',\n messageId: 'TEXT',\n score: 'INTEGER DEFAULT 0',\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'messageId',\n onDeleteAction: 'CASCADE',\n referenceTable: 'messages',\n referenceTableColumn: 'id',\n },\n ],\n indexes: [\n {\n columns: ['messageId', 'userId'],\n name: 'index_reaction',\n unique: false,\n },\n ],\n primaryKey: ['messageId', 'userId', 'type'],\n },\n reads: {\n columns: {\n cid: 'TEXT NOT NULL',\n lastRead: 'TEXT NOT NULL',\n unreadMessages: 'INTEGER DEFAULT 0',\n userId: 'TEXT',\n },\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_reads_cid',\n unique: false,\n },\n ],\n primaryKey: ['userId', 'cid'],\n },\n users: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n createdAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n lastActive: 'TEXT',\n online: 'INTEGER',\n role: 'TEXT',\n updatedAt: 'TEXT',\n },\n indexes: [\n {\n columns: ['id'],\n name: 'index_users_id',\n unique: true,\n },\n ],\n primaryKey: ['id'],\n },\n userSyncStatus: {\n columns: {\n lastSyncedAt: 'TEXT',\n userId: 'TEXT',\n },\n primaryKey: ['userId'],\n },\n};\n\n// TODO: Checking the optionality of columns\nexport type Schema = {\n channelQueries: {\n cids: string;\n id: string;\n };\n channels: {\n cid: string;\n extraData: string;\n id: string;\n type: string;\n autoTranslationEnabled?: boolean;\n autoTranslationLanguage?: string;\n config?: string;\n cooldown?: number;\n createdAt?: string;\n createdById?: string;\n deletedAt?: string;\n disabled?: boolean;\n frozen?: boolean;\n hidden?: boolean;\n invites?: string;\n lastMessageAt?: string;\n memberCount?: number;\n muted?: boolean;\n ownCapabilities?: string;\n team?: string;\n truncatedAt?: string;\n truncatedBy?: string;\n truncatedById?: string;\n updatedAt?: string;\n };\n members: {\n cid: string;\n banned?: boolean;\n channelRole?: Role;\n createdAt?: string;\n inviteAcceptedAt?: string;\n invited?: boolean;\n inviteRejectedAt?: string;\n isModerator?: boolean;\n role?: string;\n shadowBanned?: boolean;\n updatedAt?: string;\n userId?: string;\n };\n messages: {\n attachments: string;\n cid: string;\n createdAt: string;\n deletedAt: string;\n extraData: string;\n id: string;\n reactionCounts: string;\n type: MessageLabel;\n updatedAt: string;\n text?: string;\n userId?: string;\n };\n pendingTasks: {\n channelId: string;\n channelType: string;\n createdAt: string;\n id: number;\n messageId: string;\n payload: string;\n type: ValueOf<PendingTaskTypes>;\n };\n reactions: {\n createdAt: string;\n messageId: string;\n type: string;\n updatedAt: string;\n extraData?: string;\n score?: number;\n userId?: string;\n };\n reads: {\n cid: string;\n lastRead: string;\n unreadMessages?: number;\n userId?: string;\n };\n users: {\n id: string;\n banned?: boolean;\n createdAt?: string;\n extraData?: string;\n lastActive?: string;\n online?: boolean;\n role?: string;\n updatedAt?: string;\n };\n userSyncStatus: {\n lastSyncedAt: string;\n userId: string;\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["schema.ts"],"names":["tables","channelQueries","columns","cids","id","primaryKey","channels","autoTranslationEnabled","autoTranslationLanguage","cid","config","cooldown","createdAt","createdById","deletedAt","disabled","extraData","frozen","hidden","invites","lastMessageAt","memberCount","muted","ownCapabilities","team","truncatedAt","truncatedBy","truncatedById","type","updatedAt","members","banned","channelRole","inviteAcceptedAt","invited","inviteRejectedAt","isModerator","role","shadowBanned","userId","foreignKeys","column","onDeleteAction","referenceTable","referenceTableColumn","indexes","name","unique","messages","attachments","reactionCounts","text","pendingTasks","channelId","channelType","messageId","payload","reactions","score","reads","lastRead","unreadMessages","users","lastActive","online","userSyncStatus","appSettings","lastSyncedAt"],"mappings":"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","sourcesContent":["import type { MessageLabel, Role } from 'stream-chat';\n\nimport type { PendingTaskTypes } from './types';\n\nimport type { ValueOf } from '../types/types';\n\ntype Tables = {\n [P in keyof Schema]: {\n columns: {\n [K in keyof Schema[P]]: string;\n };\n foreignKeys?: Array<{\n column: `${Exclude<keyof Schema[P], symbol>}`;\n referenceTable: `${keyof Schema}`;\n referenceTableColumn: string;\n // https://www.sqlite.org/foreignkeys.html#fk_actions\n onDeleteAction?: 'NO ACTION' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'CASCADE';\n }>;\n indexes?: Array<{\n columns: Array<keyof Schema[P]>;\n name: string;\n unique: boolean;\n }>;\n primaryKey?: Array<keyof Schema[P]>;\n };\n};\n\nexport const tables: Tables = {\n channelQueries: {\n columns: {\n cids: 'TEXT',\n id: 'TEXT',\n },\n primaryKey: ['id'],\n },\n channels: {\n columns: {\n autoTranslationEnabled: 'BOOLEAN',\n autoTranslationLanguage: 'TEXT',\n cid: 'TEXT',\n config: 'TEXT',\n cooldown: 'BOOLEAN',\n createdAt: 'TEXT',\n createdById: 'TEXT',\n deletedAt: 'TEXT',\n disabled: 'BOOLEAN DEFAULT FALSE',\n extraData: 'TEXT',\n frozen: 'BOOLEAN',\n hidden: 'BOOLEAN',\n id: 'TEXT',\n invites: 'TEXT',\n lastMessageAt: 'TEXT',\n memberCount: 'INTEGER',\n muted: 'BOOLEAN DEFAULT FALSE',\n ownCapabilities: 'TEXT',\n team: 'TEXT',\n truncatedAt: 'TEXT',\n truncatedBy: 'TEXT',\n truncatedById: 'TEXT',\n type: 'TEXT',\n updatedAt: 'TEXT',\n },\n primaryKey: ['cid'],\n },\n members: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n channelRole: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n inviteAcceptedAt: 'TEXT',\n invited: 'BOOLEAN',\n inviteRejectedAt: 'TEXT',\n isModerator: 'BOOLEAN',\n role: 'TEXT',\n shadowBanned: 'BOOLEAN DEFAULT FALSE',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_members',\n unique: false,\n },\n ],\n primaryKey: ['cid', 'userId'],\n },\n messages: {\n columns: {\n attachments: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n deletedAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n reactionCounts: 'TEXT',\n text: \"TEXT DEFAULT ''\",\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_messages',\n unique: false,\n },\n ],\n primaryKey: ['id'],\n },\n pendingTasks: {\n columns: {\n channelId: 'TEXT',\n channelType: 'TEXT',\n createdAt: 'TEXT',\n id: 'INTEGER PRIMARY KEY AUTOINCREMENT',\n messageId: 'TEXT',\n payload: 'TEXT',\n type: 'TEXT',\n },\n },\n reactions: {\n columns: {\n createdAt: 'TEXT',\n extraData: 'TEXT',\n messageId: 'TEXT',\n score: 'INTEGER DEFAULT 0',\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'messageId',\n onDeleteAction: 'CASCADE',\n referenceTable: 'messages',\n referenceTableColumn: 'id',\n },\n ],\n indexes: [\n {\n columns: ['messageId', 'userId'],\n name: 'index_reaction',\n unique: false,\n },\n ],\n primaryKey: ['messageId', 'userId', 'type'],\n },\n reads: {\n columns: {\n cid: 'TEXT NOT NULL',\n lastRead: 'TEXT NOT NULL',\n unreadMessages: 'INTEGER DEFAULT 0',\n userId: 'TEXT',\n },\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_reads_cid',\n unique: false,\n },\n ],\n primaryKey: ['userId', 'cid'],\n },\n users: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n createdAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n lastActive: 'TEXT',\n online: 'INTEGER',\n role: 'TEXT',\n updatedAt: 'TEXT',\n },\n indexes: [\n {\n columns: ['id'],\n name: 'index_users_id',\n unique: true,\n },\n ],\n primaryKey: ['id'],\n },\n userSyncStatus: {\n columns: {\n appSettings: 'TEXT',\n lastSyncedAt: 'TEXT',\n userId: 'TEXT',\n },\n primaryKey: ['userId'],\n },\n};\n\n// TODO: Checking the optionality of columns\nexport type Schema = {\n channelQueries: {\n cids: string;\n id: string;\n };\n channels: {\n cid: string;\n extraData: string;\n id: string;\n type: string;\n autoTranslationEnabled?: boolean;\n autoTranslationLanguage?: string;\n config?: string;\n cooldown?: number;\n createdAt?: string;\n createdById?: string;\n deletedAt?: string;\n disabled?: boolean;\n frozen?: boolean;\n hidden?: boolean;\n invites?: string;\n lastMessageAt?: string;\n memberCount?: number;\n muted?: boolean;\n ownCapabilities?: string;\n team?: string;\n truncatedAt?: string;\n truncatedBy?: string;\n truncatedById?: string;\n updatedAt?: string;\n };\n members: {\n cid: string;\n banned?: boolean;\n channelRole?: Role;\n createdAt?: string;\n inviteAcceptedAt?: string;\n invited?: boolean;\n inviteRejectedAt?: string;\n isModerator?: boolean;\n role?: string;\n shadowBanned?: boolean;\n updatedAt?: string;\n userId?: string;\n };\n messages: {\n attachments: string;\n cid: string;\n createdAt: string;\n deletedAt: string;\n extraData: string;\n id: string;\n reactionCounts: string;\n type: MessageLabel;\n updatedAt: string;\n text?: string;\n userId?: string;\n };\n pendingTasks: {\n channelId: string;\n channelType: string;\n createdAt: string;\n id: number;\n messageId: string;\n payload: string;\n type: ValueOf<PendingTaskTypes>;\n };\n reactions: {\n createdAt: string;\n messageId: string;\n type: string;\n updatedAt: string;\n extraData?: string;\n score?: number;\n userId?: string;\n };\n reads: {\n cid: string;\n lastRead: string;\n unreadMessages?: number;\n userId?: string;\n };\n users: {\n id: string;\n banned?: boolean;\n createdAt?: string;\n extraData?: string;\n lastActive?: string;\n online?: boolean;\n role?: string;\n updatedAt?: string;\n };\n userSyncStatus: {\n appSettings: string;\n lastSyncedAt: string;\n userId: string;\n };\n};\n"]}
|
package/lib/module/version.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { AppSettingsAPIResponse, StreamChat } from 'stream-chat';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '
|
|
3
|
-
export declare const useAppSettings: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(client: StreamChat<StreamChatGenerics>, isOnline: boolean) => AppSettingsAPIResponse | null;
|
|
2
|
+
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
|
+
export declare const useAppSettings: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(client: StreamChat<StreamChatGenerics>, isOnline: boolean | null, enableOfflineSupport: boolean) => AppSettingsAPIResponse | null;
|
|
@@ -8,5 +8,5 @@ import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const useIsOnline: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(client: StreamChat<StreamChatGenerics>, closeConnectionOnBackground?: boolean) => {
|
|
10
10
|
connectionRecovering: boolean;
|
|
11
|
-
isOnline: boolean;
|
|
11
|
+
isOnline: boolean | null;
|
|
12
12
|
};
|
|
@@ -27,7 +27,7 @@ export declare type ChatContextValue<StreamChatGenerics extends DefaultStreamCha
|
|
|
27
27
|
connectionRecovering: boolean;
|
|
28
28
|
enableOfflineSupport: boolean;
|
|
29
29
|
ImageComponent: React.ComponentType<ImageProps>;
|
|
30
|
-
isOnline: boolean;
|
|
30
|
+
isOnline: boolean | null;
|
|
31
31
|
mutedUsers: Mute<StreamChatGenerics>[];
|
|
32
32
|
/**
|
|
33
33
|
* @param newChannel Channel to set as active.
|
|
@@ -2,6 +2,8 @@ import type { PreparedQueries } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* QuickSqliteClient takes care of any direct interaction with sqlite.
|
|
4
4
|
* This way usage react-native-quick-sqlite package is scoped to a single class/file.
|
|
5
|
+
*
|
|
6
|
+
* TODO: Drop the support for v4 of react-native-quick-sqlite in the next major release.
|
|
5
7
|
*/
|
|
6
8
|
export declare class QuickSqliteClient {
|
|
7
9
|
static dbVersion: number;
|
|
@@ -9,10 +11,11 @@ export declare class QuickSqliteClient {
|
|
|
9
11
|
static dbLocation: string;
|
|
10
12
|
static getDbVersion: () => number;
|
|
11
13
|
static setDbVersion: (version: number) => number;
|
|
14
|
+
static isQuickSqliteV4: boolean;
|
|
12
15
|
static openDB: () => void;
|
|
13
16
|
static closeDB: () => void;
|
|
14
17
|
static executeSqlBatch: (queries: PreparedQueries[]) => void;
|
|
15
|
-
static executeSql: (query: string, params?: string[] | undefined) => any
|
|
18
|
+
static executeSql: (query: string, params?: string[] | undefined) => any;
|
|
16
19
|
static dropTables: () => void;
|
|
17
20
|
static deleteDatabase: () => boolean;
|
|
18
21
|
static initializeDatabase: () => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PreparedQueries } from './types';
|
|
2
|
+
export declare class QuickSqliteClient_v4 {
|
|
3
|
+
static dbName: string;
|
|
4
|
+
static dbLocation: string;
|
|
5
|
+
static openDB: () => void;
|
|
6
|
+
static closeDB: () => void;
|
|
7
|
+
static executeSqlBatch: (queries: PreparedQueries[]) => void;
|
|
8
|
+
static executeSql: (query: string, params?: string[] | undefined) => any;
|
|
9
|
+
static deleteDatabase: () => boolean;
|
|
10
|
+
static updateUserPragmaVersion: (version: number) => void;
|
|
11
|
+
static getUserPragmaVersion: () => number;
|
|
12
|
+
}
|
|
@@ -4,6 +4,7 @@ export * from './deleteMessage';
|
|
|
4
4
|
export * from './deleteMessagesForChannel';
|
|
5
5
|
export * from './deleteReactions';
|
|
6
6
|
export * from './getAllChannelIds';
|
|
7
|
+
export * from './getAppSettings';
|
|
7
8
|
export * from './getChannelMessages';
|
|
8
9
|
export * from './getChannels';
|
|
9
10
|
export * from './getChannelsForFilterSort';
|
|
@@ -12,6 +13,7 @@ export * from './getMembers';
|
|
|
12
13
|
export * from './getReads';
|
|
13
14
|
export * from './updateMessage';
|
|
14
15
|
export * from './updateReaction';
|
|
16
|
+
export * from './upsertAppSettings';
|
|
15
17
|
export * from './upsertChannelData';
|
|
16
18
|
export * from './upsertChannels';
|
|
17
19
|
export * from './upsertCidsForQuery';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stream-chat-react-native-core",
|
|
3
3
|
"description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
|
|
4
|
-
"version": "5.6.0-beta.
|
|
4
|
+
"version": "5.6.0-beta.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"company": "Stream.io Inc",
|
|
7
7
|
"name": "Stream.io Inc"
|
|
@@ -265,7 +265,10 @@ describe('Gallery', () => {
|
|
|
265
265
|
});
|
|
266
266
|
|
|
267
267
|
const component = await getComponent([image1]);
|
|
268
|
-
const { getByA11yLabel, getByAccessibilityHint } = render(component);
|
|
268
|
+
const { getByA11yLabel, getByAccessibilityHint, queryAllByTestId } = render(component);
|
|
269
|
+
await waitFor(() => {
|
|
270
|
+
expect(queryAllByTestId('gallery-container').length).toBe(1);
|
|
271
|
+
});
|
|
269
272
|
|
|
270
273
|
fireEvent(getByA11yLabel('Gallery Image'), 'error');
|
|
271
274
|
expect(getByAccessibilityHint('image-loading-error')).toBeTruthy();
|
|
@@ -278,7 +281,11 @@ describe('Gallery', () => {
|
|
|
278
281
|
});
|
|
279
282
|
|
|
280
283
|
const component = await getComponent([image1]);
|
|
281
|
-
const { getByA11yLabel, getByAccessibilityHint } = render(component);
|
|
284
|
+
const { getByA11yLabel, getByAccessibilityHint, queryAllByTestId } = render(component);
|
|
285
|
+
|
|
286
|
+
await waitFor(() => {
|
|
287
|
+
expect(queryAllByTestId('gallery-container').length).toBe(1);
|
|
288
|
+
});
|
|
282
289
|
|
|
283
290
|
fireEvent(getByA11yLabel('Gallery Image'), 'onLoadStart');
|
|
284
291
|
expect(getByAccessibilityHint('image-loading')).toBeTruthy();
|
|
@@ -274,8 +274,8 @@ describe('Giphy', () => {
|
|
|
274
274
|
});
|
|
275
275
|
});
|
|
276
276
|
|
|
277
|
-
it('should render a error indicator in giphy image', () => {
|
|
278
|
-
const { getByA11yLabel, getByAccessibilityHint } = render(
|
|
277
|
+
it('should render a error indicator in giphy image', async () => {
|
|
278
|
+
const { getByA11yLabel, getByAccessibilityHint, queryByTestId } = render(
|
|
279
279
|
<OverlayProvider>
|
|
280
280
|
<Chat client={chatClient}>
|
|
281
281
|
<Channel channel={channel}>
|
|
@@ -284,12 +284,15 @@ describe('Giphy', () => {
|
|
|
284
284
|
</Chat>
|
|
285
285
|
</OverlayProvider>,
|
|
286
286
|
);
|
|
287
|
+
await waitFor(() => {
|
|
288
|
+
expect(queryByTestId('giphy-attachment')).toBeTruthy();
|
|
289
|
+
});
|
|
287
290
|
|
|
288
291
|
fireEvent(getByA11yLabel('Giphy Attachment Image'), 'error');
|
|
289
292
|
expect(getByAccessibilityHint('image-loading-error')).toBeTruthy();
|
|
290
293
|
});
|
|
291
294
|
|
|
292
|
-
it('should render a loading indicator in giphy image and when successful render the image', () => {
|
|
295
|
+
it('should render a loading indicator in giphy image and when successful render the image', async () => {
|
|
293
296
|
const { getByA11yLabel, getByAccessibilityHint } = render(
|
|
294
297
|
<OverlayProvider>
|
|
295
298
|
<Chat client={chatClient}>
|
|
@@ -299,8 +302,9 @@ describe('Giphy', () => {
|
|
|
299
302
|
</Chat>
|
|
300
303
|
</OverlayProvider>,
|
|
301
304
|
);
|
|
302
|
-
|
|
303
|
-
|
|
305
|
+
await waitFor(() => {
|
|
306
|
+
expect(getByAccessibilityHint('image-loading')).toBeTruthy();
|
|
307
|
+
});
|
|
304
308
|
|
|
305
309
|
fireEvent(getByA11yLabel('Giphy Attachment Image'), 'onLoadStart');
|
|
306
310
|
|
|
@@ -1192,6 +1192,13 @@ const ChannelWithContext = <
|
|
|
1192
1192
|
text,
|
|
1193
1193
|
...extraFields
|
|
1194
1194
|
}: Partial<StreamMessage<StreamChatGenerics>>) => {
|
|
1195
|
+
// Exclude following properties from message.user within message preview,
|
|
1196
|
+
// since they could be long arrays and have no meaning as sender of message.
|
|
1197
|
+
// Storing such large value within user's table may cause sqlite queries to crash.
|
|
1198
|
+
// @ts-ignore
|
|
1199
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1200
|
+
const { channel_mutes, devices, mutes, ...messageUser } = client.user;
|
|
1201
|
+
|
|
1195
1202
|
const preview = {
|
|
1196
1203
|
__html: text,
|
|
1197
1204
|
attachments,
|
|
@@ -1209,7 +1216,7 @@ const ChannelWithContext = <
|
|
|
1209
1216
|
type: 'regular',
|
|
1210
1217
|
user: {
|
|
1211
1218
|
id: client.userID,
|
|
1212
|
-
...
|
|
1219
|
+
...messageUser,
|
|
1213
1220
|
},
|
|
1214
1221
|
...extraFields,
|
|
1215
1222
|
} as unknown as MessageResponse<StreamChatGenerics>;
|
|
@@ -196,7 +196,7 @@ const ChatWithContext = <
|
|
|
196
196
|
|
|
197
197
|
const setActiveChannel = (newChannel?: Channel<StreamChatGenerics>) => setChannel(newChannel);
|
|
198
198
|
|
|
199
|
-
const appSettings = useAppSettings(client, isOnline);
|
|
199
|
+
const appSettings = useAppSettings(client, isOnline, enableOfflineSupport);
|
|
200
200
|
|
|
201
201
|
const chatContext = useCreateChatContext({
|
|
202
202
|
appSettings,
|
|
@@ -1,23 +1,38 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
import type { AppSettingsAPIResponse, StreamChat } from 'stream-chat';
|
|
4
|
-
import type { DefaultStreamChatGenerics } from 'stream-chat-react-native';
|
|
5
4
|
|
|
5
|
+
import * as dbApi from '../../../store/apis';
|
|
6
|
+
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
6
7
|
export const useAppSettings = <
|
|
7
8
|
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
8
9
|
>(
|
|
9
10
|
client: StreamChat<StreamChatGenerics>,
|
|
10
|
-
isOnline: boolean,
|
|
11
|
+
isOnline: boolean | null,
|
|
12
|
+
enableOfflineSupport: boolean,
|
|
11
13
|
): AppSettingsAPIResponse | null => {
|
|
12
14
|
const [appSettings, setAppSettings] = useState<AppSettingsAPIResponse | null>(null);
|
|
13
15
|
const isMounted = useRef(true);
|
|
14
16
|
|
|
15
17
|
useEffect(() => {
|
|
16
|
-
async function
|
|
18
|
+
async function enforeAppSettings() {
|
|
19
|
+
if (!client.userID) return;
|
|
20
|
+
|
|
21
|
+
if (!isOnline && enableOfflineSupport) {
|
|
22
|
+
const appSettings = dbApi.getAppSettings({ currentUserId: client.userID });
|
|
23
|
+
setAppSettings(appSettings);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
17
27
|
try {
|
|
18
28
|
const appSettings = await client.getAppSettings();
|
|
19
29
|
if (isMounted.current) {
|
|
20
30
|
setAppSettings(appSettings);
|
|
31
|
+
enableOfflineSupport &&
|
|
32
|
+
dbApi.upsertAppSettings({
|
|
33
|
+
appSettings,
|
|
34
|
+
currentUserId: client.userID as string,
|
|
35
|
+
});
|
|
21
36
|
}
|
|
22
37
|
} catch (error: unknown) {
|
|
23
38
|
if (error instanceof Error) {
|
|
@@ -26,9 +41,7 @@ export const useAppSettings = <
|
|
|
26
41
|
}
|
|
27
42
|
}
|
|
28
43
|
|
|
29
|
-
|
|
30
|
-
getAppSettings();
|
|
31
|
-
}
|
|
44
|
+
enforeAppSettings();
|
|
32
45
|
|
|
33
46
|
return () => {
|
|
34
47
|
isMounted.current = false;
|
|
@@ -22,7 +22,7 @@ export const useIsOnline = <
|
|
|
22
22
|
client: StreamChat<StreamChatGenerics>,
|
|
23
23
|
closeConnectionOnBackground = true,
|
|
24
24
|
) => {
|
|
25
|
-
const [isOnline, setIsOnline] = useState(
|
|
25
|
+
const [isOnline, setIsOnline] = useState<boolean | null>(null);
|
|
26
26
|
const [connectionRecovering, setConnectionRecovering] = useState(false);
|
|
27
27
|
const isMounted = useIsMountedRef();
|
|
28
28
|
const clientExists = !!client;
|