matrix-react-sdk
Version:
SDK for matrix.org using React
45 lines (42 loc) • 6.49 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BaseGrouper = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
/*
Copyright 2024 New Vector Ltd.
Copyright 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.
*/
/* Grouper classes determine when events can be grouped together in a summary.
* Groupers should have the following methods:
* - canStartGroup (static): determines if a new group should be started with the
* given event
* - shouldGroup: determines if the given event should be added to an existing group
* - add: adds an event to an existing group (should only be called if shouldGroup
* return true)
* - getTiles: returns the tiles that represent the group
* - getNewPrevEvent: returns the event that should be used as the new prevEvent
* when determining things such as whether a date separator is necessary
*/
class BaseGrouper {
constructor(panel, firstEventAndShouldShow, prevEvent, lastShownEvent, nextEvent, nextEventTile) {
(0, _defineProperty2.default)(this, "events", []);
// events that we include in the group but then eject out and place above the group.
(0, _defineProperty2.default)(this, "ejectedEvents", []);
(0, _defineProperty2.default)(this, "readMarker", void 0);
this.panel = panel;
this.firstEventAndShouldShow = firstEventAndShouldShow;
this.prevEvent = prevEvent;
this.lastShownEvent = lastShownEvent;
this.nextEvent = nextEvent;
this.nextEventTile = nextEventTile;
this.readMarker = panel.readMarkerForEvent(firstEventAndShouldShow.event.getId(), firstEventAndShouldShow.event === lastShownEvent);
}
}
exports.BaseGrouper = BaseGrouper;
(0, _defineProperty2.default)(BaseGrouper, "canStartGroup", (_panel, _ev) => true);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlR3JvdXBlciIsImNvbnN0cnVjdG9yIiwicGFuZWwiLCJmaXJzdEV2ZW50QW5kU2hvdWxkU2hvdyIsInByZXZFdmVudCIsImxhc3RTaG93bkV2ZW50IiwibmV4dEV2ZW50IiwibmV4dEV2ZW50VGlsZSIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwicmVhZE1hcmtlciIsInJlYWRNYXJrZXJGb3JFdmVudCIsImV2ZW50IiwiZ2V0SWQiLCJleHBvcnRzIiwiX3BhbmVsIiwiX2V2Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RydWN0dXJlcy9ncm91cGVyL0Jhc2VHcm91cGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgTWF0cml4RXZlbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCBNZXNzYWdlUGFuZWwsIHsgV3JhcHBlZEV2ZW50IH0gZnJvbSBcIi4uL01lc3NhZ2VQYW5lbFwiO1xuXG4vKiBHcm91cGVyIGNsYXNzZXMgZGV0ZXJtaW5lIHdoZW4gZXZlbnRzIGNhbiBiZSBncm91cGVkIHRvZ2V0aGVyIGluIGEgc3VtbWFyeS5cbiAqIEdyb3VwZXJzIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczpcbiAqIC0gY2FuU3RhcnRHcm91cCAoc3RhdGljKTogZGV0ZXJtaW5lcyBpZiBhIG5ldyBncm91cCBzaG91bGQgYmUgc3RhcnRlZCB3aXRoIHRoZVxuICogICBnaXZlbiBldmVudFxuICogLSBzaG91bGRHcm91cDogZGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gZXZlbnQgc2hvdWxkIGJlIGFkZGVkIHRvIGFuIGV4aXN0aW5nIGdyb3VwXG4gKiAtIGFkZDogYWRkcyBhbiBldmVudCB0byBhbiBleGlzdGluZyBncm91cCAoc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIHNob3VsZEdyb3VwXG4gKiAgIHJldHVybiB0cnVlKVxuICogLSBnZXRUaWxlczogcmV0dXJucyB0aGUgdGlsZXMgdGhhdCByZXByZXNlbnQgdGhlIGdyb3VwXG4gKiAtIGdldE5ld1ByZXZFdmVudDogcmV0dXJucyB0aGUgZXZlbnQgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgbmV3IHByZXZFdmVudFxuICogICB3aGVuIGRldGVybWluaW5nIHRoaW5ncyBzdWNoIGFzIHdoZXRoZXIgYSBkYXRlIHNlcGFyYXRvciBpcyBuZWNlc3NhcnlcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VHcm91cGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGNhblN0YXJ0R3JvdXAgPSAoX3BhbmVsOiBNZXNzYWdlUGFuZWwsIF9ldjogV3JhcHBlZEV2ZW50KTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgcHVibGljIGV2ZW50czogV3JhcHBlZEV2ZW50W10gPSBbXTtcbiAgICAvLyBldmVudHMgdGhhdCB3ZSBpbmNsdWRlIGluIHRoZSBncm91cCBidXQgdGhlbiBlamVjdCBvdXQgYW5kIHBsYWNlIGFib3ZlIHRoZSBncm91cC5cbiAgICBwdWJsaWMgZWplY3RlZEV2ZW50czogV3JhcHBlZEV2ZW50W10gPSBbXTtcbiAgICBwdWJsaWMgcmVhZE1hcmtlcjogUmVhY3ROb2RlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcGFuZWw6IE1lc3NhZ2VQYW5lbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGZpcnN0RXZlbnRBbmRTaG91bGRTaG93OiBXcmFwcGVkRXZlbnQsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwcmV2RXZlbnQ6IE1hdHJpeEV2ZW50IHwgbnVsbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxhc3RTaG93bkV2ZW50OiBNYXRyaXhFdmVudCB8IHVuZGVmaW5lZCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG5leHRFdmVudDogV3JhcHBlZEV2ZW50IHwgbnVsbCxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG5leHRFdmVudFRpbGU/OiBNYXRyaXhFdmVudCB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmVhZE1hcmtlciA9IHBhbmVsLnJlYWRNYXJrZXJGb3JFdmVudChcbiAgICAgICAgICAgIGZpcnN0RXZlbnRBbmRTaG91bGRTaG93LmV2ZW50LmdldElkKCkhLFxuICAgICAgICAgICAgZmlyc3RFdmVudEFuZFNob3VsZFNob3cuZXZlbnQgPT09IGxhc3RTaG93bkV2ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG91bGRHcm91cChldjogV3JhcHBlZEV2ZW50KTogYm9vbGVhbjtcbiAgICBwdWJsaWMgYWJzdHJhY3QgYWRkKGV2OiBXcmFwcGVkRXZlbnQpOiB2b2lkO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRUaWxlcygpOiBSZWFjdE5vZGVbXTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TmV3UHJldkV2ZW50KCk6IE1hdHJpeEV2ZW50O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFlQSxXQUFXLENBQUM7RUFRdkJDLFdBQVdBLENBQ0VDLEtBQW1CLEVBQ25CQyx1QkFBcUMsRUFDckNDLFNBQTZCLEVBQzdCQyxjQUF1QyxFQUN2Q0MsU0FBOEIsRUFDOUJDLGFBQWtDLEVBQ3BEO0lBQUEsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxrQkFaOEIsRUFBRTtJQUNsQztJQUFBLElBQUFELGdCQUFBLENBQUFDLE9BQUEseUJBQ3VDLEVBQUU7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsS0FJckJQLEtBQW1CLEdBQW5CQSxLQUFtQjtJQUFBLEtBQ25CQyx1QkFBcUMsR0FBckNBLHVCQUFxQztJQUFBLEtBQ3JDQyxTQUE2QixHQUE3QkEsU0FBNkI7SUFBQSxLQUM3QkMsY0FBdUMsR0FBdkNBLGNBQXVDO0lBQUEsS0FDdkNDLFNBQThCLEdBQTlCQSxTQUE4QjtJQUFBLEtBQzlCQyxhQUFrQyxHQUFsQ0EsYUFBa0M7SUFFbEQsSUFBSSxDQUFDRyxVQUFVLEdBQUdSLEtBQUssQ0FBQ1Msa0JBQWtCLENBQ3RDUix1QkFBdUIsQ0FBQ1MsS0FBSyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxFQUNyQ1YsdUJBQXVCLENBQUNTLEtBQUssS0FBS1AsY0FDdEMsQ0FBQztFQUNMO0FBTUo7QUFBQ1MsT0FBQSxDQUFBZCxXQUFBLEdBQUFBLFdBQUE7QUFBQSxJQUFBUSxnQkFBQSxDQUFBQyxPQUFBLEVBMUJxQlQsV0FBVyxtQkFDQyxDQUFDZSxNQUFvQixFQUFFQyxHQUFpQixLQUFjLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=