UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

100 lines (98 loc) 5.11 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase")); var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey")); var _EventEmitter = _interopRequireDefault(require("../../../../utils/events/EventEmitter")); var _isServer = require("../../../../utils/isServer"); var _PersonsApi = require("./PersonsApi"); var _friends = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("friends"); var _friendsObject = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("friendsObject"); var _eventEmitter = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("eventEmitter"); var _initialized = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("initialized"); var _loading = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("loading"); class FriendsHelper {} Object.defineProperty(FriendsHelper, _friends, { writable: true, value: [] }); Object.defineProperty(FriendsHelper, _friendsObject, { writable: true, value: {} }); Object.defineProperty(FriendsHelper, _eventEmitter, { writable: true, value: new _EventEmitter.default() }); Object.defineProperty(FriendsHelper, _initialized, { writable: true, value: false }); Object.defineProperty(FriendsHelper, _loading, { writable: true, value: false }); FriendsHelper.init = async () => { if (!(0, _isServer.isServer)() && !(0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _initialized)[_initialized] && !(0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _loading)[_loading]) { try { (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _loading)[_loading] = true; await window.chayns.ready; if (window.chayns.env.user && window.chayns.env.user.isAuthenticated) { const raw = await (0, _PersonsApi.fetchFriends)().catch(() => []); (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends] = raw.map(FriendsHelper.convertFriend); (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends].forEach(e => { (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friendsObject)[_friendsObject][e.personId] = e; }); (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _eventEmitter)[_eventEmitter].emit('update', (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends]); } (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _initialized)[_initialized] = true; } finally { (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _loading)[_loading] = false; } } }; FriendsHelper.isFriend = personId => !!((0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friendsObject)[_friendsObject][personId] || false); FriendsHelper.getFriendsList = () => (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends]; FriendsHelper.setFriend = async function (personId, userId, fullName, friendship) { if (friendship === void 0) { friendship = true; } const success = await (0, _PersonsApi.setFriend)(personId, friendship); if (!success) return; if (friendship) { const friend = FriendsHelper.convertFriend({ personId, userId, fullName }); (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends].push(friend); (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friendsObject)[_friendsObject][personId] = friend; } else { (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends].splice((0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends].findIndex(person => person.personId === personId), 1); delete (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friendsObject)[_friendsObject][personId]; } (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _eventEmitter)[_eventEmitter].emit('update', (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _friends)[_friends]); }; FriendsHelper.addUpdateListener = listener => { (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _eventEmitter)[_eventEmitter].on('update', listener); }; FriendsHelper.removeUpdateListener = listener => { (0, _classPrivateFieldLooseBase2.default)(FriendsHelper, _eventEmitter)[_eventEmitter].off('update', listener); }; FriendsHelper.convertFriend = friend => ({ type: 'PERSON', id: friend.personId, name: friend.fullName || [friend.firstName, friend.lastName].join(' ').trim(), userId: friend.userId, fullName: friend.fullName || [friend.firstName, friend.lastName].join(' ').trim(), firstName: friend.firstName, lastName: friend.lastName, personId: friend.personId, imageUrl: `https://sub60.tobit.com/u/${friend.personId}?size=100`, isFriend: true, verificationState: !!friend.verificationState }); var _default = FriendsHelper; exports.default = _default; //# sourceMappingURL=FriendsHelper.js.map