UNPKG

matrix-react-sdk

Version:
86 lines (82 loc) 14.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.UserOnboardingPage = UserOnboardingPage; exports.showUserOnboardingPage = showUserOnboardingPage; var _react = _interopRequireWildcard(require("react")); var React = _react; var _useIsInitialSyncComplete = require("../../../hooks/useIsInitialSyncComplete"); var _useSettings = require("../../../hooks/useSettings"); var _useUserOnboardingContext = require("../../../hooks/useUserOnboardingContext"); var _useUserOnboardingTasks = require("../../../hooks/useUserOnboardingTasks"); var _MatrixClientPeg = require("../../../MatrixClientPeg"); var _SdkConfig = _interopRequireDefault(require("../../../SdkConfig")); var _pages = require("../../../utils/pages"); var _AutoHideScrollbar = _interopRequireDefault(require("../../structures/AutoHideScrollbar")); var _EmbeddedPage = _interopRequireDefault(require("../../structures/EmbeddedPage")); var _HomePage = _interopRequireDefault(require("../../structures/HomePage")); var _UserOnboardingHeader = require("./UserOnboardingHeader"); var _UserOnboardingList = require("./UserOnboardingList"); var _MatrixClientContext = require("../../../contexts/MatrixClientContext"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /* Copyright 2024 New Vector Ltd. Copyright 2020-2022 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. */ // We decided to only show the new user onboarding page to new users // For now, that means we set the cutoff at 2022-07-01 00:00 UTC const USER_ONBOARDING_CUTOFF_DATE = new Date(1656633600); function showUserOnboardingPage(useCase) { return useCase !== null || _MatrixClientPeg.MatrixClientPeg.userRegisteredAfter(USER_ONBOARDING_CUTOFF_DATE); } const ANIMATION_DURATION = 2800; function UserOnboardingPage({ justRegistered = false }) { const cli = (0, _MatrixClientContext.useMatrixClientContext)(); const config = _SdkConfig.default.get(); const pageUrl = (0, _pages.getHomePageUrl)(config, cli); const useCase = (0, _useSettings.useSettingValue)("FTUE.useCaseSelection"); const context = (0, _useUserOnboardingContext.useUserOnboardingContext)(); const tasks = (0, _useUserOnboardingTasks.useUserOnboardingTasks)(context); const initialSyncComplete = (0, _useIsInitialSyncComplete.useInitialSyncComplete)(); const [showList, setShowList] = (0, _react.useState)(false); (0, _react.useEffect)(() => { if (initialSyncComplete) { const handler = window.setTimeout(() => { setShowList(true); }, ANIMATION_DURATION); return () => { clearTimeout(handler); }; } else { setShowList(false); } }, [initialSyncComplete, setShowList]); // Only show new onboarding list to users who registered after a given date or have chosen a use case if (!showUserOnboardingPage(useCase)) { return /*#__PURE__*/React.createElement(_HomePage.default, { justRegistered: justRegistered }); } if (pageUrl) { return /*#__PURE__*/React.createElement(_EmbeddedPage.default, { className: "mx_HomePage", url: pageUrl, scrollbar: true }); } return /*#__PURE__*/React.createElement(_AutoHideScrollbar.default, { className: "mx_UserOnboardingPage" }, /*#__PURE__*/React.createElement(_UserOnboardingHeader.UserOnboardingHeader, { useCase: useCase }), showList && /*#__PURE__*/React.createElement(_UserOnboardingList.UserOnboardingList, { tasks: tasks })); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJSZWFjdCIsIl91c2VJc0luaXRpYWxTeW5jQ29tcGxldGUiLCJfdXNlU2V0dGluZ3MiLCJfdXNlVXNlck9uYm9hcmRpbmdDb250ZXh0IiwiX3VzZVVzZXJPbmJvYXJkaW5nVGFza3MiLCJfTWF0cml4Q2xpZW50UGVnIiwiX1Nka0NvbmZpZyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcGFnZXMiLCJfQXV0b0hpZGVTY3JvbGxiYXIiLCJfRW1iZWRkZWRQYWdlIiwiX0hvbWVQYWdlIiwiX1VzZXJPbmJvYXJkaW5nSGVhZGVyIiwiX1VzZXJPbmJvYXJkaW5nTGlzdCIsIl9NYXRyaXhDbGllbnRDb250ZXh0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVVNFUl9PTkJPQVJESU5HX0NVVE9GRl9EQVRFIiwiRGF0ZSIsInNob3dVc2VyT25ib2FyZGluZ1BhZ2UiLCJ1c2VDYXNlIiwiTWF0cml4Q2xpZW50UGVnIiwidXNlclJlZ2lzdGVyZWRBZnRlciIsIkFOSU1BVElPTl9EVVJBVElPTiIsIlVzZXJPbmJvYXJkaW5nUGFnZSIsImp1c3RSZWdpc3RlcmVkIiwiY2xpIiwidXNlTWF0cml4Q2xpZW50Q29udGV4dCIsImNvbmZpZyIsIlNka0NvbmZpZyIsInBhZ2VVcmwiLCJnZXRIb21lUGFnZVVybCIsInVzZVNldHRpbmdWYWx1ZSIsImNvbnRleHQiLCJ1c2VVc2VyT25ib2FyZGluZ0NvbnRleHQiLCJ0YXNrcyIsInVzZVVzZXJPbmJvYXJkaW5nVGFza3MiLCJpbml0aWFsU3luY0NvbXBsZXRlIiwidXNlSW5pdGlhbFN5bmNDb21wbGV0ZSIsInNob3dMaXN0Iiwic2V0U2hvd0xpc3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsImhhbmRsZXIiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInVybCIsInNjcm9sbGJhciIsIlVzZXJPbmJvYXJkaW5nSGVhZGVyIiwiVXNlck9uYm9hcmRpbmdMaXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvdXNlci1vbmJvYXJkaW5nL1VzZXJPbmJvYXJkaW5nUGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAtMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgdXNlSW5pdGlhbFN5bmNDb21wbGV0ZSB9IGZyb20gXCIuLi8uLi8uLi9ob29rcy91c2VJc0luaXRpYWxTeW5jQ29tcGxldGVcIjtcbmltcG9ydCB7IHVzZVNldHRpbmdWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi9ob29rcy91c2VTZXR0aW5nc1wiO1xuaW1wb3J0IHsgdXNlVXNlck9uYm9hcmRpbmdDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZVVzZXJPbmJvYXJkaW5nQ29udGV4dFwiO1xuaW1wb3J0IHsgdXNlVXNlck9uYm9hcmRpbmdUYXNrcyB9IGZyb20gXCIuLi8uLi8uLi9ob29rcy91c2VVc2VyT25ib2FyZGluZ1Rhc2tzXCI7XG5pbXBvcnQgeyBNYXRyaXhDbGllbnRQZWcgfSBmcm9tIFwiLi4vLi4vLi4vTWF0cml4Q2xpZW50UGVnXCI7XG5pbXBvcnQgU2RrQ29uZmlnIGZyb20gXCIuLi8uLi8uLi9TZGtDb25maWdcIjtcbmltcG9ydCB7IFVzZUNhc2UgfSBmcm9tIFwiLi4vLi4vLi4vc2V0dGluZ3MvZW51bXMvVXNlQ2FzZVwiO1xuaW1wb3J0IHsgZ2V0SG9tZVBhZ2VVcmwgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcGFnZXNcIjtcbmltcG9ydCBBdXRvSGlkZVNjcm9sbGJhciBmcm9tIFwiLi4vLi4vc3RydWN0dXJlcy9BdXRvSGlkZVNjcm9sbGJhclwiO1xuaW1wb3J0IEVtYmVkZGVkUGFnZSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlcy9FbWJlZGRlZFBhZ2VcIjtcbmltcG9ydCBIb21lUGFnZSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlcy9Ib21lUGFnZVwiO1xuaW1wb3J0IHsgVXNlck9uYm9hcmRpbmdIZWFkZXIgfSBmcm9tIFwiLi9Vc2VyT25ib2FyZGluZ0hlYWRlclwiO1xuaW1wb3J0IHsgVXNlck9uYm9hcmRpbmdMaXN0IH0gZnJvbSBcIi4vVXNlck9uYm9hcmRpbmdMaXN0XCI7XG5pbXBvcnQgeyB1c2VNYXRyaXhDbGllbnRDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL2NvbnRleHRzL01hdHJpeENsaWVudENvbnRleHRcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICBqdXN0UmVnaXN0ZXJlZD86IGJvb2xlYW47XG59XG5cbi8vIFdlIGRlY2lkZWQgdG8gb25seSBzaG93IHRoZSBuZXcgdXNlciBvbmJvYXJkaW5nIHBhZ2UgdG8gbmV3IHVzZXJzXG4vLyBGb3Igbm93LCB0aGF0IG1lYW5zIHdlIHNldCB0aGUgY3V0b2ZmIGF0IDIwMjItMDctMDEgMDA6MDAgVVRDXG5jb25zdCBVU0VSX09OQk9BUkRJTkdfQ1VUT0ZGX0RBVEUgPSBuZXcgRGF0ZSgxXzY1Nl82MzNfNjAwKTtcbmV4cG9ydCBmdW5jdGlvbiBzaG93VXNlck9uYm9hcmRpbmdQYWdlKHVzZUNhc2U6IFVzZUNhc2UgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHVzZUNhc2UgIT09IG51bGwgfHwgTWF0cml4Q2xpZW50UGVnLnVzZXJSZWdpc3RlcmVkQWZ0ZXIoVVNFUl9PTkJPQVJESU5HX0NVVE9GRl9EQVRFKTtcbn1cblxuY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjgwMDtcbmV4cG9ydCBmdW5jdGlvbiBVc2VyT25ib2FyZGluZ1BhZ2UoeyBqdXN0UmVnaXN0ZXJlZCA9IGZhbHNlIH06IFByb3BzKTogSlNYLkVsZW1lbnQge1xuICAgIGNvbnN0IGNsaSA9IHVzZU1hdHJpeENsaWVudENvbnRleHQoKTtcbiAgICBjb25zdCBjb25maWcgPSBTZGtDb25maWcuZ2V0KCk7XG4gICAgY29uc3QgcGFnZVVybCA9IGdldEhvbWVQYWdlVXJsKGNvbmZpZywgY2xpKTtcblxuICAgIGNvbnN0IHVzZUNhc2UgPSB1c2VTZXR0aW5nVmFsdWU8VXNlQ2FzZSB8IG51bGw+KFwiRlRVRS51c2VDYXNlU2VsZWN0aW9uXCIpO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VVc2VyT25ib2FyZGluZ0NvbnRleHQoKTtcbiAgICBjb25zdCB0YXNrcyA9IHVzZVVzZXJPbmJvYXJkaW5nVGFza3MoY29udGV4dCk7XG5cbiAgICBjb25zdCBpbml0aWFsU3luY0NvbXBsZXRlID0gdXNlSW5pdGlhbFN5bmNDb21wbGV0ZSgpO1xuICAgIGNvbnN0IFtzaG93TGlzdCwgc2V0U2hvd0xpc3RdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpbml0aWFsU3luY0NvbXBsZXRlKSB7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNob3dMaXN0KHRydWUpO1xuICAgICAgICAgICAgfSwgQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGhhbmRsZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFNob3dMaXN0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sIFtpbml0aWFsU3luY0NvbXBsZXRlLCBzZXRTaG93TGlzdF0pO1xuXG4gICAgLy8gT25seSBzaG93IG5ldyBvbmJvYXJkaW5nIGxpc3QgdG8gdXNlcnMgd2hvIHJlZ2lzdGVyZWQgYWZ0ZXIgYSBnaXZlbiBkYXRlIG9yIGhhdmUgY2hvc2VuIGEgdXNlIGNhc2VcbiAgICBpZiAoIXNob3dVc2VyT25ib2FyZGluZ1BhZ2UodXNlQ2FzZSkpIHtcbiAgICAgICAgcmV0dXJuIDxIb21lUGFnZSBqdXN0UmVnaXN0ZXJlZD17anVzdFJlZ2lzdGVyZWR9IC8+O1xuICAgIH1cblxuICAgIGlmIChwYWdlVXJsKSB7XG4gICAgICAgIHJldHVybiA8RW1iZWRkZWRQYWdlIGNsYXNzTmFtZT1cIm14X0hvbWVQYWdlXCIgdXJsPXtwYWdlVXJsfSBzY3JvbGxiYXI9e3RydWV9IC8+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxBdXRvSGlkZVNjcm9sbGJhciBjbGFzc05hbWU9XCJteF9Vc2VyT25ib2FyZGluZ1BhZ2VcIj5cbiAgICAgICAgICAgIDxVc2VyT25ib2FyZGluZ0hlYWRlciB1c2VDYXNlPXt1c2VDYXNlfSAvPlxuICAgICAgICAgICAge3Nob3dMaXN0ICYmIDxVc2VyT25ib2FyZGluZ0xpc3QgdGFza3M9e3Rhc2tzfSAvPn1cbiAgICAgICAgPC9BdXRvSGlkZVNjcm9sbGJhcj5cbiAgICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUE0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