UNPKG

matrix-react-sdk

Version:
54 lines (51 loc) 8.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useUnreadNotifications = void 0; var _matrix = require("matrix-js-sdk/src/matrix"); var _react = require("react"); var _RoomNotifs = require("../RoomNotifs"); var _NotificationLevel = require("../stores/notifications/NotificationLevel"); var _useEventEmitter = require("./useEventEmitter"); /* Copyright 2024 New Vector Ltd. Copyright 2022, 2023 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const useUnreadNotifications = (room, threadId) => { const [symbol, setSymbol] = (0, _react.useState)(null); const [count, setCount] = (0, _react.useState)(0); const [level, setLevel] = (0, _react.useState)(_NotificationLevel.NotificationLevel.None); (0, _useEventEmitter.useEventEmitter)(room, _matrix.RoomEvent.UnreadNotifications, (unreadNotifications, evtThreadId) => { // Discarding all events not related to the thread if one has been setup if (threadId && threadId !== evtThreadId) return; updateNotificationState(); }); (0, _useEventEmitter.useEventEmitter)(room, _matrix.RoomEvent.Receipt, () => updateNotificationState()); (0, _useEventEmitter.useEventEmitter)(room, _matrix.RoomEvent.Timeline, () => updateNotificationState()); (0, _useEventEmitter.useEventEmitter)(room, _matrix.RoomEvent.Redaction, () => updateNotificationState()); (0, _useEventEmitter.useEventEmitter)(room, _matrix.RoomEvent.LocalEchoUpdated, () => updateNotificationState()); (0, _useEventEmitter.useEventEmitter)(room, _matrix.RoomEvent.MyMembership, () => updateNotificationState()); const updateNotificationState = (0, _react.useCallback)(() => { const { symbol, count, level } = (0, _RoomNotifs.determineUnreadState)(room, threadId, false); setSymbol(symbol); setCount(count); setLevel(level); }, [room, threadId]); (0, _react.useEffect)(() => { updateNotificationState(); }, [updateNotificationState]); return { symbol, count, level }; }; exports.useUnreadNotifications = useUnreadNotifications; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9Sb29tTm90aWZzIiwiX05vdGlmaWNhdGlvbkxldmVsIiwiX3VzZUV2ZW50RW1pdHRlciIsInVzZVVucmVhZE5vdGlmaWNhdGlvbnMiLCJyb29tIiwidGhyZWFkSWQiLCJzeW1ib2wiLCJzZXRTeW1ib2wiLCJ1c2VTdGF0ZSIsImNvdW50Iiwic2V0Q291bnQiLCJsZXZlbCIsInNldExldmVsIiwiTm90aWZpY2F0aW9uTGV2ZWwiLCJOb25lIiwidXNlRXZlbnRFbWl0dGVyIiwiUm9vbUV2ZW50IiwiVW5yZWFkTm90aWZpY2F0aW9ucyIsInVucmVhZE5vdGlmaWNhdGlvbnMiLCJldnRUaHJlYWRJZCIsInVwZGF0ZU5vdGlmaWNhdGlvblN0YXRlIiwiUmVjZWlwdCIsIlRpbWVsaW5lIiwiUmVkYWN0aW9uIiwiTG9jYWxFY2hvVXBkYXRlZCIsIk15TWVtYmVyc2hpcCIsInVzZUNhbGxiYWNrIiwiZGV0ZXJtaW5lVW5yZWFkU3RhdGUiLCJ1c2VFZmZlY3QiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVVucmVhZE5vdGlmaWNhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIsIDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgUm9vbUV2ZW50IH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHR5cGUgeyBOb3RpZmljYXRpb25Db3VudCwgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IGRldGVybWluZVVucmVhZFN0YXRlIH0gZnJvbSBcIi4uL1Jvb21Ob3RpZnNcIjtcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkxldmVsIH0gZnJvbSBcIi4uL3N0b3Jlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkxldmVsXCI7XG5pbXBvcnQgeyB1c2VFdmVudEVtaXR0ZXIgfSBmcm9tIFwiLi91c2VFdmVudEVtaXR0ZXJcIjtcblxuZXhwb3J0IGNvbnN0IHVzZVVucmVhZE5vdGlmaWNhdGlvbnMgPSAoXG4gICAgcm9vbT86IFJvb20sXG4gICAgdGhyZWFkSWQ/OiBzdHJpbmcsXG4pOiB7XG4gICAgc3ltYm9sOiBzdHJpbmcgfCBudWxsO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgbGV2ZWw6IE5vdGlmaWNhdGlvbkxldmVsO1xufSA9PiB7XG4gICAgY29uc3QgW3N5bWJvbCwgc2V0U3ltYm9sXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtjb3VudCwgc2V0Q291bnRdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcbiAgICBjb25zdCBbbGV2ZWwsIHNldExldmVsXSA9IHVzZVN0YXRlPE5vdGlmaWNhdGlvbkxldmVsPihOb3RpZmljYXRpb25MZXZlbC5Ob25lKTtcblxuICAgIHVzZUV2ZW50RW1pdHRlcihcbiAgICAgICAgcm9vbSxcbiAgICAgICAgUm9vbUV2ZW50LlVucmVhZE5vdGlmaWNhdGlvbnMsXG4gICAgICAgICh1bnJlYWROb3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25Db3VudCwgZXZ0VGhyZWFkSWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIC8vIERpc2NhcmRpbmcgYWxsIGV2ZW50cyBub3QgcmVsYXRlZCB0byB0aGUgdGhyZWFkIGlmIG9uZSBoYXMgYmVlbiBzZXR1cFxuICAgICAgICAgICAgaWYgKHRocmVhZElkICYmIHRocmVhZElkICE9PSBldnRUaHJlYWRJZCkgcmV0dXJuO1xuICAgICAgICAgICAgdXBkYXRlTm90aWZpY2F0aW9uU3RhdGUoKTtcbiAgICAgICAgfSxcbiAgICApO1xuICAgIHVzZUV2ZW50RW1pdHRlcihyb29tLCBSb29tRXZlbnQuUmVjZWlwdCwgKCkgPT4gdXBkYXRlTm90aWZpY2F0aW9uU3RhdGUoKSk7XG4gICAgdXNlRXZlbnRFbWl0dGVyKHJvb20sIFJvb21FdmVudC5UaW1lbGluZSwgKCkgPT4gdXBkYXRlTm90aWZpY2F0aW9uU3RhdGUoKSk7XG4gICAgdXNlRXZlbnRFbWl0dGVyKHJvb20sIFJvb21FdmVudC5SZWRhY3Rpb24sICgpID0+IHVwZGF0ZU5vdGlmaWNhdGlvblN0YXRlKCkpO1xuICAgIHVzZUV2ZW50RW1pdHRlcihyb29tLCBSb29tRXZlbnQuTG9jYWxFY2hvVXBkYXRlZCwgKCkgPT4gdXBkYXRlTm90aWZpY2F0aW9uU3RhdGUoKSk7XG4gICAgdXNlRXZlbnRFbWl0dGVyKHJvb20sIFJvb21FdmVudC5NeU1lbWJlcnNoaXAsICgpID0+IHVwZGF0ZU5vdGlmaWNhdGlvblN0YXRlKCkpO1xuXG4gICAgY29uc3QgdXBkYXRlTm90aWZpY2F0aW9uU3RhdGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3ltYm9sLCBjb3VudCwgbGV2ZWwgfSA9IGRldGVybWluZVVucmVhZFN0YXRlKHJvb20sIHRocmVhZElkLCBmYWxzZSk7XG4gICAgICAgIHNldFN5bWJvbChzeW1ib2wpO1xuICAgICAgICBzZXRDb3VudChjb3VudCk7XG4gICAgICAgIHNldExldmVsKGxldmVsKTtcbiAgICB9LCBbcm9vbSwgdGhyZWFkSWRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvblN0YXRlKCk7XG4gICAgfSwgW3VwZGF0ZU5vdGlmaWNhdGlvblN0YXRlXSk7XG5cbiAgICByZXR1cm4ge1xu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