stream-chat-react-native-core 5.27.0-beta.10 → 5.27.0-beta.12

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.
Files changed (87) hide show
  1. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
  2. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  3. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js +100 -37
  4. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
  5. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +3 -1
  6. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  7. package/lib/commonjs/components/ImageGallery/ImageGallery.js +39 -21
  8. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  9. package/lib/commonjs/i18n/es.json +22 -22
  10. package/lib/commonjs/i18n/fr.json +22 -22
  11. package/lib/commonjs/i18n/he.json +22 -22
  12. package/lib/commonjs/i18n/hi.json +22 -22
  13. package/lib/commonjs/i18n/it.json +22 -22
  14. package/lib/commonjs/i18n/ja.json +22 -22
  15. package/lib/commonjs/i18n/ko.json +22 -22
  16. package/lib/commonjs/i18n/nl.json +22 -22
  17. package/lib/commonjs/i18n/pt-BR.json +22 -22
  18. package/lib/commonjs/i18n/ru.json +22 -22
  19. package/lib/commonjs/i18n/tr.json +22 -22
  20. package/lib/commonjs/store/apis/upsertChannelDataFromChannel.js +21 -0
  21. package/lib/commonjs/store/apis/upsertChannelDataFromChannel.js.map +1 -0
  22. package/lib/commonjs/store/mappers/mapChannelToStorable.js +63 -0
  23. package/lib/commonjs/store/mappers/mapChannelToStorable.js.map +1 -0
  24. package/lib/commonjs/utils/DBSyncManager.js +73 -68
  25. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  26. package/lib/commonjs/version.json +1 -1
  27. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
  28. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  29. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js +100 -37
  30. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
  31. package/lib/module/components/Chat/hooks/useSyncDatabase.js +3 -1
  32. package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  33. package/lib/module/components/ImageGallery/ImageGallery.js +39 -21
  34. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  35. package/lib/module/i18n/es.json +22 -22
  36. package/lib/module/i18n/fr.json +22 -22
  37. package/lib/module/i18n/he.json +22 -22
  38. package/lib/module/i18n/hi.json +22 -22
  39. package/lib/module/i18n/it.json +22 -22
  40. package/lib/module/i18n/ja.json +22 -22
  41. package/lib/module/i18n/ko.json +22 -22
  42. package/lib/module/i18n/nl.json +22 -22
  43. package/lib/module/i18n/pt-BR.json +22 -22
  44. package/lib/module/i18n/ru.json +22 -22
  45. package/lib/module/i18n/tr.json +22 -22
  46. package/lib/module/store/apis/upsertChannelDataFromChannel.js +21 -0
  47. package/lib/module/store/apis/upsertChannelDataFromChannel.js.map +1 -0
  48. package/lib/module/store/mappers/mapChannelToStorable.js +63 -0
  49. package/lib/module/store/mappers/mapChannelToStorable.js.map +1 -0
  50. package/lib/module/utils/DBSyncManager.js +73 -68
  51. package/lib/module/utils/DBSyncManager.js.map +1 -1
  52. package/lib/module/version.json +1 -1
  53. package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +4 -2
  54. package/lib/typescript/i18n/es.json +22 -22
  55. package/lib/typescript/i18n/fr.json +22 -22
  56. package/lib/typescript/i18n/he.json +22 -22
  57. package/lib/typescript/i18n/hi.json +22 -22
  58. package/lib/typescript/i18n/it.json +22 -22
  59. package/lib/typescript/i18n/ja.json +22 -22
  60. package/lib/typescript/i18n/ko.json +22 -22
  61. package/lib/typescript/i18n/nl.json +22 -22
  62. package/lib/typescript/i18n/pt-BR.json +22 -22
  63. package/lib/typescript/i18n/ru.json +22 -22
  64. package/lib/typescript/i18n/tr.json +22 -22
  65. package/lib/typescript/store/apis/upsertChannelDataFromChannel.d.ts +6 -0
  66. package/lib/typescript/store/mappers/mapChannelToStorable.d.ts +4 -0
  67. package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
  68. package/package.json +1 -1
  69. package/src/components/AttachmentPicker/AttachmentPicker.tsx +1 -1
  70. package/src/components/Chat/hooks/handleEventToSyncDB.ts +132 -46
  71. package/src/components/Chat/hooks/useSyncDatabase.ts +1 -1
  72. package/src/components/ImageGallery/ImageGallery.tsx +25 -2
  73. package/src/i18n/es.json +22 -22
  74. package/src/i18n/fr.json +22 -22
  75. package/src/i18n/he.json +22 -22
  76. package/src/i18n/hi.json +22 -22
  77. package/src/i18n/it.json +22 -22
  78. package/src/i18n/ja.json +22 -22
  79. package/src/i18n/ko.json +22 -22
  80. package/src/i18n/nl.json +22 -22
  81. package/src/i18n/pt-BR.json +22 -22
  82. package/src/i18n/ru.json +22 -22
  83. package/src/i18n/tr.json +22 -22
  84. package/src/store/apis/upsertChannelDataFromChannel.ts +25 -0
  85. package/src/store/mappers/mapChannelToStorable.ts +68 -0
  86. package/src/utils/DBSyncManager.ts +7 -3
  87. package/src/version.json +1 -1
@@ -1,9 +1,9 @@
1
1
  {
2
- "1 Reply": "",
2
+ "1 Reply": "1 Cevap",
3
3
  "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "",
5
5
  "Allow camera access in device settings": "",
6
- "Also send to channel": "Kanala da gönder",
6
+ "Also send to channel": "",
7
7
  "Are you sure you want to permanently delete this message?": "Bu mesajı kalıcı olarak silmek istediğinizden emin misiniz?",
8
8
  "Are you sure?": "",
9
9
  "Block User": "Kullanıcıyı engelle",
@@ -18,29 +18,29 @@
18
18
  "Edit Message": "Mesajı Düzenle",
19
19
  "Editing Message": "",
20
20
  "Emoji matching": "",
21
- "Empty message...": "",
22
- "Error loading": "Yükleme hatası",
23
- "Error loading channel list...": "",
21
+ "Empty message...": "Boş mesaj...",
22
+ "Error loading": "",
23
+ "Error loading channel list...": "Kanal listesi yüklenirken hata oluştu...",
24
24
  "Error loading messages for this channel...": "Bu kanal için mesajlar yüklenirken hata oluştu...",
25
- "Error while loading, please reload/refresh": "",
25
+ "Error while loading, please reload/refresh": "Yüklenirken hata oluştu, lütfen tekrar deneyiniz",
26
26
  "File type not supported": "",
27
27
  "Flag": "Raporla",
28
28
  "Flag Message": "Mesajı Raporla",
29
29
  "Flag action failed either due to a network issue or the message is already flagged": "Mesajın daha önce raporlanmış olması veya bir ağ bağlantısı sorunu nedeniyle raporlama işlemi başarısız oldu.",
30
- "How about sending your first message to a friend?": "",
30
+ "How about sending your first message to a friend?": "İlk mesajınızı bir arkadaşınıza göndermeye ne dersiniz?",
31
31
  "Instant Commands": "",
32
- "Let's start chatting!": "",
33
- "Links are disabled": "",
34
- "Loading channels...": "",
35
- "Loading messages...": "",
36
- "Loading...": "",
37
- "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
32
+ "Let's start chatting!": "Haydi sohbete başlayalım!",
33
+ "Links are disabled": "Bağlantılar devre dışı",
34
+ "Loading channels...": "Kanallar yükleniyor...",
35
+ "Loading messages...": "Mesajlar yükleniyor...",
36
+ "Loading...": "Yükleniyor...",
37
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Maksimum dosya boyutu yükleme sınırına ulaşıldı. Lütfen {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB'ın altında bir dosya yükleyin.",
38
38
  "Message Reactions": "Mesaj Tepkileri",
39
39
  "Message deleted": "Mesaj silindi",
40
40
  "Message flagged": "Mesaj işaretlendi",
41
41
  "Mute User": "Kullanıcıyı sessize al",
42
42
  "Not supported": "",
43
- "Nothing yet...": "",
43
+ "Nothing yet...": "Henüz değil...",
44
44
  "Ok": "Tamam",
45
45
  "Only visible to you": "",
46
46
  "Open Settings": "",
@@ -54,26 +54,26 @@
54
54
  "Reply": "Yanıtla",
55
55
  "Reply to Message": "",
56
56
  "Resend": "Yeniden gönder",
57
- "Search GIFs": "",
57
+ "Search GIFs": "GIF Ara",
58
58
  "Select More Photos": "",
59
59
  "Send Anyway": "",
60
- "Send a message": "",
61
- "Sending links is not allowed in this conversation": "",
62
- "Slow mode ON": "",
60
+ "Send a message": "Mesaj gönder",
61
+ "Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
62
+ "Slow mode ON": "Yavaş Mod Açık",
63
63
  "The message has been reported to a moderator.": "Mesaj moderatöre bildirildi.",
64
64
  "Thread Reply": "Konu Yanıtı",
65
65
  "Unblock User": "Kullanıcının engelini kaldır",
66
66
  "Unknown User": "",
67
67
  "Unmute User": "Kullanıcının sesini aç",
68
68
  "Unpin from Conversation": "Sabitlemeyi kaldır",
69
- "Unread Messages": "",
69
+ "Unread Messages": "Okunmamış Mesajlar",
70
70
  "Video": "Video",
71
- "You": "",
71
+ "You": "Sen",
72
72
  "You can't send messages in this channel": "",
73
73
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
- "{{ replyCount }} Replies": "",
75
+ "{{ replyCount }} Replies": "{{ replyCount }} Cevap",
76
76
  "{{ replyCount }} Thread Replies": "",
77
77
  "{{ user }} is typing": "{{ user }} yazıyor",
78
- "🏙 Attachment...": ""
78
+ "🏙 Attachment...": "🏙 Ek..."
79
79
  }
@@ -0,0 +1,21 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.upsertChannelDataFromChannel = void 0;
5
+ var _mapChannelToStorable = require("../mappers/mapChannelToStorable");
6
+ var _QuickSqliteClient = require("../QuickSqliteClient");
7
+ var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
8
+ var upsertChannelDataFromChannel = function upsertChannelDataFromChannel(_ref) {
9
+ var channel = _ref.channel,
10
+ _ref$flush = _ref.flush,
11
+ flush = _ref$flush === void 0 ? true : _ref$flush;
12
+ var storableChannel = (0, _mapChannelToStorable.mapChannelToStorable)(channel);
13
+ if (!storableChannel) return;
14
+ var query = (0, _createUpsertQuery.createUpsertQuery)('channels', storableChannel);
15
+ if (flush) {
16
+ _QuickSqliteClient.QuickSqliteClient.executeSqlBatch([query]);
17
+ }
18
+ return [query];
19
+ };
20
+ exports.upsertChannelDataFromChannel = upsertChannelDataFromChannel;
21
+ //# sourceMappingURL=upsertChannelDataFromChannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mapChannelToStorable","require","_QuickSqliteClient","_createUpsertQuery","upsertChannelDataFromChannel","_ref","channel","_ref$flush","flush","storableChannel","mapChannelToStorable","query","createUpsertQuery","QuickSqliteClient","executeSqlBatch","exports"],"sources":["upsertChannelDataFromChannel.ts"],"sourcesContent":["import { DefaultStreamChatGenerics } from 'src/types/types';\nimport type { Channel } from 'stream-chat';\n\nimport { mapChannelToStorable } from '../mappers/mapChannelToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertChannelDataFromChannel = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n flush = true,\n}: {\n channel: Channel<StreamChatGenerics>;\n flush?: boolean;\n}) => {\n const storableChannel = mapChannelToStorable(channel);\n if (!storableChannel) return;\n const query = createUpsertQuery('channels', storableChannel);\n if (flush) {\n QuickSqliteClient.executeSqlBatch([query]);\n }\n\n return [query];\n};\n"],"mappings":";;;;AAGA,IAAAA,qBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAEO,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAAC,IAAA,EAQnC;EAAA,IALJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,UAAA,GAAAF,IAAA,CACPG,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,IAAI,GAAAA,UAAA;EAKZ,IAAME,eAAe,GAAG,IAAAC,0CAAoB,EAACJ,OAAO,CAAC;EACrD,IAAI,CAACG,eAAe,EAAE;EACtB,IAAME,KAAK,GAAG,IAAAC,oCAAiB,EAAC,UAAU,EAAEH,eAAe,CAAC;EAC5D,IAAID,KAAK,EAAE;IACTK,oCAAiB,CAACC,eAAe,CAAC,CAACH,KAAK,CAAC,CAAC;EAC5C;EAEA,OAAO,CAACA,KAAK,CAAC;AAChB,CAAC;AAACI,OAAA,CAAAX,4BAAA,GAAAA,4BAAA"}
@@ -0,0 +1,63 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.mapChannelToStorable = void 0;
6
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
+ var _mapDateTimeToStorable = require("./mapDateTimeToStorable");
8
+ var _excluded = ["auto_translation_enabled", "auto_translation_language", "cid", "config", "cooldown", "created_at", "deleted_at", "disabled", "frozen", "hidden", "id", "invites", "last_message_at", "member_count", "members", "muted", "own_capabilities", "team", "truncated_at", "truncated_by", "truncated_by_id", "type", "updated_at"];
9
+ var mapChannelToStorable = function mapChannelToStorable(channel) {
10
+ if (!channel.data) return;
11
+ var _ref = channel.data,
12
+ auto_translation_enabled = _ref.auto_translation_enabled,
13
+ auto_translation_language = _ref.auto_translation_language,
14
+ cid = _ref.cid,
15
+ config = _ref.config,
16
+ cooldown = _ref.cooldown,
17
+ created_at = _ref.created_at,
18
+ deleted_at = _ref.deleted_at,
19
+ disabled = _ref.disabled,
20
+ frozen = _ref.frozen,
21
+ hidden = _ref.hidden,
22
+ id = _ref.id,
23
+ invites = _ref.invites,
24
+ last_message_at = _ref.last_message_at,
25
+ member_count = _ref.member_count,
26
+ members = _ref.members,
27
+ muted = _ref.muted,
28
+ own_capabilities = _ref.own_capabilities,
29
+ team = _ref.team,
30
+ truncated_at = _ref.truncated_at,
31
+ truncated_by = _ref.truncated_by,
32
+ truncated_by_id = _ref.truncated_by_id,
33
+ type = _ref.type,
34
+ updated_at = _ref.updated_at,
35
+ extraData = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
36
+ return {
37
+ autoTranslationEnabled: auto_translation_enabled,
38
+ autoTranslationLanguage: auto_translation_language,
39
+ cid: cid,
40
+ config: config && JSON.stringify(config),
41
+ cooldown: cooldown,
42
+ createdAt: (0, _mapDateTimeToStorable.mapDateTimeToStorable)(created_at),
43
+ deletedAt: (0, _mapDateTimeToStorable.mapDateTimeToStorable)(deleted_at),
44
+ disabled: disabled,
45
+ extraData: JSON.stringify(extraData),
46
+ frozen: frozen,
47
+ hidden: hidden,
48
+ id: id,
49
+ invites: invites && JSON.stringify(invites),
50
+ lastMessageAt: (0, _mapDateTimeToStorable.mapDateTimeToStorable)(last_message_at),
51
+ memberCount: member_count,
52
+ muted: muted,
53
+ ownCapabilities: own_capabilities && JSON.stringify(own_capabilities),
54
+ team: team,
55
+ truncatedAt: truncated_at,
56
+ truncatedBy: truncated_by && JSON.stringify(truncated_by),
57
+ truncatedById: truncated_by_id,
58
+ type: type,
59
+ updatedAt: updated_at
60
+ };
61
+ };
62
+ exports.mapChannelToStorable = mapChannelToStorable;
63
+ //# sourceMappingURL=mapChannelToStorable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mapDateTimeToStorable","require","_excluded","mapChannelToStorable","channel","data","_ref","auto_translation_enabled","auto_translation_language","cid","config","cooldown","created_at","deleted_at","disabled","frozen","hidden","id","invites","last_message_at","member_count","members","muted","own_capabilities","team","truncated_at","truncated_by","truncated_by_id","type","updated_at","extraData","_objectWithoutProperties2","autoTranslationEnabled","autoTranslationLanguage","JSON","stringify","createdAt","mapDateTimeToStorable","deletedAt","lastMessageAt","memberCount","ownCapabilities","truncatedAt","truncatedBy","truncatedById","updatedAt","exports"],"sources":["mapChannelToStorable.ts"],"sourcesContent":["import type { Channel, ChannelResponse } from 'stream-chat';\n\nimport { mapDateTimeToStorable } from './mapDateTimeToStorable';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nimport type { TableRow } from '../types';\n\nexport const mapChannelToStorable = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n): TableRow<'channels'> | undefined => {\n if (!channel.data) return;\n const {\n auto_translation_enabled,\n auto_translation_language,\n cid,\n config,\n cooldown,\n created_at,\n deleted_at,\n disabled,\n frozen,\n hidden,\n id,\n invites,\n last_message_at,\n member_count,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n members,\n muted,\n own_capabilities,\n team,\n truncated_at,\n truncated_by,\n truncated_by_id,\n type,\n updated_at,\n ...extraData\n } = channel.data as unknown as ChannelResponse<StreamChatGenerics>;\n\n return {\n autoTranslationEnabled: auto_translation_enabled,\n autoTranslationLanguage: auto_translation_language,\n cid,\n config: config && JSON.stringify(config),\n cooldown,\n createdAt: mapDateTimeToStorable(created_at),\n deletedAt: mapDateTimeToStorable(deleted_at),\n disabled,\n extraData: JSON.stringify(extraData),\n frozen,\n hidden,\n id,\n invites: invites && JSON.stringify(invites),\n lastMessageAt: mapDateTimeToStorable(last_message_at),\n memberCount: member_count,\n muted,\n ownCapabilities: own_capabilities && JSON.stringify(own_capabilities),\n team,\n truncatedAt: truncated_at,\n truncatedBy: truncated_by && JSON.stringify(truncated_by),\n truncatedById: truncated_by_id,\n type,\n updatedAt: updated_at,\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,sBAAA,GAAAC,OAAA;AAAgE,IAAAC,SAAA;AAMzD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAG/BC,OAAoC,EACC;EACrC,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;EACnB,IAAAC,IAAA,GA0BIF,OAAO,CAACC,IAAI;IAzBdE,wBAAwB,GAAAD,IAAA,CAAxBC,wBAAwB;IACxBC,yBAAyB,GAAAF,IAAA,CAAzBE,yBAAyB;IACzBC,GAAG,GAAAH,IAAA,CAAHG,GAAG;IACHC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IACVC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IACRC,MAAM,GAAAT,IAAA,CAANS,MAAM;IACNC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,EAAE,GAAAX,IAAA,CAAFW,EAAE;IACFC,OAAO,GAAAZ,IAAA,CAAPY,OAAO;IACPC,eAAe,GAAAb,IAAA,CAAfa,eAAe;IACfC,YAAY,GAAAd,IAAA,CAAZc,YAAY;IAEZC,OAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,KAAK,GAAAhB,IAAA,CAALgB,KAAK;IACLC,gBAAgB,GAAAjB,IAAA,CAAhBiB,gBAAgB;IAChBC,IAAI,GAAAlB,IAAA,CAAJkB,IAAI;IACJC,YAAY,GAAAnB,IAAA,CAAZmB,YAAY;IACZC,YAAY,GAAApB,IAAA,CAAZoB,YAAY;IACZC,eAAe,GAAArB,IAAA,CAAfqB,eAAe;IACfC,IAAI,GAAAtB,IAAA,CAAJsB,IAAI;IACJC,UAAU,GAAAvB,IAAA,CAAVuB,UAAU;IACPC,SAAS,OAAAC,yBAAA,aAAAzB,IAAA,EAAAJ,SAAA;EAGd,OAAO;IACL8B,sBAAsB,EAAEzB,wBAAwB;IAChD0B,uBAAuB,EAAEzB,yBAAyB;IAClDC,GAAG,EAAHA,GAAG;IACHC,MAAM,EAAEA,MAAM,IAAIwB,IAAI,CAACC,SAAS,CAACzB,MAAM,CAAC;IACxCC,QAAQ,EAARA,QAAQ;IACRyB,SAAS,EAAE,IAAAC,4CAAqB,EAACzB,UAAU,CAAC;IAC5C0B,SAAS,EAAE,IAAAD,4CAAqB,EAACxB,UAAU,CAAC;IAC5CC,QAAQ,EAARA,QAAQ;IACRgB,SAAS,EAAEI,IAAI,CAACC,SAAS,CAACL,SAAS,CAAC;IACpCf,MAAM,EAANA,MAAM;IACNC,MAAM,EAANA,MAAM;IACNC,EAAE,EAAFA,EAAE;IACFC,OAAO,EAAEA,OAAO,IAAIgB,IAAI,CAACC,SAAS,CAACjB,OAAO,CAAC;IAC3CqB,aAAa,EAAE,IAAAF,4CAAqB,EAAClB,eAAe,CAAC;IACrDqB,WAAW,EAAEpB,YAAY;IACzBE,KAAK,EAALA,KAAK;IACLmB,eAAe,EAAElB,gBAAgB,IAAIW,IAAI,CAACC,SAAS,CAACZ,gBAAgB,CAAC;IACrEC,IAAI,EAAJA,IAAI;IACJkB,WAAW,EAAEjB,YAAY;IACzBkB,WAAW,EAAEjB,YAAY,IAAIQ,IAAI,CAACC,SAAS,CAACT,YAAY,CAAC;IACzDkB,aAAa,EAAEjB,eAAe;IAC9BC,IAAI,EAAJA,IAAI;IACJiB,SAAS,EAAEhB;EACb,CAAC;AACH,CAAC;AAACiB,OAAA,CAAA3C,oBAAA,GAAAA,oBAAA"}
@@ -105,73 +105,78 @@ DBSyncManager.onSyncStatusChange = function (listener) {
105
105
  }
106
106
  };
107
107
  };
108
- DBSyncManager.sync = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
109
- var _DBSyncManager$client;
110
- var cids, lastSyncedAt, lastSyncedAtDate, lastSyncedAtDayJs, nowDayJs, diff, result, queries;
111
- return _regenerator["default"].wrap(function _callee3$(_context3) {
112
- while (1) switch (_context3.prev = _context3.next) {
113
- case 0:
114
- if ((_DBSyncManager$client = DBSyncManager.client) != null && _DBSyncManager$client.user) {
115
- _context3.next = 2;
116
- break;
117
- }
118
- return _context3.abrupt("return");
119
- case 2:
120
- cids = (0, _apis.getAllChannelIds)();
121
- if (!(cids.length === 0)) {
122
- _context3.next = 5;
123
- break;
124
- }
125
- return _context3.abrupt("return");
126
- case 5:
127
- lastSyncedAt = (0, _apis.getLastSyncedAt)({
128
- currentUserId: DBSyncManager.client.user.id
129
- });
130
- if (!lastSyncedAt) {
108
+ DBSyncManager.sync = function () {
109
+ var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(client) {
110
+ var _DBSyncManager$client;
111
+ var cids, lastSyncedAt, lastSyncedAtDate, lastSyncedAtDayJs, nowDayJs, diff, result, queries;
112
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
113
+ while (1) switch (_context3.prev = _context3.next) {
114
+ case 0:
115
+ if ((_DBSyncManager$client = DBSyncManager.client) != null && _DBSyncManager$client.user) {
116
+ _context3.next = 2;
117
+ break;
118
+ }
119
+ return _context3.abrupt("return");
120
+ case 2:
121
+ cids = (0, _apis.getAllChannelIds)();
122
+ if (!(cids.length === 0)) {
123
+ _context3.next = 5;
124
+ break;
125
+ }
126
+ return _context3.abrupt("return");
127
+ case 5:
128
+ lastSyncedAt = (0, _apis.getLastSyncedAt)({
129
+ currentUserId: DBSyncManager.client.user.id
130
+ });
131
+ if (!lastSyncedAt) {
132
+ _context3.next = 26;
133
+ break;
134
+ }
135
+ lastSyncedAtDate = new Date(lastSyncedAt);
136
+ lastSyncedAtDayJs = (0, _dayjs["default"])(lastSyncedAtDate);
137
+ nowDayJs = (0, _dayjs["default"])();
138
+ diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');
139
+ if (!(diff > 30)) {
140
+ _context3.next = 15;
141
+ break;
142
+ }
143
+ _QuickSqliteClient.QuickSqliteClient.resetDB();
131
144
  _context3.next = 26;
132
145
  break;
133
- }
134
- lastSyncedAtDate = new Date(lastSyncedAt);
135
- lastSyncedAtDayJs = (0, _dayjs["default"])(lastSyncedAtDate);
136
- nowDayJs = (0, _dayjs["default"])();
137
- diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');
138
- if (!(diff > 30)) {
139
- _context3.next = 15;
146
+ case 15:
147
+ _context3.prev = 15;
148
+ _context3.next = 18;
149
+ return DBSyncManager.client.sync(cids, lastSyncedAtDate.toISOString());
150
+ case 18:
151
+ result = _context3.sent;
152
+ queries = result.events.reduce(function (queries, event) {
153
+ queries = queries.concat((0, _handleEventToSyncDB.handleEventToSyncDB)(event, client, false));
154
+ return queries;
155
+ }, []);
156
+ if (queries.length) {
157
+ _QuickSqliteClient.QuickSqliteClient.executeSqlBatch(queries);
158
+ }
159
+ _context3.next = 26;
140
160
  break;
141
- }
142
- _QuickSqliteClient.QuickSqliteClient.resetDB();
143
- _context3.next = 26;
144
- break;
145
- case 15:
146
- _context3.prev = 15;
147
- _context3.next = 18;
148
- return DBSyncManager.client.sync(cids, lastSyncedAtDate.toISOString());
149
- case 18:
150
- result = _context3.sent;
151
- queries = result.events.reduce(function (queries, event) {
152
- queries = queries.concat((0, _handleEventToSyncDB.handleEventToSyncDB)(event, false));
153
- return queries;
154
- }, []);
155
- if (queries.length) {
156
- _QuickSqliteClient.QuickSqliteClient.executeSqlBatch(queries);
157
- }
158
- _context3.next = 26;
159
- break;
160
- case 23:
161
- _context3.prev = 23;
162
- _context3.t0 = _context3["catch"](15);
163
- _QuickSqliteClient.QuickSqliteClient.resetDB();
164
- case 26:
165
- (0, _apis.upsertUserSyncStatus)({
166
- currentUserId: DBSyncManager.client.user.id,
167
- lastSyncedAt: new Date().toString()
168
- });
169
- case 27:
170
- case "end":
171
- return _context3.stop();
172
- }
173
- }, _callee3, null, [[15, 23]]);
174
- }));
161
+ case 23:
162
+ _context3.prev = 23;
163
+ _context3.t0 = _context3["catch"](15);
164
+ _QuickSqliteClient.QuickSqliteClient.resetDB();
165
+ case 26:
166
+ (0, _apis.upsertUserSyncStatus)({
167
+ currentUserId: DBSyncManager.client.user.id,
168
+ lastSyncedAt: new Date().toString()
169
+ });
170
+ case 27:
171
+ case "end":
172
+ return _context3.stop();
173
+ }
174
+ }, _callee3, null, [[15, 23]]);
175
+ }));
176
+ return function (_x3) {
177
+ return _ref3.apply(this, arguments);
178
+ };
179
+ }();
175
180
  DBSyncManager.syncAndExecutePendingTasks = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
176
181
  return _regenerator["default"].wrap(function _callee4$(_context4) {
177
182
  while (1) switch (_context4.prev = _context4.next) {
@@ -186,7 +191,7 @@ DBSyncManager.syncAndExecutePendingTasks = (0, _asyncToGenerator2["default"])(_r
186
191
  return DBSyncManager.executePendingTasks(DBSyncManager.client);
187
192
  case 4:
188
193
  _context4.next = 6;
189
- return DBSyncManager.sync();
194
+ return DBSyncManager.sync(DBSyncManager.client);
190
195
  case 6:
191
196
  case "end":
192
197
  return _context4.stop();
@@ -231,7 +236,7 @@ DBSyncManager.queueTask = function () {
231
236
  }
232
237
  }, _callee5, null, [[2, 8]]);
233
238
  }));
234
- return function (_x3) {
239
+ return function (_x4) {
235
240
  return _ref6.apply(this, arguments);
236
241
  };
237
242
  }();
@@ -277,7 +282,7 @@ DBSyncManager.executeTask = function () {
277
282
  }
278
283
  }, _callee6);
279
284
  }));
280
- return function (_x4) {
285
+ return function (_x5) {
281
286
  return _ref8.apply(this, arguments);
282
287
  };
283
288
  }();
@@ -336,7 +341,7 @@ DBSyncManager.executePendingTasks = function () {
336
341
  }
337
342
  }, _callee7, null, [[6, 11]]);
338
343
  }));
339
- return function (_x5) {
344
+ return function (_x6) {
340
345
  return _ref9.apply(this, arguments);
341
346
  };
342
347
  }();
@@ -1 +1 @@
1
- {"version":3,"names":["_dayjs","_interopRequireDefault","require","_handleEventToSyncDB","_apis","_addPendingTask","_deletePendingTask","_getPendingTasks","_QuickSqliteClient","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","_createClass2","_classCallCheck2","exports","syncStatus","listeners","client","getSyncStatus","init","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_client$user","_client$wsConnection","wrap","_callee2$","_context2","prev","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","_ref2","_callee","event","_callee$","_context","online","stop","_x2","apply","arguments","_x","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","_callee3","_DBSyncManager$client","cids","lastSyncedAt","lastSyncedAtDate","lastSyncedAtDayJs","nowDayJs","diff","result","queries","_callee3$","_context3","abrupt","getAllChannelIds","getLastSyncedAt","currentUserId","Date","dayjs","QuickSqliteClient","resetDB","toISOString","sent","events","reduce","concat","handleEventToSyncDB","executeSqlBatch","t0","upsertUserSyncStatus","_callee4","_callee4$","_context4","executePendingTasks","queueTask","_ref6","_callee5","_ref5","task","removeFromApi","response","_response","_response$data","_callee5$","_context5","addPendingTask","executeTask","data","code","_x3","_ref8","_callee6","_ref7","channel","_callee6$","_context6","channelType","channelId","type","sendReaction","_toConsumableArray2","payload","deleteReaction","deleteMessage","Error","_x4","_ref9","_callee7","queue","_iterator","_step","_response2","_response2$data","_callee7$","_context7","getPendingTasks","deletePendingTask","_x5","dropPendingTasks","conditions","tasks","_iterator2","_step2"],"sources":["DBSyncManager.ts"],"sourcesContent":["import type { AxiosError } from 'axios';\nimport dayjs from 'dayjs';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertUserSyncStatus } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n } else {\n this.syncStatus = false;\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n const cids = getAllChannelIds();\n // If there are no channels, then there is no need to sync.\n if (cids.length === 0) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n\n if (lastSyncedAt) {\n const lastSyncedAtDate = new Date(lastSyncedAt);\n const lastSyncedAtDayJs = dayjs(lastSyncedAtDate);\n const nowDayJs = dayjs();\n const diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');\n if (diff > 30) {\n // stream backend will send an error if we try to sync after 30 days.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n } else {\n try {\n const result = await this.client.sync(cids, lastSyncedAtDate.toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n }\n upsertUserSyncStatus({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dayjs","_interopRequireDefault","require","_handleEventToSyncDB","_apis","_addPendingTask","_deletePendingTask","_getPendingTasks","_QuickSqliteClient","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","_createClass2","_classCallCheck2","exports","syncStatus","listeners","client","getSyncStatus","init","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_client$user","_client$wsConnection","wrap","_callee2$","_context2","prev","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","_ref2","_callee","event","_callee$","_context","online","stop","_x2","apply","arguments","_x","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","_ref3","_callee3","_DBSyncManager$client","cids","lastSyncedAt","lastSyncedAtDate","lastSyncedAtDayJs","nowDayJs","diff","result","queries","_callee3$","_context3","abrupt","getAllChannelIds","getLastSyncedAt","currentUserId","Date","dayjs","QuickSqliteClient","resetDB","toISOString","sent","events","reduce","concat","handleEventToSyncDB","executeSqlBatch","t0","upsertUserSyncStatus","_x3","_callee4","_callee4$","_context4","executePendingTasks","queueTask","_ref6","_callee5","_ref5","task","removeFromApi","response","_response","_response$data","_callee5$","_context5","addPendingTask","executeTask","data","code","_x4","_ref8","_callee6","_ref7","channel","_callee6$","_context6","channelType","channelId","type","sendReaction","_toConsumableArray2","payload","deleteReaction","deleteMessage","Error","_x5","_ref9","_callee7","queue","_iterator","_step","_response2","_response2$data","_callee7$","_context7","getPendingTasks","deletePendingTask","_x6","dropPendingTasks","conditions","tasks","_iterator2","_step2"],"sources":["DBSyncManager.ts"],"sourcesContent":["import type { AxiosError } from 'axios';\nimport dayjs from 'dayjs';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertUserSyncStatus } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n } else {\n this.syncStatus = false;\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n if (!this.client?.user) return;\n const cids = getAllChannelIds();\n // If there are no channels, then there is no need to sync.\n if (cids.length === 0) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n\n if (lastSyncedAt) {\n const lastSyncedAtDate = new Date(lastSyncedAt);\n const lastSyncedAtDayJs = dayjs(lastSyncedAtDate);\n const nowDayJs = dayjs();\n const diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');\n if (diff > 30) {\n // stream backend will send an error if we try to sync after 30 days.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n } else {\n try {\n const result = await this.client.sync(cids, lastSyncedAtDate.toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, client, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n }\n upsertUserSyncStatus({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync(this.client);\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.27.0-beta.10"
2
+ "version": "5.27.0-beta.12"
3
3
  }
@@ -235,7 +235,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
235
235
  var initialSnapPoint = getInitialSnapPoint();
236
236
  var finalSnapPoint = _reactNative.Platform.OS === 'android' ? fullScreenHeight - topInset - handleHeight : fullScreenHeight - topInset;
237
237
  var snapPoints = (0, _react.useMemo)(function () {
238
- return [initialSnapPoint, finalSnapPoint];
238
+ return [Math.max(0, initialSnapPoint), Math.max(0, finalSnapPoint)];
239
239
  }, [initialSnapPoint, finalSnapPoint]);
240
240
  return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_bottomSheet["default"], {
241
241
  containerHeight: fullScreenHeight,