@webiny/app-record-locking 5.40.6-beta.3 → 5.41.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,9 @@
1
1
  import React from "react";
2
+ import { CmsContentEntry, CmsModel } from "@webiny/app-headless-cms/types";
2
3
  export interface IContentEntryGuardProps {
4
+ loading: boolean;
5
+ entry: CmsContentEntry;
6
+ model: CmsModel;
3
7
  children: React.ReactElement;
4
8
  }
5
9
  export declare const ContentEntryGuard: (props: IContentEntryGuardProps) => React.JSX.Element;
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.ContentEntryGuard = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _base = _interopRequireDefault(require("@emotion/styled/base"));
11
- var _appHeadlessCms = require("@webiny/app-headless-cms");
12
11
  var _hooks = require("../../hooks");
13
12
  var _Elevation = require("@webiny/ui/Elevation");
14
13
  var _Progress = require("@webiny/ui/Progress");
@@ -27,7 +26,7 @@ var DetailsContainer = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_E
27
26
  } : {
28
27
  name: "1ypyu3l",
29
28
  styles: "height:calc(100% - 10px);overflow:hidden;position:relative;nav{background-color:var(--mdc-theme-surface);}",
30
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUd1YXJkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVeUIiLCJmaWxlIjoiQ29udGVudEVudHJ5R3VhcmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGVudEVudHJ5IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWhlYWRsZXNzLWNtc1wiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZyB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyBFbGV2YXRpb24gfSBmcm9tIFwiQHdlYmlueS91aS9FbGV2YXRpb25cIjtcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3MgfSBmcm9tIFwiQHdlYmlueS91aS9Qcm9ncmVzc1wiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcImVtb3Rpb25cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IExvY2tlZFJlY29yZCB9IGZyb20gXCIuLi9Mb2NrZWRSZWNvcmRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nTG9ja1JlY29yZCB9IGZyb20gXCJ+L3R5cGVzXCI7XG5cbmNvbnN0IERldGFpbHNDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuICAgIGhlaWdodDogXCJjYWxjKDEwMCUgLSAxMHB4KVwiLFxuICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgbmF2OiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSlcIlxuICAgIH1cbn0pO1xuXG5jb25zdCBSZW5kZXJCbG9jayA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICB6SW5kZXg6IDAsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcInZhcigtLW1kYy10aGVtZS1iYWNrZ3JvdW5kKVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgcGFkZGluZzogMjVcbn0pO1xuXG5jb25zdCBlbGV2YXRpb25TdHlsZXMgPSBjc3Moe1xuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgaGVpZ2h0OiBcIjEwMCVcIlxufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRFbnRyeUd1YXJkUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlHdWFyZCA9IChwcm9wczogSUNvbnRlbnRFbnRyeUd1YXJkUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGxvYWRpbmcsIGVudHJ5LCBjb250ZW50TW9kZWw6IG1vZGVsIH0gPSB1c2VDb250ZW50RW50cnkoKTtcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICBjb25zdCB7IGZldGNoTG9ja2VkRW50cnlMb2NrUmVjb3JkIH0gPSB1c2VSZWNvcmRMb2NraW5nKCk7XG5cbiAgICBjb25zdCBbbG9ja2VkLCBzZXRMb2NrZWRdID0gdXNlU3RhdGU8SVJlY29yZExvY2tpbmdMb2NrUmVjb3JkIHwgbnVsbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW50cnkuaWQgfHwgbG9hZGluZyB8fCBsb2NrZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaExvY2tlZEVudHJ5TG9ja1JlY29yZCh7XG4gICAgICAgICAgICAgICAgaWQ6IGVudHJ5LmlkLFxuICAgICAgICAgICAgICAgICRsb2NraW5nVHlwZTogbW9kZWwubW9kZWxJZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRMb2NrZWQocmVzdWx0KTtcbiAgICAgICAgfSkoKTtcbiAgICB9LCBbZW50cnkuaWQsIGxvYWRpbmddKTtcblxuICAgIGlmIChsb2NrZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPERldGFpbHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgPFJlbmRlckJsb2NrPlxuICAgICAgICAgICAgICAgICAgICA8RWxldmF0aW9uIHo9ezJ9IGNsYXNzTmFtZT17ZWxldmF0aW9uU3R5bGVzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRWxldmF0aW9uPlxuICAgICAgICAgICAgICAgIDwvUmVuZGVyQmxvY2s+XG4gICAgICAgICAgICA8L0RldGFpbHNDb250YWluZXI+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChsb2NrZWQpIHtcbiAgICAgICAgcmV0dXJuIDxMb2NrZWRSZWNvcmQgcmVjb3JkPXtsb2NrZWR9IC8+O1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZHJlbjtcbn07XG4iXX0= */",
29
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUd1YXJkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVeUIiLCJmaWxlIjoiQ29udGVudEVudHJ5R3VhcmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZyB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyBFbGV2YXRpb24gfSBmcm9tIFwiQHdlYmlueS91aS9FbGV2YXRpb25cIjtcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3MgfSBmcm9tIFwiQHdlYmlueS91aS9Qcm9ncmVzc1wiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcImVtb3Rpb25cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IExvY2tlZFJlY29yZCB9IGZyb20gXCIuLi9Mb2NrZWRSZWNvcmRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nTG9ja1JlY29yZCB9IGZyb20gXCJ+L3R5cGVzXCI7XG5pbXBvcnQgeyBDbXNDb250ZW50RW50cnksIENtc01vZGVsIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWhlYWRsZXNzLWNtcy90eXBlc1wiO1xuXG5jb25zdCBEZXRhaWxzQ29udGFpbmVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBoZWlnaHQ6IFwiY2FsYygxMDAlIC0gMTBweClcIixcbiAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIG5hdjoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UpXCJcbiAgICB9XG59KTtcblxuY29uc3QgUmVuZGVyQmxvY2sgPSBzdHlsZWQoXCJkaXZcIikoe1xuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgekluZGV4OiAwLFxuICAgIGJhY2tncm91bmRDb2xvcjogXCJ2YXIoLS1tZGMtdGhlbWUtYmFja2dyb3VuZClcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHBhZGRpbmc6IDI1XG59KTtcblxuY29uc3QgZWxldmF0aW9uU3R5bGVzID0gY3NzKHtcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCJcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb250ZW50RW50cnlHdWFyZFByb3BzIHtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIGVudHJ5OiBDbXNDb250ZW50RW50cnk7XG4gICAgbW9kZWw6IENtc01vZGVsO1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlHdWFyZCA9IChwcm9wczogSUNvbnRlbnRFbnRyeUd1YXJkUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGxvYWRpbmcsIGVudHJ5LCBtb2RlbCwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQgfSA9IHVzZVJlY29yZExvY2tpbmcoKTtcblxuICAgIGNvbnN0IFtsb2NrZWQsIHNldExvY2tlZF0gPSB1c2VTdGF0ZTxJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQgfCBudWxsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlbnRyeS5pZCB8fCBsb2FkaW5nIHx8IGxvY2tlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoTG9ja2VkRW50cnlMb2NrUmVjb3JkKHtcbiAgICAgICAgICAgICAgICBpZDogZW50cnkuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBtb2RlbC5tb2RlbElkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldExvY2tlZChyZXN1bHQpO1xuICAgICAgICB9KSgpO1xuICAgIH0sIFtlbnRyeS5pZCwgbG9hZGluZ10pO1xuXG4gICAgaWYgKGxvY2tlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RGV0YWlsc0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8UmVuZGVyQmxvY2s+XG4gICAgICAgICAgICAgICAgICAgIDxFbGV2YXRpb24gej17Mn0gY2xhc3NOYW1lPXtlbGV2YXRpb25TdHlsZXN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3MgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9FbGV2YXRpb24+XG4gICAgICAgICAgICAgICAgPC9SZW5kZXJCbG9jaz5cbiAgICAgICAgICAgIDwvRGV0YWlsc0NvbnRhaW5lcj5cbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGxvY2tlZCkge1xuICAgICAgICByZXR1cm4gPExvY2tlZFJlY29yZCByZWNvcmQ9e2xvY2tlZH0gLz47XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuO1xufTtcbiJdfQ== */",
31
30
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
32
31
  });
33
32
  var RenderBlock = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
@@ -41,7 +40,7 @@ var RenderBlock = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV ==
41
40
  } : {
42
41
  name: "8nvd3k",
43
42
  styles: "position:relative;z-index:0;background-color:var(--mdc-theme-background);height:100%;padding:25px",
44
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUd1YXJkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm9CIiwiZmlsZSI6IkNvbnRlbnRFbnRyeUd1YXJkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNvbnRlbnRFbnRyeSB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IHVzZVJlY29yZExvY2tpbmcgfSBmcm9tIFwifi9ob29rc1wiO1xuaW1wb3J0IHsgRWxldmF0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRWxldmF0aW9uXCI7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzIH0gZnJvbSBcIkB3ZWJpbnkvdWkvUHJvZ3Jlc3NcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJlbW90aW9uXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBMb2NrZWRSZWNvcmQgfSBmcm9tIFwiLi4vTG9ja2VkUmVjb3JkXCI7XG5pbXBvcnQgeyBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQgfSBmcm9tIFwifi90eXBlc1wiO1xuXG5jb25zdCBEZXRhaWxzQ29udGFpbmVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBoZWlnaHQ6IFwiY2FsYygxMDAlIC0gMTBweClcIixcbiAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIG5hdjoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UpXCJcbiAgICB9XG59KTtcblxuY29uc3QgUmVuZGVyQmxvY2sgPSBzdHlsZWQoXCJkaXZcIikoe1xuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgekluZGV4OiAwLFxuICAgIGJhY2tncm91bmRDb2xvcjogXCJ2YXIoLS1tZGMtdGhlbWUtYmFja2dyb3VuZClcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHBhZGRpbmc6IDI1XG59KTtcblxuY29uc3QgZWxldmF0aW9uU3R5bGVzID0gY3NzKHtcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCJcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb250ZW50RW50cnlHdWFyZFByb3BzIHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3RFbGVtZW50O1xufVxuXG5leHBvcnQgY29uc3QgQ29udGVudEVudHJ5R3VhcmQgPSAocHJvcHM6IElDb250ZW50RW50cnlHdWFyZFByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBsb2FkaW5nLCBlbnRyeSwgY29udGVudE1vZGVsOiBtb2RlbCB9ID0gdXNlQ29udGVudEVudHJ5KCk7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBmZXRjaExvY2tlZEVudHJ5TG9ja1JlY29yZCB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgW2xvY2tlZCwgc2V0TG9ja2VkXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nTG9ja1JlY29yZCB8IG51bGwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVudHJ5LmlkIHx8IGxvYWRpbmcgfHwgbG9ja2VkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQoe1xuICAgICAgICAgICAgICAgIGlkOiBlbnRyeS5pZCxcbiAgICAgICAgICAgICAgICAkbG9ja2luZ1R5cGU6IG1vZGVsLm1vZGVsSWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0TG9ja2VkKHJlc3VsdCk7XG4gICAgICAgIH0pKCk7XG4gICAgfSwgW2VudHJ5LmlkLCBsb2FkaW5nXSk7XG5cbiAgICBpZiAobG9ja2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxEZXRhaWxzQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxSZW5kZXJCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgPEVsZXZhdGlvbiB6PXsyfSBjbGFzc05hbWU9e2VsZXZhdGlvblN0eWxlc30+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2lyY3VsYXJQcm9ncmVzcyAvPlxuICAgICAgICAgICAgICAgICAgICA8L0VsZXZhdGlvbj5cbiAgICAgICAgICAgICAgICA8L1JlbmRlckJsb2NrPlxuICAgICAgICAgICAgPC9EZXRhaWxzQ29udGFpbmVyPlxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAobG9ja2VkKSB7XG4gICAgICAgIHJldHVybiA8TG9ja2VkUmVjb3JkIHJlY29yZD17bG9ja2VkfSAvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGRyZW47XG59O1xuIl19 */",
43
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUd1YXJkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm9CIiwiZmlsZSI6IkNvbnRlbnRFbnRyeUd1YXJkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVJlY29yZExvY2tpbmcgfSBmcm9tIFwifi9ob29rc1wiO1xuaW1wb3J0IHsgRWxldmF0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRWxldmF0aW9uXCI7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzIH0gZnJvbSBcIkB3ZWJpbnkvdWkvUHJvZ3Jlc3NcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJlbW90aW9uXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBMb2NrZWRSZWNvcmQgfSBmcm9tIFwiLi4vTG9ja2VkUmVjb3JkXCI7XG5pbXBvcnQgeyBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgQ21zQ29udGVudEVudHJ5LCBDbXNNb2RlbCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXMvdHlwZXNcIjtcblxuY29uc3QgRGV0YWlsc0NvbnRhaW5lciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgaGVpZ2h0OiBcImNhbGMoMTAwJSAtIDEwcHgpXCIsXG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICBuYXY6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInZhcigtLW1kYy10aGVtZS1zdXJmYWNlKVwiXG4gICAgfVxufSk7XG5cbmNvbnN0IFJlbmRlckJsb2NrID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIHpJbmRleDogMCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidmFyKC0tbWRjLXRoZW1lLWJhY2tncm91bmQpXCIsXG4gICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICBwYWRkaW5nOiAyNVxufSk7XG5cbmNvbnN0IGVsZXZhdGlvblN0eWxlcyA9IGNzcyh7XG4gICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVudEVudHJ5R3VhcmRQcm9wcyB7XG4gICAgbG9hZGluZzogYm9vbGVhbjtcbiAgICBlbnRyeTogQ21zQ29udGVudEVudHJ5O1xuICAgIG1vZGVsOiBDbXNNb2RlbDtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3RFbGVtZW50O1xufVxuXG5leHBvcnQgY29uc3QgQ29udGVudEVudHJ5R3VhcmQgPSAocHJvcHM6IElDb250ZW50RW50cnlHdWFyZFByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBsb2FkaW5nLCBlbnRyeSwgbW9kZWwsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICBjb25zdCB7IGZldGNoTG9ja2VkRW50cnlMb2NrUmVjb3JkIH0gPSB1c2VSZWNvcmRMb2NraW5nKCk7XG5cbiAgICBjb25zdCBbbG9ja2VkLCBzZXRMb2NrZWRdID0gdXNlU3RhdGU8SVJlY29yZExvY2tpbmdMb2NrUmVjb3JkIHwgbnVsbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW50cnkuaWQgfHwgbG9hZGluZyB8fCBsb2NrZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaExvY2tlZEVudHJ5TG9ja1JlY29yZCh7XG4gICAgICAgICAgICAgICAgaWQ6IGVudHJ5LmlkLFxuICAgICAgICAgICAgICAgICRsb2NraW5nVHlwZTogbW9kZWwubW9kZWxJZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRMb2NrZWQocmVzdWx0KTtcbiAgICAgICAgfSkoKTtcbiAgICB9LCBbZW50cnkuaWQsIGxvYWRpbmddKTtcblxuICAgIGlmIChsb2NrZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPERldGFpbHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgPFJlbmRlckJsb2NrPlxuICAgICAgICAgICAgICAgICAgICA8RWxldmF0aW9uIHo9ezJ9IGNsYXNzTmFtZT17ZWxldmF0aW9uU3R5bGVzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRWxldmF0aW9uPlxuICAgICAgICAgICAgICAgIDwvUmVuZGVyQmxvY2s+XG4gICAgICAgICAgICA8L0RldGFpbHNDb250YWluZXI+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChsb2NrZWQpIHtcbiAgICAgICAgcmV0dXJuIDxMb2NrZWRSZWNvcmQgcmVjb3JkPXtsb2NrZWR9IC8+O1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZHJlbjtcbn07XG4iXX0= */",
45
44
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
46
45
  });
47
46
  var elevationStyles = (0, _emotion.css)({
@@ -49,11 +48,10 @@ var elevationStyles = (0, _emotion.css)({
49
48
  height: "100%"
50
49
  });
51
50
  var ContentEntryGuard = exports.ContentEntryGuard = function ContentEntryGuard(props) {
52
- var _useContentEntry = (0, _appHeadlessCms.useContentEntry)(),
53
- loading = _useContentEntry.loading,
54
- entry = _useContentEntry.entry,
55
- model = _useContentEntry.contentModel;
56
- var children = props.children;
51
+ var loading = props.loading,
52
+ entry = props.entry,
53
+ model = props.model,
54
+ children = props.children;
57
55
  var _useRecordLocking = (0, _hooks.useRecordLocking)(),
58
56
  fetchLockedEntryLockRecord = _useRecordLocking.fetchLockedEntryLockRecord;
59
57
  var _useState = (0, _react.useState)(undefined),
@@ -1 +1 @@
1
- {"version":3,"names":["_appHeadlessCms","require","_hooks","_Elevation","_Progress","_emotion","_react","_interopRequireWildcard","_LockedRecord","_EMOTION_STRINGIFIED_CSS_ERROR__","DetailsContainer","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","RenderBlock","elevationStyles","css","position","height","ContentEntryGuard","exports","props","_useContentEntry","useContentEntry","loading","entry","model","contentModel","children","_useRecordLocking","useRecordLocking","fetchLockedEntryLockRecord","_useState","useState","undefined","_useState2","_slicedToArray2","locked","setLocked","useEffect","id","result","$lockingType","modelId","createElement","Elevation","z","className","CircularProgress","LockedRecord","record"],"sources":["ContentEntryGuard.tsx"],"sourcesContent":["import { useContentEntry } from \"@webiny/app-headless-cms\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport React, { useEffect, useState } from \"react\";\nimport { LockedRecord } from \"../LockedRecord\";\nimport { IRecordLockingLockRecord } from \"~/types\";\n\nconst DetailsContainer = styled(\"div\")({\n height: \"calc(100% - 10px)\",\n overflow: \"hidden\",\n position: \"relative\",\n nav: {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n});\n\nconst RenderBlock = styled(\"div\")({\n position: \"relative\",\n zIndex: 0,\n backgroundColor: \"var(--mdc-theme-background)\",\n height: \"100%\",\n padding: 25\n});\n\nconst elevationStyles = css({\n position: \"relative\",\n height: \"100%\"\n});\n\nexport interface IContentEntryGuardProps {\n children: React.ReactElement;\n}\n\nexport const ContentEntryGuard = (props: IContentEntryGuardProps) => {\n const { loading, entry, contentModel: model } = useContentEntry();\n const { children } = props;\n const { fetchLockedEntryLockRecord } = useRecordLocking();\n\n const [locked, setLocked] = useState<IRecordLockingLockRecord | null | undefined>(undefined);\n\n useEffect(() => {\n if (!entry.id || loading || locked !== undefined) {\n return;\n }\n (async () => {\n const result = await fetchLockedEntryLockRecord({\n id: entry.id,\n $lockingType: model.modelId\n });\n setLocked(result);\n })();\n }, [entry.id, loading]);\n\n if (locked === undefined) {\n return (\n <DetailsContainer>\n <RenderBlock>\n <Elevation z={2} className={elevationStyles}>\n <CircularProgress />\n </Elevation>\n </RenderBlock>\n </DetailsContainer>\n );\n } else if (locked) {\n return <LockedRecord record={locked} />;\n }\n\n return children;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_hooks","require","_Elevation","_Progress","_emotion","_react","_interopRequireWildcard","_LockedRecord","_EMOTION_STRINGIFIED_CSS_ERROR__","DetailsContainer","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","RenderBlock","elevationStyles","css","position","height","ContentEntryGuard","exports","props","loading","entry","model","children","_useRecordLocking","useRecordLocking","fetchLockedEntryLockRecord","_useState","useState","undefined","_useState2","_slicedToArray2","locked","setLocked","useEffect","id","result","$lockingType","modelId","createElement","Elevation","z","className","CircularProgress","LockedRecord","record"],"sources":["ContentEntryGuard.tsx"],"sourcesContent":["import { useRecordLocking } from \"~/hooks\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport React, { useEffect, useState } from \"react\";\nimport { LockedRecord } from \"../LockedRecord\";\nimport { IRecordLockingLockRecord } from \"~/types\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms/types\";\n\nconst DetailsContainer = styled(\"div\")({\n height: \"calc(100% - 10px)\",\n overflow: \"hidden\",\n position: \"relative\",\n nav: {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n});\n\nconst RenderBlock = styled(\"div\")({\n position: \"relative\",\n zIndex: 0,\n backgroundColor: \"var(--mdc-theme-background)\",\n height: \"100%\",\n padding: 25\n});\n\nconst elevationStyles = css({\n position: \"relative\",\n height: \"100%\"\n});\n\nexport interface IContentEntryGuardProps {\n loading: boolean;\n entry: CmsContentEntry;\n model: CmsModel;\n children: React.ReactElement;\n}\n\nexport const ContentEntryGuard = (props: IContentEntryGuardProps) => {\n const { loading, entry, model, children } = props;\n const { fetchLockedEntryLockRecord } = useRecordLocking();\n\n const [locked, setLocked] = useState<IRecordLockingLockRecord | null | undefined>(undefined);\n\n useEffect(() => {\n if (!entry.id || loading || locked !== undefined) {\n return;\n }\n (async () => {\n const result = await fetchLockedEntryLockRecord({\n id: entry.id,\n $lockingType: model.modelId\n });\n setLocked(result);\n })();\n }, [entry.id, loading]);\n\n if (locked === undefined) {\n return (\n <DetailsContainer>\n <RenderBlock>\n <Elevation z={2} className={elevationStyles}>\n <CircularProgress />\n </Elevation>\n </RenderBlock>\n </DetailsContainer>\n );\n } else if (locked) {\n return <LockedRecord record={locked} />;\n }\n\n return children;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,11 @@
1
1
  import React from "react";
2
2
  import { IRecordLockingIdentity, IRecordLockingLockRecord } from "../../types";
3
3
  import { IncomingGenericData } from "@webiny/app-websockets";
4
+ import { CmsContentEntry, CmsModel } from "@webiny/app-headless-cms/types";
4
5
  export interface IContentEntryLockerProps {
6
+ entry: CmsContentEntry;
7
+ model: CmsModel;
8
+ onEntryUnlocked: () => void;
5
9
  onDisablePrompt: (flag: boolean) => void;
6
10
  children: React.ReactElement;
7
11
  }
@@ -11,4 +15,4 @@ export interface IKickOutWebsocketsMessage extends IncomingGenericData {
11
15
  user: IRecordLockingIdentity;
12
16
  };
13
17
  }
14
- export declare const ContentEntryLocker: ({ onDisablePrompt, children }: IContentEntryLockerProps) => React.JSX.Element;
18
+ export declare const ContentEntryLocker: ({ onEntryUnlocked, onDisablePrompt, entry, model, children }: IContentEntryLockerProps) => React.JSX.Element;
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.ContentEntryLocker = void 0;
9
9
  var _base = _interopRequireDefault(require("@emotion/styled/base"));
10
- var _appHeadlessCms = require("@webiny/app-headless-cms");
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _hooks = require("../../hooks");
13
12
  var _appWebsockets = require("@webiny/app-websockets");
@@ -25,7 +24,7 @@ var Bold = /*#__PURE__*/(0, _base.default)("span", process.env.NODE_ENV === "pro
25
24
  } : {
26
25
  name: "16ceglb",
27
26
  styles: "font-weight:600",
28
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUxvY2tlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYXdCIiwiZmlsZSI6IkNvbnRlbnRFbnRyeUxvY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZW50RW50cmllc0xpc3QsIHVzZUNvbnRlbnRFbnRyeSB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZyB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyBJSXNSZWNvcmRMb2NrZWRQYXJhbXMsIElSZWNvcmRMb2NraW5nSWRlbnRpdHksIElSZWNvcmRMb2NraW5nTG9ja1JlY29yZCB9IGZyb20gXCJ+L3R5cGVzXCI7XG5pbXBvcnQge1xuICAgIEluY29taW5nR2VuZXJpY0RhdGEsXG4gICAgSVdlYnNvY2tldHNTdWJzY3JpcHRpb24sXG4gICAgdXNlV2Vic29ja2V0c1xufSBmcm9tIFwiQHdlYmlueS9hcHAtd2Vic29ja2V0c1wiO1xuaW1wb3J0IHsgcGFyc2VJZGVudGlmaWVyIH0gZnJvbSBcIkB3ZWJpbnkvdXRpbHNcIjtcbmltcG9ydCB7IHVzZURpYWxvZ3MgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW5cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkLnNwYW5gXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRFbnRyeUxvY2tlclByb3BzIHtcbiAgICBvbkRpc2FibGVQcm9tcHQ6IChmbGFnOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUtpY2tPdXRXZWJzb2NrZXRzTWVzc2FnZSBleHRlbmRzIEluY29taW5nR2VuZXJpY0RhdGEge1xuICAgIGRhdGE6IHtcbiAgICAgICAgcmVjb3JkOiBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQ7XG4gICAgICAgIHVzZXI6IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG4gICAgfTtcbn1cbmludGVyZmFjZSBJRm9yY2VVbmxvY2tlZFByb3BzIHtcbiAgICB1c2VyOiBJUmVjb3JkTG9ja2luZ0lkZW50aXR5O1xufVxuY29uc3QgRm9yY2VVbmxvY2tlZCA9ICh7IHVzZXIgfTogSUZvcmNlVW5sb2NrZWRQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICBUaGUgZW50cnkgeW91IHdlcmUgZWRpdGluZyB3YXMgZm9yY2VmdWxseSB1bmxvY2tlZCBieXtcIiBcIn1cbiAgICAgICAgICAgIDxCb2xkPnt1c2VyLmRpc3BsYXlOYW1lIHx8IFwiVW5rbm93biB1c2VyXCJ9PC9Cb2xkPi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyB5b3UgbG9zdFxuICAgICAgICAgICAgdGhlIHVuc2F2ZWQgY2hhbmdlcy5cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlMb2NrZXIgPSAoeyBvbkRpc2FibGVQcm9tcHQsIGNoaWxkcmVuIH06IElDb250ZW50RW50cnlMb2NrZXJQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgZW50cnksIGNvbnRlbnRNb2RlbDogbW9kZWwgfSA9IHVzZUNvbnRlbnRFbnRyeSgpO1xuICAgIGNvbnN0IHsgdXBkYXRlRW50cnlMb2NrLCB1bmxvY2tFbnRyeSwgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQsIHJlbW92ZUVudHJ5TG9jayB9ID1cbiAgICAgICAgdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcblxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHVzZVJlZjxJV2Vic29ja2V0c1N1YnNjcmlwdGlvbjxhbnk+PigpO1xuXG4gICAgY29uc3Qgd2Vic29ja2V0cyA9IHVzZVdlYnNvY2tldHMoKTtcblxuICAgIGNvbnN0IHsgc2hvd0RpYWxvZyB9ID0gdXNlRGlhbG9ncygpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlbnRyeS5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHN1YnNjcmlwdGlvbi5jdXJyZW50KSB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24uY3VycmVudC5vZmYoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGlkOiBlbnRyeUlkIH0gPSBwYXJzZUlkZW50aWZpZXIoZW50cnkuaWQpO1xuXG4gICAgICAgIHN1YnNjcmlwdGlvbi5jdXJyZW50ID0gd2Vic29ja2V0cy5vbk1lc3NhZ2U8SUtpY2tPdXRXZWJzb2NrZXRzTWVzc2FnZT4oXG4gICAgICAgICAgICBgcmVjb3JkTG9ja2luZy5lbnRyeS5raWNrT3V0LiR7ZW50cnlJZH1gLFxuICAgICAgICAgICAgYXN5bmMgaW5jb21pbmcgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXNlciB9ID0gaW5jb21pbmcuZGF0YTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvcmQ6IElJc1JlY29yZExvY2tlZFBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGVudHJ5SWQsXG4gICAgICAgICAgICAgICAgICAgICRsb2NraW5nVHlwZTogbW9kZWwubW9kZWxJZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmVtb3ZlRW50cnlMb2NrKHJlY29yZCk7XG4gICAgICAgICAgICAgICAgb25EaXNhYmxlUHJvbXB0KHRydWUpO1xuICAgICAgICAgICAgICAgIHNob3dEaWFsb2coe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJFbnRyeSB3YXMgZm9yY2VmdWxseSB1bmxvY2tlZCFcIixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogPEZvcmNlVW5sb2NrZWQgdXNlcj17dXNlcn0gLz4sXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdExhYmVsOiBcIk9rXCIsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsTGFiZWw6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG5hdmlnYXRlVG8oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFzdWJzY3JpcHRpb24uY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5jdXJyZW50Lm9mZigpO1xuICAgICAgICB9O1xuICAgIH0sIFtlbnRyeS5pZCwgbmF2aWdhdGVUbywgbW9kZWwubW9kZWxJZF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlbnRyeS5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVjb3JkOiBJSXNSZWNvcmRMb2NrZWRQYXJhbXMgPSB7XG4gICAgICAgICAgICBpZDogZW50cnkuaWQsXG4gICAgICAgICAgICAkbG9ja2luZ1R5cGU6IG1vZGVsLm1vZGVsSWRcbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlRW50cnlMb2NrKHJlY29yZCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQocmVjb3JkKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdW5sb2NrRW50cnkocmVjb3JkKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH07XG4gICAgfSwgW2VudHJ5LmlkXSk7XG5cbiAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcbiJdfQ== */",
27
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUxvY2tlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYXdCIiwiZmlsZSI6IkNvbnRlbnRFbnRyeUxvY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVJlY29yZExvY2tpbmcgfSBmcm9tIFwifi9ob29rc1wiO1xuaW1wb3J0IHsgSUlzUmVjb3JkTG9ja2VkUGFyYW1zLCBJUmVjb3JkTG9ja2luZ0lkZW50aXR5LCBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgICBJbmNvbWluZ0dlbmVyaWNEYXRhLFxuICAgIElXZWJzb2NrZXRzU3Vic2NyaXB0aW9uLFxuICAgIHVzZVdlYnNvY2tldHNcbn0gZnJvbSBcIkB3ZWJpbnkvYXBwLXdlYnNvY2tldHNcIjtcbmltcG9ydCB7IHBhcnNlSWRlbnRpZmllciB9IGZyb20gXCJAd2ViaW55L3V0aWxzXCI7XG5pbXBvcnQgeyB1c2VEaWFsb2dzIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IENtc0NvbnRlbnRFbnRyeSwgQ21zTW9kZWwgfSBmcm9tIFwiQHdlYmlueS9hcHAtaGVhZGxlc3MtY21zL3R5cGVzXCI7XG5cbmNvbnN0IEJvbGQgPSBzdHlsZWQuc3BhbmBcbiAgICBmb250LXdlaWdodDogNjAwO1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVudEVudHJ5TG9ja2VyUHJvcHMge1xuICAgIGVudHJ5OiBDbXNDb250ZW50RW50cnk7XG4gICAgbW9kZWw6IENtc01vZGVsO1xuICAgIG9uRW50cnlVbmxvY2tlZDogKCkgPT4gdm9pZDtcbiAgICBvbkRpc2FibGVQcm9tcHQ6IChmbGFnOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUtpY2tPdXRXZWJzb2NrZXRzTWVzc2FnZSBleHRlbmRzIEluY29taW5nR2VuZXJpY0RhdGEge1xuICAgIGRhdGE6IHtcbiAgICAgICAgcmVjb3JkOiBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQ7XG4gICAgICAgIHVzZXI6IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG4gICAgfTtcbn1cbmludGVyZmFjZSBJRm9yY2VVbmxvY2tlZFByb3BzIHtcbiAgICB1c2VyOiBJUmVjb3JkTG9ja2luZ0lkZW50aXR5O1xufVxuY29uc3QgRm9yY2VVbmxvY2tlZCA9ICh7IHVzZXIgfTogSUZvcmNlVW5sb2NrZWRQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICBUaGUgZW50cnkgeW91IHdlcmUgZWRpdGluZyB3YXMgZm9yY2VmdWxseSB1bmxvY2tlZCBieXtcIiBcIn1cbiAgICAgICAgICAgIDxCb2xkPnt1c2VyLmRpc3BsYXlOYW1lIHx8IFwiVW5rbm93biB1c2VyXCJ9PC9Cb2xkPi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyB5b3UgbG9zdFxuICAgICAgICAgICAgdGhlIHVuc2F2ZWQgY2hhbmdlcy5cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlMb2NrZXIgPSAoe1xuICAgIG9uRW50cnlVbmxvY2tlZCxcbiAgICBvbkRpc2FibGVQcm9tcHQsXG4gICAgZW50cnksXG4gICAgbW9kZWwsXG4gICAgY2hpbGRyZW5cbn06IElDb250ZW50RW50cnlMb2NrZXJQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdXBkYXRlRW50cnlMb2NrLCB1bmxvY2tFbnRyeSwgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQsIHJlbW92ZUVudHJ5TG9jayB9ID1cbiAgICAgICAgdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdXNlUmVmPElXZWJzb2NrZXRzU3Vic2NyaXB0aW9uPGFueT4+KCk7XG5cbiAgICBjb25zdCB3ZWJzb2NrZXRzID0gdXNlV2Vic29ja2V0cygpO1xuXG4gICAgY29uc3QgeyBzaG93RGlhbG9nIH0gPSB1c2VEaWFsb2dzKCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVudHJ5LmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoc3Vic2NyaXB0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5jdXJyZW50Lm9mZigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgaWQ6IGVudHJ5SWQgfSA9IHBhcnNlSWRlbnRpZmllcihlbnRyeS5pZCk7XG5cbiAgICAgICAgc3Vic2NyaXB0aW9uLmN1cnJlbnQgPSB3ZWJzb2NrZXRzLm9uTWVzc2FnZTxJS2lja091dFdlYnNvY2tldHNNZXNzYWdlPihcbiAgICAgICAgICAgIGByZWNvcmRMb2NraW5nLmVudHJ5LmtpY2tPdXQuJHtlbnRyeUlkfWAsXG4gICAgICAgICAgICBhc3luYyBpbmNvbWluZyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB1c2VyIH0gPSBpbmNvbWluZy5kYXRhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZDogSUlzUmVjb3JkTG9ja2VkUGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICBpZDogZW50cnlJZCxcbiAgICAgICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBtb2RlbC5tb2RlbElkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZW1vdmVFbnRyeUxvY2socmVjb3JkKTtcbiAgICAgICAgICAgICAgICBvbkRpc2FibGVQcm9tcHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2hvd0RpYWxvZyh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVudHJ5IHdhcyBmb3JjZWZ1bGx5IHVubG9ja2VkIVwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiA8Rm9yY2VVbmxvY2tlZCB1c2VyPXt1c2VyfSAvPixcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IFwiT2tcIixcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxMYWJlbDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgb25FbnRyeVVubG9ja2VkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmICghc3Vic2NyaXB0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24uY3VycmVudC5vZmYoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW50cnkuaWQsIG9uRW50cnlVbmxvY2tlZCwgbW9kZWwubW9kZWxJZF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlbnRyeS5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVjb3JkOiBJSXNSZWNvcmRMb2NrZWRQYXJhbXMgPSB7XG4gICAgICAgICAgICBpZDogZW50cnkuaWQsXG4gICAgICAgICAgICAkbG9ja2luZ1R5cGU6IG1vZGVsLm1vZGVsSWRcbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlRW50cnlMb2NrKHJlY29yZCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQocmVjb3JkKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdW5sb2NrRW50cnkocmVjb3JkKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH07XG4gICAgfSwgW2VudHJ5LmlkXSk7XG5cbiAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcbiJdfQ== */",
29
28
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
30
29
  });
31
30
  var ForceUnlocked = function ForceUnlocked(_ref) {
@@ -33,18 +32,16 @@ var ForceUnlocked = function ForceUnlocked(_ref) {
33
32
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "The entry you were editing was forcefully unlocked by", " ", /*#__PURE__*/_react.default.createElement(Bold, null, user.displayName || "Unknown user"), ". Unfortunately, this means you lost the unsaved changes.");
34
33
  };
35
34
  var ContentEntryLocker = exports.ContentEntryLocker = function ContentEntryLocker(_ref2) {
36
- var onDisablePrompt = _ref2.onDisablePrompt,
35
+ var onEntryUnlocked = _ref2.onEntryUnlocked,
36
+ onDisablePrompt = _ref2.onDisablePrompt,
37
+ entry = _ref2.entry,
38
+ model = _ref2.model,
37
39
  children = _ref2.children;
38
- var _useContentEntry = (0, _appHeadlessCms.useContentEntry)(),
39
- entry = _useContentEntry.entry,
40
- model = _useContentEntry.contentModel;
41
40
  var _useRecordLocking = (0, _hooks.useRecordLocking)(),
42
41
  updateEntryLock = _useRecordLocking.updateEntryLock,
43
42
  unlockEntry = _useRecordLocking.unlockEntry,
44
43
  fetchLockedEntryLockRecord = _useRecordLocking.fetchLockedEntryLockRecord,
45
44
  removeEntryLock = _useRecordLocking.removeEntryLock;
46
- var _useContentEntriesLis = (0, _appHeadlessCms.useContentEntriesList)(),
47
- navigateTo = _useContentEntriesLis.navigateTo;
48
45
  var subscription = (0, _react.useRef)();
49
46
  var websockets = (0, _appWebsockets.useWebsockets)();
50
47
  var _useDialogs = (0, _appAdmin.useDialogs)(),
@@ -74,7 +71,7 @@ var ContentEntryLocker = exports.ContentEntryLocker = function ContentEntryLocke
74
71
  onClose: undefined,
75
72
  cancelLabel: undefined
76
73
  });
77
- navigateTo();
74
+ onEntryUnlocked();
78
75
  });
79
76
  return function () {
80
77
  if (!subscription.current) {
@@ -82,7 +79,7 @@ var ContentEntryLocker = exports.ContentEntryLocker = function ContentEntryLocke
82
79
  }
83
80
  subscription.current.off();
84
81
  };
85
- }, [entry.id, navigateTo, model.modelId]);
82
+ }, [entry.id, onEntryUnlocked, model.modelId]);
86
83
  (0, _react.useEffect)(function () {
87
84
  if (!entry.id) {
88
85
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_appHeadlessCms","require","_react","_interopRequireWildcard","_hooks","_appWebsockets","_utils","_appAdmin","_EMOTION_STRINGIFIED_CSS_ERROR__","Bold","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ForceUnlocked","_ref","user","createElement","Fragment","displayName","ContentEntryLocker","exports","_ref2","onDisablePrompt","children","_useContentEntry","useContentEntry","entry","model","contentModel","_useRecordLocking","useRecordLocking","updateEntryLock","unlockEntry","fetchLockedEntryLockRecord","removeEntryLock","_useContentEntriesLis","useContentEntriesList","navigateTo","subscription","useRef","websockets","useWebsockets","_useDialogs","useDialogs","showDialog","useEffect","id","current","off","_parseIdentifier","parseIdentifier","entryId","onMessage","concat","incoming","data","record","$lockingType","modelId","title","content","acceptLabel","onClose","undefined","cancelLabel","result"],"sources":["ContentEntryLocker.tsx"],"sourcesContent":["import { useContentEntriesList, useContentEntry } from \"@webiny/app-headless-cms\";\nimport React, { useEffect, useRef } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { IIsRecordLockedParams, IRecordLockingIdentity, IRecordLockingLockRecord } from \"~/types\";\nimport {\n IncomingGenericData,\n IWebsocketsSubscription,\n useWebsockets\n} from \"@webiny/app-websockets\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport styled from \"@emotion/styled\";\n\nconst Bold = styled.span`\n font-weight: 600;\n`;\n\nexport interface IContentEntryLockerProps {\n onDisablePrompt: (flag: boolean) => void;\n children: React.ReactElement;\n}\n\nexport interface IKickOutWebsocketsMessage extends IncomingGenericData {\n data: {\n record: IRecordLockingLockRecord;\n user: IRecordLockingIdentity;\n };\n}\ninterface IForceUnlockedProps {\n user: IRecordLockingIdentity;\n}\nconst ForceUnlocked = ({ user }: IForceUnlockedProps) => {\n return (\n <>\n The entry you were editing was forcefully unlocked by{\" \"}\n <Bold>{user.displayName || \"Unknown user\"}</Bold>. Unfortunately, this means you lost\n the unsaved changes.\n </>\n );\n};\n\nexport const ContentEntryLocker = ({ onDisablePrompt, children }: IContentEntryLockerProps) => {\n const { entry, contentModel: model } = useContentEntry();\n const { updateEntryLock, unlockEntry, fetchLockedEntryLockRecord, removeEntryLock } =\n useRecordLocking();\n\n const { navigateTo } = useContentEntriesList();\n\n const subscription = useRef<IWebsocketsSubscription<any>>();\n\n const websockets = useWebsockets();\n\n const { showDialog } = useDialogs();\n\n useEffect(() => {\n if (!entry.id) {\n return;\n } else if (subscription.current) {\n subscription.current.off();\n }\n const { id: entryId } = parseIdentifier(entry.id);\n\n subscription.current = websockets.onMessage<IKickOutWebsocketsMessage>(\n `recordLocking.entry.kickOut.${entryId}`,\n async incoming => {\n const { user } = incoming.data;\n const record: IIsRecordLockedParams = {\n id: entryId,\n $lockingType: model.modelId\n };\n removeEntryLock(record);\n onDisablePrompt(true);\n showDialog({\n title: \"Entry was forcefully unlocked!\",\n content: <ForceUnlocked user={user} />,\n acceptLabel: \"Ok\",\n onClose: undefined,\n cancelLabel: undefined\n });\n navigateTo();\n }\n );\n\n return () => {\n if (!subscription.current) {\n return;\n }\n subscription.current.off();\n };\n }, [entry.id, navigateTo, model.modelId]);\n\n useEffect(() => {\n if (!entry.id) {\n return;\n }\n\n const record: IIsRecordLockedParams = {\n id: entry.id,\n $lockingType: model.modelId\n };\n updateEntryLock(record);\n\n return () => {\n (async () => {\n const result = await fetchLockedEntryLockRecord(record);\n if (result) {\n return;\n }\n unlockEntry(record);\n })();\n };\n }, [entry.id]);\n\n return <>{children}</>;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appWebsockets","_utils","_appAdmin","_EMOTION_STRINGIFIED_CSS_ERROR__","Bold","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ForceUnlocked","_ref","user","createElement","Fragment","displayName","ContentEntryLocker","exports","_ref2","onEntryUnlocked","onDisablePrompt","entry","model","children","_useRecordLocking","useRecordLocking","updateEntryLock","unlockEntry","fetchLockedEntryLockRecord","removeEntryLock","subscription","useRef","websockets","useWebsockets","_useDialogs","useDialogs","showDialog","useEffect","id","current","off","_parseIdentifier","parseIdentifier","entryId","onMessage","concat","incoming","data","record","$lockingType","modelId","title","content","acceptLabel","onClose","undefined","cancelLabel","result"],"sources":["ContentEntryLocker.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { IIsRecordLockedParams, IRecordLockingIdentity, IRecordLockingLockRecord } from \"~/types\";\nimport {\n IncomingGenericData,\n IWebsocketsSubscription,\n useWebsockets\n} from \"@webiny/app-websockets\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport styled from \"@emotion/styled\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms/types\";\n\nconst Bold = styled.span`\n font-weight: 600;\n`;\n\nexport interface IContentEntryLockerProps {\n entry: CmsContentEntry;\n model: CmsModel;\n onEntryUnlocked: () => void;\n onDisablePrompt: (flag: boolean) => void;\n children: React.ReactElement;\n}\n\nexport interface IKickOutWebsocketsMessage extends IncomingGenericData {\n data: {\n record: IRecordLockingLockRecord;\n user: IRecordLockingIdentity;\n };\n}\ninterface IForceUnlockedProps {\n user: IRecordLockingIdentity;\n}\nconst ForceUnlocked = ({ user }: IForceUnlockedProps) => {\n return (\n <>\n The entry you were editing was forcefully unlocked by{\" \"}\n <Bold>{user.displayName || \"Unknown user\"}</Bold>. Unfortunately, this means you lost\n the unsaved changes.\n </>\n );\n};\n\nexport const ContentEntryLocker = ({\n onEntryUnlocked,\n onDisablePrompt,\n entry,\n model,\n children\n}: IContentEntryLockerProps) => {\n const { updateEntryLock, unlockEntry, fetchLockedEntryLockRecord, removeEntryLock } =\n useRecordLocking();\n\n const subscription = useRef<IWebsocketsSubscription<any>>();\n\n const websockets = useWebsockets();\n\n const { showDialog } = useDialogs();\n\n useEffect(() => {\n if (!entry.id) {\n return;\n } else if (subscription.current) {\n subscription.current.off();\n }\n const { id: entryId } = parseIdentifier(entry.id);\n\n subscription.current = websockets.onMessage<IKickOutWebsocketsMessage>(\n `recordLocking.entry.kickOut.${entryId}`,\n async incoming => {\n const { user } = incoming.data;\n const record: IIsRecordLockedParams = {\n id: entryId,\n $lockingType: model.modelId\n };\n removeEntryLock(record);\n onDisablePrompt(true);\n showDialog({\n title: \"Entry was forcefully unlocked!\",\n content: <ForceUnlocked user={user} />,\n acceptLabel: \"Ok\",\n onClose: undefined,\n cancelLabel: undefined\n });\n onEntryUnlocked();\n }\n );\n\n return () => {\n if (!subscription.current) {\n return;\n }\n subscription.current.off();\n };\n }, [entry.id, onEntryUnlocked, model.modelId]);\n\n useEffect(() => {\n if (!entry.id) {\n return;\n }\n\n const record: IIsRecordLockedParams = {\n id: entry.id,\n $lockingType: model.modelId\n };\n updateEntryLock(record);\n\n return () => {\n (async () => {\n const result = await fetchLockedEntryLockRecord(record);\n if (result) {\n return;\n }\n unlockEntry(record);\n })();\n };\n }, [entry.id]);\n\n return <>{children}</>;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAA+C,SAAAK,iCAAA;AAI/C,IAAMC,IAAI,oBAAAC,KAAA,CAAAC,OAAA,UAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAET;AAmBD,IAAMa,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAsC;EAAA,IAAhCC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EACzB,oBACItB,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAAAvB,MAAA,CAAAU,OAAA,CAAAc,QAAA,QAAE,uDACuD,EAAC,GAAG,eACzDxB,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAACf,IAAI,QAAEc,IAAI,CAACG,WAAW,IAAI,cAAqB,CAAC,6DAEnD,CAAC;AAEX,CAAC;AAEM,IAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAArBA,kBAAkBA,CAAAE,KAAA,EAMC;EAAA,IAL5BC,eAAe,GAAAD,KAAA,CAAfC,eAAe;IACfC,eAAe,GAAAF,KAAA,CAAfE,eAAe;IACfC,KAAK,GAAAH,KAAA,CAALG,KAAK;IACLC,KAAK,GAAAJ,KAAA,CAALI,KAAK;IACLC,QAAQ,GAAAL,KAAA,CAARK,QAAQ;EAER,IAAAC,iBAAA,GACI,IAAAC,uBAAgB,EAAC,CAAC;IADdC,eAAe,GAAAF,iBAAA,CAAfE,eAAe;IAAEC,WAAW,GAAAH,iBAAA,CAAXG,WAAW;IAAEC,0BAA0B,GAAAJ,iBAAA,CAA1BI,0BAA0B;IAAEC,eAAe,GAAAL,iBAAA,CAAfK,eAAe;EAGjF,IAAMC,YAAY,GAAG,IAAAC,aAAM,EAA+B,CAAC;EAE3D,IAAMC,UAAU,GAAG,IAAAC,4BAAa,EAAC,CAAC;EAElC,IAAAC,WAAA,GAAuB,IAAAC,oBAAU,EAAC,CAAC;IAA3BC,UAAU,GAAAF,WAAA,CAAVE,UAAU;EAElB,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAI,CAAChB,KAAK,CAACiB,EAAE,EAAE;MACX;IACJ,CAAC,MAAM,IAAIR,YAAY,CAACS,OAAO,EAAE;MAC7BT,YAAY,CAACS,OAAO,CAACC,GAAG,CAAC,CAAC;IAC9B;IACA,IAAAC,gBAAA,GAAwB,IAAAC,sBAAe,EAACrB,KAAK,CAACiB,EAAE,CAAC;MAArCK,OAAO,GAAAF,gBAAA,CAAXH,EAAE;IAEVR,YAAY,CAACS,OAAO,GAAGP,UAAU,CAACY,SAAS,gCAAAC,MAAA,CACRF,OAAO,GACtC,gBAAMG,QAAQ,EAAI;MACd,IAAQlC,IAAI,GAAKkC,QAAQ,CAACC,IAAI,CAAtBnC,IAAI;MACZ,IAAMoC,MAA6B,GAAG;QAClCV,EAAE,EAAEK,OAAO;QACXM,YAAY,EAAE3B,KAAK,CAAC4B;MACxB,CAAC;MACDrB,eAAe,CAACmB,MAAM,CAAC;MACvB5B,eAAe,CAAC,IAAI,CAAC;MACrBgB,UAAU,CAAC;QACPe,KAAK,EAAE,gCAAgC;QACvCC,OAAO,eAAE9D,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAACH,aAAa;UAACE,IAAI,EAAEA;QAAK,CAAE,CAAC;QACtCyC,WAAW,EAAE,IAAI;QACjBC,OAAO,EAAEC,SAAS;QAClBC,WAAW,EAAED;MACjB,CAAC,CAAC;MACFpC,eAAe,CAAC,CAAC;IACrB,CACJ,CAAC;IAED,OAAO,YAAM;MACT,IAAI,CAACW,YAAY,CAACS,OAAO,EAAE;QACvB;MACJ;MACAT,YAAY,CAACS,OAAO,CAACC,GAAG,CAAC,CAAC;IAC9B,CAAC;EACL,CAAC,EAAE,CAACnB,KAAK,CAACiB,EAAE,EAAEnB,eAAe,EAAEG,KAAK,CAAC4B,OAAO,CAAC,CAAC;EAE9C,IAAAb,gBAAS,EAAC,YAAM;IACZ,IAAI,CAAChB,KAAK,CAACiB,EAAE,EAAE;MACX;IACJ;IAEA,IAAMU,MAA6B,GAAG;MAClCV,EAAE,EAAEjB,KAAK,CAACiB,EAAE;MACZW,YAAY,EAAE3B,KAAK,CAAC4B;IACxB,CAAC;IACDxB,eAAe,CAACsB,MAAM,CAAC;IAEvB,OAAO,YAAM;MACT,CAAC,kBAAY;QACT,IAAMS,MAAM,GAAG,MAAM7B,0BAA0B,CAACoB,MAAM,CAAC;QACvD,IAAIS,MAAM,EAAE;UACR;QACJ;QACA9B,WAAW,CAACqB,MAAM,CAAC;MACvB,CAAC,EAAE,CAAC;IACR,CAAC;EACL,CAAC,EAAE,CAAC3B,KAAK,CAACiB,EAAE,CAAC,CAAC;EAEd,oBAAOhD,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAAAvB,MAAA,CAAAU,OAAA,CAAAc,QAAA,QAAGS,QAAW,CAAC;AAC1B,CAAC","ignoreList":[]}
@@ -13,7 +13,8 @@ var _appHeadlessCms = require("@webiny/app-headless-cms");
13
13
  var _reactRouter = require("@webiny/react-router");
14
14
  var _ContentEntryGuard = require("./ContentEntryGuard");
15
15
  var _ContentEntryLocker = require("./ContentEntryLocker");
16
- var ContentEntry = _appHeadlessCms.ContentEntryEditorConfig.ContentEntry;
16
+ var ContentEntry = _appHeadlessCms.ContentEntryEditorConfig.ContentEntry,
17
+ SingletonContentEntry = _appHeadlessCms.ContentEntryEditorConfig.SingletonContentEntry;
17
18
  var DisablePrompt = (0, _appAdmin.createGenericContext)("DisablePrompt");
18
19
  var PromptDecorator = _reactRouter.Prompt.createDecorator(function (Original) {
19
20
  return function Prompt(props) {
@@ -27,35 +28,74 @@ var PromptDecorator = _reactRouter.Prompt.createDecorator(function (Original) {
27
28
  };
28
29
  });
29
30
  var ContentEntryDecorator = ContentEntry.createDecorator(function (Original) {
30
- return function RecordLockingContentEntry(props) {
31
+ return function RecordLockingContentEntry() {
31
32
  var _useState = (0, _react.useState)(false),
32
33
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
33
34
  disablePrompt = _useState2[0],
34
35
  setDisablePrompt = _useState2[1];
35
36
  var _ContentEntry$useCont = ContentEntry.useContentEntry(),
36
- entry = _ContentEntry$useCont.entry;
37
+ entry = _ContentEntry$useCont.entry,
38
+ contentModel = _ContentEntry$useCont.contentModel,
39
+ loading = _ContentEntry$useCont.loading;
40
+ var _ContentEntryListConf = _appHeadlessCms.ContentEntryListConfig.ContentEntries.useContentEntriesList(),
41
+ navigateTo = _ContentEntryListConf.navigateTo;
37
42
  /**
38
43
  * New entry does not have ID yet.
39
44
  */
40
45
  if (!entry?.id) {
41
46
  return /*#__PURE__*/_react.default.createElement(DisablePrompt.Provider, {
42
47
  disablePrompt: disablePrompt
43
- }, /*#__PURE__*/_react.default.createElement(Original, props));
48
+ }, /*#__PURE__*/_react.default.createElement(Original, null));
44
49
  }
45
50
  /**
46
51
  * Continue with existing entry.
47
52
  */
48
- return /*#__PURE__*/_react.default.createElement(_ContentEntryGuard.ContentEntryGuard, null, /*#__PURE__*/_react.default.createElement(_ContentEntryLocker.ContentEntryLocker, {
53
+ var props = {
54
+ entry: entry,
55
+ model: contentModel
56
+ };
57
+ return /*#__PURE__*/_react.default.createElement(_ContentEntryGuard.ContentEntryGuard, Object.assign({}, props, {
58
+ loading: loading
59
+ }), /*#__PURE__*/_react.default.createElement(_ContentEntryLocker.ContentEntryLocker, Object.assign({}, props, {
49
60
  onDisablePrompt: function onDisablePrompt(flag) {
50
61
  return setDisablePrompt(flag);
62
+ },
63
+ onEntryUnlocked: navigateTo
64
+ }), /*#__PURE__*/_react.default.createElement(DisablePrompt.Provider, {
65
+ disablePrompt: disablePrompt
66
+ }, /*#__PURE__*/_react.default.createElement(Original, null))));
67
+ };
68
+ });
69
+ var SingletonContentEntryDecorator = SingletonContentEntry.createDecorator(function (Original) {
70
+ return function RecordLockingSingletonContentEntry() {
71
+ var _useState3 = (0, _react.useState)(false),
72
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
73
+ disablePrompt = _useState4[0],
74
+ setDisablePrompt = _useState4[1];
75
+ var _SingletonContentEntr = SingletonContentEntry.useSingletonContentEntry(),
76
+ entry = _SingletonContentEntr.entry,
77
+ contentModel = _SingletonContentEntr.contentModel,
78
+ loading = _SingletonContentEntr.loading;
79
+ var props = {
80
+ entry: entry,
81
+ model: contentModel
82
+ };
83
+ return /*#__PURE__*/_react.default.createElement(_ContentEntryGuard.ContentEntryGuard, Object.assign({}, props, {
84
+ loading: loading
85
+ }), /*#__PURE__*/_react.default.createElement(_ContentEntryLocker.ContentEntryLocker, Object.assign({}, props, {
86
+ onDisablePrompt: function onDisablePrompt(flag) {
87
+ return setDisablePrompt(flag);
88
+ },
89
+ onEntryUnlocked: function onEntryUnlocked() {
90
+ // There's nowhere to go, since singleton entry doesn't have a list view.
51
91
  }
52
- }, /*#__PURE__*/_react.default.createElement(DisablePrompt.Provider, {
92
+ }), /*#__PURE__*/_react.default.createElement(DisablePrompt.Provider, {
53
93
  disablePrompt: disablePrompt
54
- }, /*#__PURE__*/_react.default.createElement(Original, props))));
94
+ }, /*#__PURE__*/_react.default.createElement(Original, null))));
55
95
  };
56
96
  });
57
97
  var HeadlessCmsContentEntry = exports.HeadlessCmsContentEntry = function HeadlessCmsContentEntry() {
58
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ContentEntryDecorator, null), /*#__PURE__*/_react.default.createElement(_appAdmin.CompositionScope, {
98
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ContentEntryDecorator, null), /*#__PURE__*/_react.default.createElement(SingletonContentEntryDecorator, null), /*#__PURE__*/_react.default.createElement(_appAdmin.CompositionScope, {
59
99
  name: "cms.contentEntryForm"
60
100
  }, /*#__PURE__*/_react.default.createElement(PromptDecorator, null)));
61
101
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_appHeadlessCms","_reactRouter","_ContentEntryGuard","_ContentEntryLocker","ContentEntry","ContentEntryEditorConfig","DisablePrompt","createGenericContext","PromptDecorator","Prompt","createDecorator","Original","props","_DisablePrompt$useHoo","useHook","disablePrompt","when","default","createElement","message","ContentEntryDecorator","RecordLockingContentEntry","_useState","useState","_useState2","_slicedToArray2","setDisablePrompt","_ContentEntry$useCont","useContentEntry","entry","id","Provider","ContentEntryGuard","ContentEntryLocker","onDisablePrompt","flag","HeadlessCmsContentEntry","exports","Fragment","CompositionScope","name"],"sources":["HeadlessCmsContentEntry.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { CompositionScope, createGenericContext } from \"@webiny/app-admin\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { ContentEntryGuard } from \"./ContentEntryGuard\";\nimport { ContentEntryLocker } from \"./ContentEntryLocker\";\n\nconst { ContentEntry } = ContentEntryEditorConfig;\n\nconst DisablePrompt = createGenericContext<{ disablePrompt: boolean }>(\"DisablePrompt\");\n\nconst PromptDecorator = Prompt.createDecorator(Original => {\n return function Prompt(props) {\n const { disablePrompt } = DisablePrompt.useHook();\n const when = disablePrompt === true ? false : props.when;\n return <Original message={props.message} when={when} />;\n };\n});\n\nconst ContentEntryDecorator = ContentEntry.createDecorator(Original => {\n return function RecordLockingContentEntry(props) {\n const [disablePrompt, setDisablePrompt] = useState(false);\n const { entry } = ContentEntry.useContentEntry();\n /**\n * New entry does not have ID yet.\n */\n if (!entry?.id) {\n return (\n <DisablePrompt.Provider disablePrompt={disablePrompt}>\n <Original {...props} />\n </DisablePrompt.Provider>\n );\n }\n /**\n * Continue with existing entry.\n */\n return (\n <ContentEntryGuard>\n <ContentEntryLocker onDisablePrompt={flag => setDisablePrompt(flag)}>\n <DisablePrompt.Provider disablePrompt={disablePrompt}>\n <Original {...props} />\n </DisablePrompt.Provider>\n </ContentEntryLocker>\n </ContentEntryGuard>\n );\n };\n});\n\nexport const HeadlessCmsContentEntry = () => {\n return (\n <>\n <ContentEntryDecorator />\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <PromptDecorator />\n </CompositionScope>\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_appHeadlessCms","_reactRouter","_ContentEntryGuard","_ContentEntryLocker","ContentEntry","ContentEntryEditorConfig","SingletonContentEntry","DisablePrompt","createGenericContext","PromptDecorator","Prompt","createDecorator","Original","props","_DisablePrompt$useHoo","useHook","disablePrompt","when","default","createElement","message","ContentEntryDecorator","RecordLockingContentEntry","_useState","useState","_useState2","_slicedToArray2","setDisablePrompt","_ContentEntry$useCont","useContentEntry","entry","contentModel","loading","_ContentEntryListConf","ContentEntryListConfig","ContentEntries","useContentEntriesList","navigateTo","id","Provider","model","ContentEntryGuard","Object","assign","ContentEntryLocker","onDisablePrompt","flag","onEntryUnlocked","SingletonContentEntryDecorator","RecordLockingSingletonContentEntry","_useState3","_useState4","_SingletonContentEntr","useSingletonContentEntry","HeadlessCmsContentEntry","exports","Fragment","CompositionScope","name"],"sources":["HeadlessCmsContentEntry.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { CompositionScope, createGenericContext } from \"@webiny/app-admin\";\nimport { ContentEntryEditorConfig, ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { ContentEntryGuard } from \"./ContentEntryGuard\";\nimport { ContentEntryLocker } from \"./ContentEntryLocker\";\n\nconst { ContentEntry, SingletonContentEntry } = ContentEntryEditorConfig;\n\nconst DisablePrompt = createGenericContext<{ disablePrompt: boolean }>(\"DisablePrompt\");\n\nconst PromptDecorator = Prompt.createDecorator(Original => {\n return function Prompt(props) {\n const { disablePrompt } = DisablePrompt.useHook();\n const when = disablePrompt === true ? false : props.when;\n return <Original message={props.message} when={when} />;\n };\n});\n\nconst ContentEntryDecorator = ContentEntry.createDecorator(Original => {\n return function RecordLockingContentEntry() {\n const [disablePrompt, setDisablePrompt] = useState(false);\n const { entry, contentModel, loading } = ContentEntry.useContentEntry();\n const { navigateTo } = ContentEntryListConfig.ContentEntries.useContentEntriesList();\n /**\n * New entry does not have ID yet.\n */\n if (!entry?.id) {\n return (\n <DisablePrompt.Provider disablePrompt={disablePrompt}>\n <Original />\n </DisablePrompt.Provider>\n );\n }\n /**\n * Continue with existing entry.\n */\n const props = { entry, model: contentModel };\n\n return (\n <ContentEntryGuard {...props} loading={loading}>\n <ContentEntryLocker\n {...props}\n onDisablePrompt={flag => setDisablePrompt(flag)}\n onEntryUnlocked={navigateTo}\n >\n <DisablePrompt.Provider disablePrompt={disablePrompt}>\n <Original />\n </DisablePrompt.Provider>\n </ContentEntryLocker>\n </ContentEntryGuard>\n );\n };\n});\n\nconst SingletonContentEntryDecorator = SingletonContentEntry.createDecorator(Original => {\n return function RecordLockingSingletonContentEntry() {\n const [disablePrompt, setDisablePrompt] = useState(false);\n const { entry, contentModel, loading } = SingletonContentEntry.useSingletonContentEntry();\n\n const props = { entry, model: contentModel };\n\n return (\n <ContentEntryGuard {...props} loading={loading}>\n <ContentEntryLocker\n {...props}\n onDisablePrompt={flag => setDisablePrompt(flag)}\n onEntryUnlocked={() => {\n // There's nowhere to go, since singleton entry doesn't have a list view.\n }}\n >\n <DisablePrompt.Provider disablePrompt={disablePrompt}>\n <Original />\n </DisablePrompt.Provider>\n </ContentEntryLocker>\n </ContentEntryGuard>\n );\n };\n});\n\nexport const HeadlessCmsContentEntry = () => {\n return (\n <>\n <ContentEntryDecorator />\n <SingletonContentEntryDecorator />\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <PromptDecorator />\n </CompositionScope>\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -10,20 +10,18 @@ var _react = require("react");
10
10
  var _hooks = require("../../hooks");
11
11
  var _appHeadlessCms = require("@webiny/app-headless-cms");
12
12
  var _appAdmin = require("@webiny/app-admin");
13
- var _ContentEntryEditorCo = _appHeadlessCms.ContentEntryEditorConfig.ContentEntry,
14
- ContentEntryForm = _ContentEntryEditorCo.ContentEntryForm,
15
- useContentEntry = _ContentEntryEditorCo.useContentEntry;
13
+ var ContentEntryForm = _appHeadlessCms.ContentEntryEditorConfig.ContentEntry.ContentEntryForm;
16
14
  var UseSaveEntryDecorator = exports.UseSaveEntryDecorator = ContentEntryForm.useContentEntryForm.createDecorator(function (originalHook) {
17
15
  return function useRecordLockingUseSave() {
18
16
  var hook = originalHook();
19
- var _useContentEntry = useContentEntry(),
20
- entry = _useContentEntry.entry,
21
- model = _useContentEntry.contentModel;
22
17
  var _useRecordLocking = (0, _hooks.useRecordLocking)(),
23
18
  fetchLockedEntryLockRecord = _useRecordLocking.fetchLockedEntryLockRecord,
24
19
  updateEntryLock = _useRecordLocking.updateEntryLock;
25
20
  var _useSnackbar = (0, _appAdmin.useSnackbar)(),
26
21
  showSnackbar = _useSnackbar.showSnackbar;
22
+ var _useModel = (0, _appHeadlessCms.useModel)(),
23
+ model = _useModel.model;
24
+ var entry = hook.entry;
27
25
  var saveEntry = (0, _react.useCallback)(async function () {
28
26
  if (!entry.id) {
29
27
  return hook.saveEntry.apply(hook, arguments);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_hooks","_appHeadlessCms","_appAdmin","_ContentEntryEditorCo","ContentEntryEditorConfig","ContentEntry","ContentEntryForm","useContentEntry","UseSaveEntryDecorator","exports","useContentEntryForm","createDecorator","originalHook","useRecordLockingUseSave","hook","_useContentEntry","entry","model","contentModel","_useRecordLocking","useRecordLocking","fetchLockedEntryLockRecord","updateEntryLock","_useSnackbar","useSnackbar","showSnackbar","saveEntry","useCallback","id","apply","arguments","result","$lockingType","modelId","lockedBy","concat","displayName","saveResult","_objectSpread2","default"],"sources":["UseSaveEntryDecorator.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nconst {\n ContentEntry: { ContentEntryForm, useContentEntry }\n} = ContentEntryEditorConfig;\n\ntype SaveEntry = ReturnType<typeof ContentEntryForm.useContentEntryForm>[\"saveEntry\"];\n\nexport const UseSaveEntryDecorator = ContentEntryForm.useContentEntryForm.createDecorator(\n originalHook => {\n return function useRecordLockingUseSave() {\n const hook = originalHook();\n const { entry, contentModel: model } = useContentEntry();\n const { fetchLockedEntryLockRecord, updateEntryLock } = useRecordLocking();\n const { showSnackbar } = useSnackbar();\n\n const saveEntry: SaveEntry = useCallback(\n async (...params) => {\n if (!entry.id) {\n return hook.saveEntry(...params);\n }\n\n const result = await fetchLockedEntryLockRecord({\n id: entry.id,\n $lockingType: model.modelId\n });\n\n if (result?.lockedBy) {\n const lockedBy = result.lockedBy;\n showSnackbar(\n `It seems that the entry is locked by ${\n lockedBy.displayName || lockedBy.id\n }. You can't save your changes.`\n );\n return null;\n }\n\n const saveResult = await hook.saveEntry(...params);\n if (saveResult) {\n await updateEntryLock({\n id: saveResult.id,\n $lockingType: model.modelId\n });\n }\n\n return saveResult;\n },\n [entry?.id, model.modelId, updateEntryLock]\n );\n\n return {\n ...hook,\n saveEntry\n };\n };\n }\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAEIC,wCAAwB,CADxBC,YAAY;EAAIC,gBAAgB,GAAAH,qBAAA,CAAhBG,gBAAgB;EAAEC,eAAe,GAAAJ,qBAAA,CAAfI,eAAe;AAK9C,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGF,gBAAgB,CAACI,mBAAmB,CAACC,eAAe,CACrF,UAAAC,YAAY,EAAI;EACZ,OAAO,SAASC,uBAAuBA,CAAA,EAAG;IACtC,IAAMC,IAAI,GAAGF,YAAY,CAAC,CAAC;IAC3B,IAAAG,gBAAA,GAAuCR,eAAe,CAAC,CAAC;MAAhDS,KAAK,GAAAD,gBAAA,CAALC,KAAK;MAAgBC,KAAK,GAAAF,gBAAA,CAAnBG,YAAY;IAC3B,IAAAC,iBAAA,GAAwD,IAAAC,uBAAgB,EAAC,CAAC;MAAlEC,0BAA0B,GAAAF,iBAAA,CAA1BE,0BAA0B;MAAEC,eAAe,GAAAH,iBAAA,CAAfG,eAAe;IACnD,IAAAC,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;MAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;IAEpB,IAAMC,SAAoB,GAAG,IAAAC,kBAAW,EACpC,kBAAqB;MACjB,IAAI,CAACX,KAAK,CAACY,EAAE,EAAE;QACX,OAAOd,IAAI,CAACY,SAAS,CAAAG,KAAA,CAAdf,IAAI,EAAAgB,SAAoB,CAAC;MACpC;MAEA,IAAMC,MAAM,GAAG,MAAMV,0BAA0B,CAAC;QAC5CO,EAAE,EAAEZ,KAAK,CAACY,EAAE;QACZI,YAAY,EAAEf,KAAK,CAACgB;MACxB,CAAC,CAAC;MAEF,IAAIF,MAAM,EAAEG,QAAQ,EAAE;QAClB,IAAMA,QAAQ,GAAGH,MAAM,CAACG,QAAQ;QAChCT,YAAY,yCAAAU,MAAA,CAEJD,QAAQ,CAACE,WAAW,IAAIF,QAAQ,CAACN,EAAE,mCAE3C,CAAC;QACD,OAAO,IAAI;MACf;MAEA,IAAMS,UAAU,GAAG,MAAMvB,IAAI,CAACY,SAAS,CAAAG,KAAA,CAAdf,IAAI,EAAAgB,SAAoB,CAAC;MAClD,IAAIO,UAAU,EAAE;QACZ,MAAMf,eAAe,CAAC;UAClBM,EAAE,EAAES,UAAU,CAACT,EAAE;UACjBI,YAAY,EAAEf,KAAK,CAACgB;QACxB,CAAC,CAAC;MACN;MAEA,OAAOI,UAAU;IACrB,CAAC,EACD,CAACrB,KAAK,EAAEY,EAAE,EAAEX,KAAK,CAACgB,OAAO,EAAEX,eAAe,CAC9C,CAAC;IAED,WAAAgB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACOzB,IAAI;MACPY,SAAS,EAATA;IAAS;EAEjB,CAAC;AACL,CACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_hooks","_appHeadlessCms","_appAdmin","ContentEntryForm","ContentEntryEditorConfig","ContentEntry","UseSaveEntryDecorator","exports","useContentEntryForm","createDecorator","originalHook","useRecordLockingUseSave","hook","_useRecordLocking","useRecordLocking","fetchLockedEntryLockRecord","updateEntryLock","_useSnackbar","useSnackbar","showSnackbar","_useModel","useModel","model","entry","saveEntry","useCallback","id","apply","arguments","result","$lockingType","modelId","lockedBy","concat","displayName","saveResult","_objectSpread2","default"],"sources":["UseSaveEntryDecorator.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { ContentEntryEditorConfig, useModel } from \"@webiny/app-headless-cms\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nconst {\n ContentEntry: { ContentEntryForm }\n} = ContentEntryEditorConfig;\n\ntype SaveEntry = ReturnType<typeof ContentEntryForm.useContentEntryForm>[\"saveEntry\"];\n\nexport const UseSaveEntryDecorator = ContentEntryForm.useContentEntryForm.createDecorator(\n originalHook => {\n return function useRecordLockingUseSave() {\n const hook = originalHook();\n const { fetchLockedEntryLockRecord, updateEntryLock } = useRecordLocking();\n const { showSnackbar } = useSnackbar();\n const { model } = useModel();\n\n const { entry } = hook;\n\n const saveEntry: SaveEntry = useCallback(\n async (...params) => {\n if (!entry.id) {\n return hook.saveEntry(...params);\n }\n\n const result = await fetchLockedEntryLockRecord({\n id: entry.id,\n $lockingType: model.modelId\n });\n\n if (result?.lockedBy) {\n const lockedBy = result.lockedBy;\n showSnackbar(\n `It seems that the entry is locked by ${\n lockedBy.displayName || lockedBy.id\n }. You can't save your changes.`\n );\n return null;\n }\n\n const saveResult = await hook.saveEntry(...params);\n if (saveResult) {\n await updateEntryLock({\n id: saveResult.id,\n $lockingType: model.modelId\n });\n }\n\n return saveResult;\n },\n [entry?.id, model.modelId, updateEntryLock]\n );\n\n return {\n ...hook,\n saveEntry\n };\n };\n }\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEA,IACoBI,gBAAgB,GAChCC,wCAAwB,CADxBC,YAAY,CAAIF,gBAAgB;AAK7B,IAAMG,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGH,gBAAgB,CAACK,mBAAmB,CAACC,eAAe,CACrF,UAAAC,YAAY,EAAI;EACZ,OAAO,SAASC,uBAAuBA,CAAA,EAAG;IACtC,IAAMC,IAAI,GAAGF,YAAY,CAAC,CAAC;IAC3B,IAAAG,iBAAA,GAAwD,IAAAC,uBAAgB,EAAC,CAAC;MAAlEC,0BAA0B,GAAAF,iBAAA,CAA1BE,0BAA0B;MAAEC,eAAe,GAAAH,iBAAA,CAAfG,eAAe;IACnD,IAAAC,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;MAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;IACpB,IAAAC,SAAA,GAAkB,IAAAC,wBAAQ,EAAC,CAAC;MAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;IAEb,IAAQC,KAAK,GAAKX,IAAI,CAAdW,KAAK;IAEb,IAAMC,SAAoB,GAAG,IAAAC,kBAAW,EACpC,kBAAqB;MACjB,IAAI,CAACF,KAAK,CAACG,EAAE,EAAE;QACX,OAAOd,IAAI,CAACY,SAAS,CAAAG,KAAA,CAAdf,IAAI,EAAAgB,SAAoB,CAAC;MACpC;MAEA,IAAMC,MAAM,GAAG,MAAMd,0BAA0B,CAAC;QAC5CW,EAAE,EAAEH,KAAK,CAACG,EAAE;QACZI,YAAY,EAAER,KAAK,CAACS;MACxB,CAAC,CAAC;MAEF,IAAIF,MAAM,EAAEG,QAAQ,EAAE;QAClB,IAAMA,QAAQ,GAAGH,MAAM,CAACG,QAAQ;QAChCb,YAAY,yCAAAc,MAAA,CAEJD,QAAQ,CAACE,WAAW,IAAIF,QAAQ,CAACN,EAAE,mCAE3C,CAAC;QACD,OAAO,IAAI;MACf;MAEA,IAAMS,UAAU,GAAG,MAAMvB,IAAI,CAACY,SAAS,CAAAG,KAAA,CAAdf,IAAI,EAAAgB,SAAoB,CAAC;MAClD,IAAIO,UAAU,EAAE;QACZ,MAAMnB,eAAe,CAAC;UAClBU,EAAE,EAAES,UAAU,CAACT,EAAE;UACjBI,YAAY,EAAER,KAAK,CAACS;QACxB,CAAC,CAAC;MACN;MAEA,OAAOI,UAAU;IACrB,CAAC,EACD,CAACZ,KAAK,EAAEG,EAAE,EAAEJ,KAAK,CAACS,OAAO,EAAEf,eAAe,CAC9C,CAAC;IAED,WAAAoB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACOzB,IAAI;MACPY,SAAS,EAATA;IAAS;EAEjB,CAAC;AACL,CACJ,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@ export interface IRecordLockingIsEntryLockedParams {
2
2
  id: string;
3
3
  type: string;
4
4
  }
5
- export declare type IRecordLockingIsEntryLockedResult = boolean;
5
+ export type IRecordLockingIsEntryLockedResult = boolean;
6
6
  export interface IRecordLockingIsEntryLocked {
7
7
  execute(params: IRecordLockingIsEntryLockedParams): Promise<IRecordLockingIsEntryLockedResult>;
8
8
  }
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError, IRecordLockingLockRecord } from "../../types";
2
2
  import { IRecordLockingGetLockRecordExecuteParams } from "../abstractions/IRecordLockingGetLockRecord";
3
- export declare type IRecordLockingGetLockRecordVariables = IRecordLockingGetLockRecordExecuteParams;
3
+ export type IRecordLockingGetLockRecordVariables = IRecordLockingGetLockRecordExecuteParams;
4
4
  export interface IRecordLockingGetLockRecordResponse {
5
5
  recordLocking: {
6
6
  getLockRecord: {
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError, IRecordLockingLockRecord } from "../../types";
2
2
  import { IRecordLockingGetLockedEntryLockRecordExecuteParams } from "../abstractions/IRecordLockingGetLockedEntryLockRecord";
3
- export declare type IRecordLockingGetLockedEntryLockRecordVariables = IRecordLockingGetLockedEntryLockRecordExecuteParams;
3
+ export type IRecordLockingGetLockedEntryLockRecordVariables = IRecordLockingGetLockedEntryLockRecordExecuteParams;
4
4
  export interface IRecordLockingGetLockedEntryLockRecordResponse {
5
5
  recordLocking: {
6
6
  getLockedEntryLockRecord: {
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError } from "../../types";
2
2
  import { IRecordLockingIsEntryLockedParams } from "../abstractions/IRecordLockingIsEntryLocked";
3
- export declare type IRecordLockingIsEntryLockedVariables = IRecordLockingIsEntryLockedParams;
3
+ export type IRecordLockingIsEntryLockedVariables = IRecordLockingIsEntryLockedParams;
4
4
  export interface IRecordLockingIsEntryLockedResponse {
5
5
  recordLocking: {
6
6
  isEntryLocked: {
@@ -3,7 +3,7 @@ import { IRecordLockingListLockRecordsParams } from "../abstractions/IRecordLock
3
3
  export interface IRecordLockingListLockedRecordsVariablesWhere {
4
4
  id_in?: string[];
5
5
  }
6
- export declare type IRecordLockingListLockedRecordsVariables = IRecordLockingListLockRecordsParams;
6
+ export type IRecordLockingListLockedRecordsVariables = IRecordLockingListLockRecordsParams;
7
7
  export interface IRecordLockingListLockedRecordsResponse {
8
8
  recordLocking: {
9
9
  listLockRecords: {
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError, IRecordLockingLockRecord } from "../../types";
2
2
  import { IRecordLockingLockEntryParams } from "../abstractions/IRecordLockingLockEntry";
3
- export declare type IRecordLockingLockEntryVariables = IRecordLockingLockEntryParams;
3
+ export type IRecordLockingLockEntryVariables = IRecordLockingLockEntryParams;
4
4
  export interface IRecordLockingLockEntryResponse {
5
5
  recordLocking: {
6
6
  lockEntry: {
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError, IRecordLockingLockRecord } from "../../types";
2
2
  import { IRecordLockingUnlockEntryParams } from "../abstractions/IRecordLockingUnlockEntry";
3
- export declare type IRecordLockingUnlockEntryVariables = IRecordLockingUnlockEntryParams;
3
+ export type IRecordLockingUnlockEntryVariables = IRecordLockingUnlockEntryParams;
4
4
  export interface RecordLockingUnlockEntryResponse {
5
5
  recordLocking: {
6
6
  unlockEntry: {
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError, IRecordLockingLockRecord } from "../../types";
2
2
  import { IRecordLockingUnlockEntryRequestParams } from "../abstractions/IRecordLockingUnlockEntryRequest";
3
- export declare type IRecordLockingUnlockEntryRequestVariables = IRecordLockingUnlockEntryRequestParams;
3
+ export type IRecordLockingUnlockEntryRequestVariables = IRecordLockingUnlockEntryRequestParams;
4
4
  export interface IRecordLockingUnlockEntryRequestResponse {
5
5
  recordLocking: {
6
6
  unlockEntryRequest: {
@@ -1,6 +1,6 @@
1
1
  import { IRecordLockingError, IRecordLockingLockRecord } from "../../types";
2
2
  import { IRecordLockingUpdateEntryLockExecuteParams } from "../abstractions/IRecordLockingUpdateEntryLock";
3
- export declare type IRecordLockingUpdateEntryLockVariables = IRecordLockingUpdateEntryLockExecuteParams;
3
+ export type IRecordLockingUpdateEntryLockVariables = IRecordLockingUpdateEntryLockExecuteParams;
4
4
  export interface IRecordLockingUpdateEntryLockResponse {
5
5
  recordLocking: {
6
6
  updateEntryLock: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-record-locking",
3
- "version": "5.40.6-beta.3",
3
+ "version": "5.41.0-beta.0",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,17 +16,17 @@
16
16
  "@apollo/react-hooks": "3.1.5",
17
17
  "@emotion/styled": "11.10.6",
18
18
  "@material-design-icons/svg": "0.14.13",
19
- "@webiny/app": "5.40.6-beta.3",
20
- "@webiny/app-aco": "5.40.6-beta.3",
21
- "@webiny/app-admin": "5.40.6-beta.3",
22
- "@webiny/app-headless-cms": "5.40.6-beta.3",
23
- "@webiny/app-security": "5.40.6-beta.3",
24
- "@webiny/app-wcp": "5.40.6-beta.3",
25
- "@webiny/app-websockets": "5.40.6-beta.3",
26
- "@webiny/error": "5.40.6-beta.3",
27
- "@webiny/react-router": "5.40.6-beta.3",
28
- "@webiny/ui": "5.40.6-beta.3",
29
- "@webiny/utils": "5.40.6-beta.3",
19
+ "@webiny/app": "5.41.0-beta.0",
20
+ "@webiny/app-aco": "5.41.0-beta.0",
21
+ "@webiny/app-admin": "5.41.0-beta.0",
22
+ "@webiny/app-headless-cms": "5.41.0-beta.0",
23
+ "@webiny/app-security": "5.41.0-beta.0",
24
+ "@webiny/app-wcp": "5.41.0-beta.0",
25
+ "@webiny/app-websockets": "5.41.0-beta.0",
26
+ "@webiny/error": "5.41.0-beta.0",
27
+ "@webiny/react-router": "5.41.0-beta.0",
28
+ "@webiny/ui": "5.41.0-beta.0",
29
+ "@webiny/utils": "5.41.0-beta.0",
30
30
  "apollo-client": "2.6.10",
31
31
  "apollo-link": "1.2.14",
32
32
  "crypto-hash": "3.0.0",
@@ -41,11 +41,11 @@
41
41
  "@babel/preset-env": "7.24.3",
42
42
  "@babel/preset-react": "7.24.1",
43
43
  "@babel/preset-typescript": "7.24.1",
44
- "@webiny/cli": "5.40.6-beta.3",
45
- "@webiny/project-utils": "5.40.6-beta.3",
44
+ "@webiny/cli": "5.41.0-beta.0",
45
+ "@webiny/project-utils": "5.41.0-beta.0",
46
46
  "rimraf": "5.0.5",
47
47
  "ttypescript": "1.5.15",
48
- "typescript": "4.7.4"
48
+ "typescript": "4.9.5"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public",
@@ -55,5 +55,5 @@
55
55
  "build": "yarn webiny run build",
56
56
  "watch": "yarn webiny run watch"
57
57
  },
58
- "gitHead": "f9da84b373e62f9f269599c4301e5e4418a98d51"
58
+ "gitHead": "9ce5e75fc577aa4de2cf08d5ca734b3c98fe65b6"
59
59
  }
package/types.d.ts CHANGED
@@ -21,11 +21,11 @@ export interface IRecordLockingRecord extends IPossiblyRecordLockingRecord {
21
21
  entryId: string;
22
22
  $lockingType: string;
23
23
  }
24
- export declare type IIsRecordLockedParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
25
- export declare type IUpdateEntryLockParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
26
- export declare type IUnlockEntryParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
27
- export declare type IFetchLockRecordParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
28
- export declare type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
24
+ export type IIsRecordLockedParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
25
+ export type IUpdateEntryLockParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
26
+ export type IUnlockEntryParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
27
+ export type IFetchLockRecordParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
28
+ export type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, "id" | "$lockingType">;
29
29
  export interface IFetchLockRecordResult {
30
30
  data: IRecordLockingLockRecord | null;
31
31
  error: IRecordLockingError | null;
@@ -1,3 +1,3 @@
1
1
  import { GenericRecord } from "@webiny/app/types";
2
- export declare type ICreateCacheKeyInput = string | GenericRecord | ICreateCacheKeyInput[];
2
+ export type ICreateCacheKeyInput = string | GenericRecord | ICreateCacheKeyInput[];
3
3
  export declare const createCacheKey: (input: ICreateCacheKeyInput) => Promise<string>;