"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "PresenceGroup", { enumerable: true, get: function() { return PresenceGroup; } }); const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); const _define_property = require("@swc/helpers/_/_define_property"); const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); const _getNextChildMapping = require("../utils/groups/getNextChildMapping"); const _getChildMapping = require("../utils/groups/getChildMapping"); const _PresenceGroupItemProvider = require("./PresenceGroupItemProvider"); class PresenceGroup extends _react.Component { static getDerivedStateFromProps(nextProps, { childMapping: prevChildMapping, firstRender }) { const nextChildMapping = (0, _getChildMapping.getChildMapping)(nextProps.children); return { childMapping: firstRender ? nextChildMapping : (0, _getNextChildMapping.getNextChildMapping)(prevChildMapping, nextChildMapping), firstRender: false }; } componentDidMount() { this.mounted = true; } componentWillUnmount() { this.mounted = false; } render() { return /*#__PURE__*/ _react.createElement(_react.Fragment, null, Object.entries(this.state.childMapping).map(([childKey, childProps])=>/*#__PURE__*/ _react.createElement(_PresenceGroupItemProvider.PresenceGroupItemProvider, { ...childProps, childKey: childKey, key: childKey, onExit: this.handleExit }, childProps.element))); } constructor(props, context){ super(props, context); (0, _define_property._)(this, "mounted", false); (0, _define_property._)(this, "handleExit", (childKey)=>{ const currentChildMapping = (0, _getChildMapping.getChildMapping)(this.props.children); if (childKey in currentChildMapping) { return; } if (this.mounted) { this.setState((state)=>{ const childMapping = { ...state.childMapping }; delete childMapping[childKey]; return { childMapping }; }); } }); this.state = { childMapping: {}, firstRender: true }; } }