@webiny/app-record-locking 5.43.2 → 6.0.0-alpha.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.
Files changed (88) hide show
  1. package/components/HeadlessCmsActionsAcoCell.js +46 -57
  2. package/components/HeadlessCmsActionsAcoCell.js.map +1 -1
  3. package/components/HeadlessCmsContentEntry/ContentEntryGuard.js +22 -29
  4. package/components/HeadlessCmsContentEntry/ContentEntryGuard.js.map +1 -1
  5. package/components/HeadlessCmsContentEntry/ContentEntryLocker.js +43 -60
  6. package/components/HeadlessCmsContentEntry/ContentEntryLocker.js.map +1 -1
  7. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js +54 -67
  8. package/components/HeadlessCmsContentEntry/HeadlessCmsContentEntry.js.map +1 -1
  9. package/components/HeadlessCmsContentEntry/index.js +1 -16
  10. package/components/HeadlessCmsContentEntry/index.js.map +1 -1
  11. package/components/LockedRecord/LockedRecord.js +49 -144
  12. package/components/LockedRecord/LockedRecord.js.map +1 -1
  13. package/components/LockedRecord/LockedRecordForceUnlock.js +51 -93
  14. package/components/LockedRecord/LockedRecordForceUnlock.js.map +1 -1
  15. package/components/LockedRecord/index.js +1 -16
  16. package/components/LockedRecord/index.js.map +1 -1
  17. package/components/RecordLockingProvider.js +47 -67
  18. package/components/RecordLockingProvider.js.map +1 -1
  19. package/components/decorators/UseContentEntriesListHookDecorator.js +10 -17
  20. package/components/decorators/UseContentEntriesListHookDecorator.js.map +1 -1
  21. package/components/decorators/UseRecordsDecorator.js +11 -16
  22. package/components/decorators/UseRecordsDecorator.js.map +1 -1
  23. package/components/decorators/UseSaveEntryDecorator.js +34 -32
  24. package/components/decorators/UseSaveEntryDecorator.js.map +1 -1
  25. package/components/permissionRenderer/RecordLockingPermissions.js +39 -53
  26. package/components/permissionRenderer/RecordLockingPermissions.js.map +1 -1
  27. package/components/permissionRenderer/index.js +13 -17
  28. package/components/permissionRenderer/index.js.map +1 -1
  29. package/domain/RecordLocking.js +271 -311
  30. package/domain/RecordLocking.js.map +1 -1
  31. package/domain/RecordLockingClient.js +15 -29
  32. package/domain/RecordLockingClient.js.map +1 -1
  33. package/domain/RecordLockingGetLockRecord.js +16 -29
  34. package/domain/RecordLockingGetLockRecord.js.map +1 -1
  35. package/domain/RecordLockingGetLockedEntryLockRecord.js +14 -27
  36. package/domain/RecordLockingGetLockedEntryLockRecord.js.map +1 -1
  37. package/domain/RecordLockingIsEntryLocked.js +14 -27
  38. package/domain/RecordLockingIsEntryLocked.js.map +1 -1
  39. package/domain/RecordLockingListLockRecords.js +26 -37
  40. package/domain/RecordLockingListLockRecords.js.map +1 -1
  41. package/domain/RecordLockingLockEntry.js +9 -22
  42. package/domain/RecordLockingLockEntry.js.map +1 -1
  43. package/domain/RecordLockingUnlockEntry.js +14 -27
  44. package/domain/RecordLockingUnlockEntry.js.map +1 -1
  45. package/domain/RecordLockingUpdateEntryLock.js +14 -27
  46. package/domain/RecordLockingUpdateEntryLock.js.map +1 -1
  47. package/domain/abstractions/IRecordLocking.js +1 -5
  48. package/domain/abstractions/IRecordLockingClient.js +1 -5
  49. package/domain/abstractions/IRecordLockingGetLockRecord.js +1 -5
  50. package/domain/abstractions/IRecordLockingGetLockedEntryLockRecord.js +1 -5
  51. package/domain/abstractions/IRecordLockingIsEntryLocked.js +1 -5
  52. package/domain/abstractions/IRecordLockingListLockRecords.js +1 -5
  53. package/domain/abstractions/IRecordLockingLockEntry.js +1 -5
  54. package/domain/abstractions/IRecordLockingUnlockEntry.js +1 -5
  55. package/domain/abstractions/IRecordLockingUpdateEntryLock.js +1 -5
  56. package/domain/graphql/fields.js +28 -8
  57. package/domain/graphql/fields.js.map +1 -1
  58. package/domain/graphql/getLockRecord.js +16 -12
  59. package/domain/graphql/getLockRecord.js.map +1 -1
  60. package/domain/graphql/getLockedEntryLockRecord.js +16 -12
  61. package/domain/graphql/getLockedEntryLockRecord.js.map +1 -1
  62. package/domain/graphql/isEntryLocked.js +14 -12
  63. package/domain/graphql/isEntryLocked.js.map +1 -1
  64. package/domain/graphql/listLockRecords.js +23 -14
  65. package/domain/graphql/listLockRecords.js.map +1 -1
  66. package/domain/graphql/lockEntry.js +17 -13
  67. package/domain/graphql/lockEntry.js.map +1 -1
  68. package/domain/graphql/unlockEntry.js +16 -12
  69. package/domain/graphql/unlockEntry.js.map +1 -1
  70. package/domain/graphql/updateEntryLock.js +16 -12
  71. package/domain/graphql/updateEntryLock.js.map +1 -1
  72. package/domain/utils/createRecordLockingClient.js +6 -12
  73. package/domain/utils/createRecordLockingClient.js.map +1 -1
  74. package/domain/utils/createRecordLockingError.js +1 -7
  75. package/domain/utils/createRecordLockingError.js.map +1 -1
  76. package/hooks/index.js +2 -27
  77. package/hooks/index.js.map +1 -1
  78. package/hooks/usePermission.js +11 -16
  79. package/hooks/usePermission.js.map +1 -1
  80. package/hooks/useRecordLocking.js +6 -12
  81. package/hooks/useRecordLocking.js.map +1 -1
  82. package/index.js +20 -50
  83. package/index.js.map +1 -1
  84. package/package.json +17 -18
  85. package/types.js +1 -5
  86. package/utils/createCacheKey.js +5 -11
  87. package/utils/createCacheKey.js.map +1 -1
  88. package/components/assets/lock.svg +0 -13
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_Elevation","_hooks","_appHeadlessCms","_LockedRecordForceUnlock","_lock","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","InnerWrapper","Content","IconBox","Bold","Wrapper","_ref","children","createElement","Elevation","z","ReactComponent","StyledTitle","Title","_useContentEntry","useContentEntry","entry","meta","title","Text","BaseElevation","LockedRecord","exports","_ref2","lockRecordEntry","record","_useRecordLocking","useRecordLocking","getLockRecordEntry","id","lockedBy","LockedRecordForceUnlock","type","$lockingType","displayName"],"sources":["LockedRecord.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Elevation as BaseElevation } from \"@webiny/ui/Elevation\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { useContentEntry } from \"@webiny/app-headless-cms\";\nimport { LockedRecordForceUnlock } from \"./LockedRecordForceUnlock\";\nimport { ReactComponent as LockIcon } from \"@material-design-icons/svg/outlined/lock.svg\";\nimport { IRecordLockingLockRecord } from \"~/types\";\n\nconst StyledWrapper = styled(\"div\")({\n width: \"50%\",\n margin: \"100px auto 0 auto\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n});\n\nconst InnerWrapper = styled(\"div\")({\n display: \"flex\"\n});\n\nconst Content = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\"\n});\n\nconst IconBox = styled(\"div\")({\n width: 250,\n height: 250,\n marginRight: 25,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n backgroundColor: \"var(--mdc-theme-background)\",\n svg: {\n width: 150,\n height: 150,\n lineHeight: \"100%\",\n display: \"block\",\n fill: \"var(--mdc-theme-primary)\"\n }\n});\n\nconst Bold = styled(\"span\")({\n fontWeight: 600\n});\n\ninterface IWrapperProps {\n children: React.ReactNode;\n}\n\nconst Wrapper = ({ children }: IWrapperProps) => {\n return (\n <StyledWrapper>\n <Elevation z={2}>\n <InnerWrapper>\n <IconBox>\n <LockIcon />\n </IconBox>\n <Content>{children}</Content>\n </InnerWrapper>\n </Elevation>\n </StyledWrapper>\n );\n};\n\nconst StyledTitle = styled(\"h3\")({\n fontSize: 24,\n marginBottom: \"10px\",\n fontWeight: \"600\",\n \" > em\": {\n fontStyle: \"italic\"\n }\n});\n\nconst Title = () => {\n const { entry } = useContentEntry();\n return <StyledTitle>Record ({entry.meta.title}) is locked!</StyledTitle>;\n};\n\nconst Text = styled(\"p\")({\n fontSize: 16,\n marginBottom: \"10px\",\n lineHeight: \"125%\"\n});\n\nconst Elevation = styled(BaseElevation)({\n padding: \"20px\"\n});\n\nexport interface ILockedRecordProps {\n record: IRecordLockingLockRecord;\n}\n\nexport const LockedRecord = ({ record: lockRecordEntry }: ILockedRecordProps) => {\n const { getLockRecordEntry } = useRecordLocking();\n\n const record = getLockRecordEntry(lockRecordEntry.id);\n\n if (!record) {\n return (\n <Wrapper>\n <Text>Could not find the lock record. Please refresh the Admin UI.</Text>\n </Wrapper>\n );\n } else if (!lockRecordEntry?.lockedBy) {\n return (\n <Wrapper>\n <Title />\n <Text>\n This record is locked, but the system cannot find the user that created the\n record lock.\n </Text>\n <Text>\n A force-unlock is required to regain editing capabilities for this record.\n </Text>\n <LockedRecordForceUnlock\n id={lockRecordEntry.id}\n type={record.$lockingType}\n title={record.meta.title}\n />\n </Wrapper>\n );\n }\n return (\n <Wrapper>\n <Title />\n <Text>\n It is locked because <Bold>{lockRecordEntry.lockedBy.displayName}</Bold> is\n currently editing this record.\n </Text>\n <Text>\n You can either contact the user and ask them to unlock the record, or you can wait\n for the lock to expire.\n </Text>\n <LockedRecordForceUnlock\n id={lockRecordEntry.id}\n type={record.$lockingType}\n lockedBy={lockRecordEntry.lockedBy}\n title={record.meta.title}\n />\n </Wrapper>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAA0F,SAAAM,iCAAA;AAG1F,IAAMC,aAAa,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAIlC,CAAC;AAEF,IAAMa,YAAY,gBAAG,IAAAX,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAEjC,CAAC;AAEF,IAAMc,OAAO,gBAAG,IAAAZ,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAI5B,CAAC;AAEF,IAAMe,OAAO,gBAAG,IAAAb,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAgB5B,CAAC;AAEF,IAAMgB,IAAI,gBAAG,IAAAd,KAAA,CAAAC,OAAA,EAAO,MAAM,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAE1B,CAAC;AAMF,IAAMiB,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAAoC;EAAA,IAA9BC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACvB,oBACI3B,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACnB,aAAa,qBACVT,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACC,SAAS;IAACC,CAAC,EAAE;EAAE,gBACZ9B,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACP,YAAY,qBACTrB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACL,OAAO,qBACJvB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACrB,KAAA,CAAAwB,cAAQ,MAAE,CACN,CAAC,eACV/B,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACN,OAAO,QAAEK,QAAkB,CAClB,CACP,CACA,CAAC;AAExB,CAAC;AAED,IAAMK,WAAW,gBAAG,IAAAtB,KAAA,CAAAC,OAAA,EAAO,IAAI,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAO/B,CAAC;AAEF,IAAMyB,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS;EAChB,IAAAC,gBAAA,GAAkB,IAAAC,+BAAe,EAAC,CAAC;IAA3BC,KAAK,GAAAF,gBAAA,CAALE,KAAK;EACb,oBAAOpC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACI,WAAW,QAAC,UAAQ,EAACI,KAAK,CAACC,IAAI,CAACC,KAAK,EAAC,cAAyB,CAAC;AAC5E,CAAC;AAED,IAAMC,IAAI,gBAAG,IAAA7B,KAAA,CAAAC,OAAA,EAAO,GAAG,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAIvB,CAAC;AAEF,IAAMqB,SAAS,gBAAG,IAAAnB,KAAA,CAAAC,OAAA,EAAO6B,oBAAa,EAAA5B,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAEtC,CAAC;AAMK,IAAMiC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAfA,YAAYA,CAAAE,KAAA,EAAwD;EAAA,IAA1CC,eAAe,GAAAD,KAAA,CAAvBE,MAAM;EACjC,IAAAC,iBAAA,GAA+B,IAAAC,uBAAgB,EAAC,CAAC;IAAzCC,kBAAkB,GAAAF,iBAAA,CAAlBE,kBAAkB;EAE1B,IAAMH,MAAM,GAAGG,kBAAkB,CAACJ,eAAe,CAACK,EAAE,CAAC;EAErD,IAAI,CAACJ,MAAM,EAAE;IACT,oBACI7C,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACH,OAAO,qBACJzB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACW,IAAI,QAAC,8DAAkE,CACnE,CAAC;EAElB,CAAC,MAAM,IAAI,CAACK,eAAe,EAAEM,QAAQ,EAAE;IACnC,oBACIlD,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACH,OAAO,qBACJzB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACK,KAAK,MAAE,CAAC,eACTjC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACW,IAAI,QAAC,0FAGA,CAAC,eACPvC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACW,IAAI,QAAC,4EAEA,CAAC,eACPvC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACtB,wBAAA,CAAA6C,uBAAuB;MACpBF,EAAE,EAAEL,eAAe,CAACK,EAAG;MACvBG,IAAI,EAAEP,MAAM,CAACQ,YAAa;MAC1Bf,KAAK,EAAEO,MAAM,CAACR,IAAI,CAACC;IAAM,CAC5B,CACI,CAAC;EAElB;EACA,oBACItC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACH,OAAO,qBACJzB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACK,KAAK,MAAE,CAAC,eACTjC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACW,IAAI,QAAC,uBACmB,eAAAvC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACJ,IAAI,QAAEoB,eAAe,CAACM,QAAQ,CAACI,WAAkB,CAAC,sCAEtE,CAAC,eACPtD,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACW,IAAI,QAAC,4GAGA,CAAC,eACPvC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACtB,wBAAA,CAAA6C,uBAAuB;IACpBF,EAAE,EAAEL,eAAe,CAACK,EAAG;IACvBG,IAAI,EAAEP,MAAM,CAACQ,YAAa;IAC1BH,QAAQ,EAAEN,eAAe,CAACM,QAAS;IACnCZ,KAAK,EAAEO,MAAM,CAACR,IAAI,CAACC;EAAM,CAC5B,CACI,CAAC;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","ReactComponent","LockIcon","Grid","Heading","Icon","Text","useRecordLocking","useContentEntry","LockedRecordForceUnlock","Wrapper","children","createElement","Fragment","className","Column","span","style","width","height","icon","label","color","size","Title","entry","level","meta","title","LockedRecord","record","lockRecordEntry","getLockRecordEntry","id","lockedBy","type","$lockingType","displayName"],"sources":["LockedRecord.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as LockIcon } from \"@webiny/icons/lock.svg\";\nimport { Grid, Heading, Icon, Text } from \"@webiny/admin-ui\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { useContentEntry } from \"@webiny/app-headless-cms\";\nimport { LockedRecordForceUnlock } from \"./LockedRecordForceUnlock\";\nimport { IRecordLockingLockRecord } from \"~/types\";\n\ninterface IWrapperProps {\n children: React.ReactNode;\n}\n\nconst Wrapper = ({ children }: IWrapperProps) => {\n return (\n <>\n <div className=\"wby-w-5/12 wby-absolute wby-top-1/2 wby-left-1/2 wby--translate-x-1/2 wby--translate-y-1/2 wby-z-50\">\n <div\n className={\n \"wby-flex wby-p-lg wby-border-sm wby-border-neutral-dimmed-darker wby-rounded-3xl wby-bg-neutral-base\"\n }\n >\n <Grid>\n <Grid.Column span={3}>\n <div className=\"wby-h-full wby-flex wby-items-center wby-justify-center wby-bg-neutral-dimmed wby-rounded-md wby-p-lg\">\n <Icon\n style={{\n width: \"64px\",\n height: \"64px\"\n }}\n icon={<LockIcon />}\n label={\"Locked Record\"}\n color={\"accent\"}\n size={\"lg\"}\n />\n </div>\n </Grid.Column>\n <Grid.Column span={9}>\n <div className={\"wby-flex wby-flex-col wby-justify-center\"}>\n {children}\n </div>\n </Grid.Column>\n </Grid>\n </div>\n </div>\n {/*<div className=\"wby-absolute wby-inset-0 wby-bg-neutral-dark/50 wby-z-45\"></div>*/}\n </>\n );\n};\n\nconst Title = () => {\n const { entry } = useContentEntry();\n return (\n <Heading level={4} className={\"wby-mb-sm\"}>\n Record ({entry.meta.title}) is locked!\n </Heading>\n );\n};\n\nexport interface ILockedRecordProps {\n record: IRecordLockingLockRecord;\n}\n\nexport const LockedRecord = ({ record: lockRecordEntry }: ILockedRecordProps) => {\n const { getLockRecordEntry } = useRecordLocking();\n\n const record = getLockRecordEntry(lockRecordEntry.id);\n\n if (!record) {\n return (\n <Wrapper>\n <Text>Could not find the lock record. Please refresh the Admin UI.</Text>\n </Wrapper>\n );\n } else if (!lockRecordEntry?.lockedBy) {\n return (\n <Wrapper>\n <Title />\n <Text>\n This record is locked, but the system cannot find the user that created the\n record lock. A force-unlock is required to regain editing capabilities for this\n record.\n </Text>\n <LockedRecordForceUnlock\n id={lockRecordEntry.id}\n type={record.$lockingType}\n title={record.meta.title}\n />\n </Wrapper>\n );\n }\n return (\n <Wrapper>\n <Title />\n <Text>\n It is locked because <strong>{lockRecordEntry.lockedBy.displayName}</strong> is\n currently editing this record. You can either contact the user and ask them to\n unlock the record, or you can wait for the lock to expire.\n </Text>\n <LockedRecordForceUnlock\n id={lockRecordEntry.id}\n type={record.$lockingType}\n lockedBy={lockRecordEntry.lockedBy}\n title={record.meta.title}\n />\n </Wrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,99 +1,50 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.LockedRecordForceUnlock = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _base = _interopRequireDefault(require("@emotion/styled/base"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _appAdmin = require("@webiny/app-admin");
13
- var _hooks = require("../../hooks");
14
- var _reactRouter = require("@webiny/react-router");
15
- var _appHeadlessCms = require("@webiny/app-headless-cms");
16
- var _Alert = require("@webiny/ui/Alert");
17
- var _Button = require("@webiny/ui/Button");
18
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
19
- var Wrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
20
- target: "e1yz5d7m2"
21
- } : {
22
- target: "e1yz5d7m2",
23
- label: "Wrapper"
24
- })(process.env.NODE_ENV === "production" ? {
25
- name: "38ejjw",
26
- styles: "padding:0;background-color:white"
27
- } : {
28
- name: "38ejjw",
29
- styles: "padding:0;background-color:white",
30
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVZ0IiLCJmaWxlIjoiTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nRXJyb3IsIElSZWNvcmRMb2NraW5nSWRlbnRpdHkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlybWF0aW9uRGlhbG9nLCB1c2VTbmFja2JhciB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZywgdXNlUGVybWlzc2lvbiB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQWxlcnRcIjtcbmltcG9ydCB7IEJ1dHRvblByaW1hcnkgfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcGFkZGluZzogXCIwXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCJcbn0pO1xuXG5jb25zdCBUZXh0ID0gc3R5bGVkKFwicFwiKSh7XG4gICAgbGluZUhlaWdodDogXCIxMjUlXCJcbn0pO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkKFwic3BhblwiKSh7XG4gICAgZm9udFdlaWdodDogNjAwXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsb2NrZWRCeT86IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG59XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9IChwcm9wczogSUxvY2tlZFJlY29yZEZvcmNlVW5sb2NrUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHRpdGxlLCBsb2NrZWRCeSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxBbGVydCB0eXBlPVwid2FybmluZ1wiIHRpdGxlPVwiV2FybmluZ1wiPlxuICAgICAgICAgICAgICAgIDxCb2xkPntsb2NrZWRCeT8uZGlzcGxheU5hbWUgfHwgXCJVbmtub3duIHVzZXJcIn08L0JvbGQ+IGlzIGN1cnJlbnRseSBlZGl0aW5nIHRoaXNcbiAgICAgICAgICAgICAgICByZWNvcmQuXG4gICAgICAgICAgICAgICAgPGJyIC8+IElmIHlvdSBmb3JjZSB1bmxvY2sgaXQsIHRoZXkgY291bGQgcG90ZW50aWFsbHkgbG9zZSB0aGVpciBjaGFuZ2VzLlxuICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgWW91IGFyZSBhYm91dCB0byBmb3JjZWZ1bGx5IHVubG9jayB0aGUgPEJvbGQ+e3RpdGxlfTwvQm9sZD4gZW50cnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IExvY2tlZFJlY29yZEZvcmNlVW5sb2NrID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrRW50cnlGb3JjZSB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcbiAgICBjb25zdCB7IHNob3dDb25maXJtYXRpb246IHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbiB9ID0gdXNlQ29uZmlybWF0aW9uRGlhbG9nKHtcbiAgICAgICAgdGl0bGU6IFwiRm9yY2UgdW5sb2NrIHRoZSBlbnRyeVwiLFxuICAgICAgICBtZXNzYWdlOiA8RXJyb3JNZXNzYWdlIHsuLi5wcm9wc30gLz5cbiAgICB9KTtcbiAgICBjb25zdCB7IHNob3dTbmFja2JhciB9ID0gdXNlU25hY2tiYXIoKTtcblxuICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG5cbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nRXJyb3I+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICB9LCBbZXJyb3I/Lm1lc3NhZ2VdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1bmxvY2tFbnRyeUZvcmNlKHtcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBwcm9wcy50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGVUbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEVycm9yKHJlc3VsdC5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sIFtwcm9wcy5pZCwgaGlzdG9yeSwgbmF2aWdhdGVUb10pO1xuXG4gICAgY29uc3QgeyBjYW5Gb3JjZVVubG9jayB9ID0gdXNlUGVybWlzc2lvbigpO1xuICAgIGlmICghY2FuRm9yY2VVbmxvY2spIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFdyYXBwZXI+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICBCZWNhdXNlIHlvdSBoYXZlIGEgZnVsbCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSwgeW91IGNhbiBmb3JjZSB1bmxvY2sgdGhlIHJlY29yZC5cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPEJ1dHRvblByaW1hcnkgb25DbGljaz17b25DbGlja30+VW5sb2NrIGFuZCBnbyBiYWNrPC9CdXR0b25QcmltYXJ5PlxuICAgICAgICA8L1dyYXBwZXI+XG4gICAgKTtcbn07XG4iXX0= */",
31
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
32
- });
33
- var Text = /*#__PURE__*/(0, _base.default)("p", process.env.NODE_ENV === "production" ? {
34
- target: "e1yz5d7m1"
35
- } : {
36
- target: "e1yz5d7m1",
37
- label: "Text"
38
- })(process.env.NODE_ENV === "production" ? {
39
- name: "sqtwzz",
40
- styles: "line-height:125%"
41
- } : {
42
- name: "sqtwzz",
43
- styles: "line-height:125%",
44
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlYSIsImZpbGUiOiJMb2NrZWRSZWNvcmRGb3JjZVVubG9jay50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgSVJlY29yZExvY2tpbmdFcnJvciwgSVJlY29yZExvY2tpbmdJZGVudGl0eSB9IGZyb20gXCJ+L3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VDb25maXJtYXRpb25EaWFsb2csIHVzZVNuYWNrYmFyIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgeyB1c2VSZWNvcmRMb2NraW5nLCB1c2VQZXJtaXNzaW9uIH0gZnJvbSBcIn4vaG9va3NcIjtcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gXCJAd2ViaW55L3JlYWN0LXJvdXRlclwiO1xuaW1wb3J0IHsgdXNlQ29udGVudEVudHJpZXNMaXN0IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWhlYWRsZXNzLWNtc1wiO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tIFwiQHdlYmlueS91aS9BbGVydFwiO1xuaW1wb3J0IHsgQnV0dG9uUHJpbWFyeSB9IGZyb20gXCJAd2ViaW55L3VpL0J1dHRvblwiO1xuXG5jb25zdCBXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBwYWRkaW5nOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIlxufSk7XG5cbmNvbnN0IFRleHQgPSBzdHlsZWQoXCJwXCIpKHtcbiAgICBsaW5lSGVpZ2h0OiBcIjEyNSVcIlxufSk7XG5cbmNvbnN0IEJvbGQgPSBzdHlsZWQoXCJzcGFuXCIpKHtcbiAgICBmb250V2VpZ2h0OiA2MDBcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMb2NrZWRSZWNvcmRGb3JjZVVubG9ja1Byb3BzIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGxvY2tlZEJ5PzogSVJlY29yZExvY2tpbmdJZGVudGl0eTtcbn1cblxuY29uc3QgRXJyb3JNZXNzYWdlID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdGl0bGUsIGxvY2tlZEJ5IH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEFsZXJ0IHR5cGU9XCJ3YXJuaW5nXCIgdGl0bGU9XCJXYXJuaW5nXCI+XG4gICAgICAgICAgICAgICAgPEJvbGQ+e2xvY2tlZEJ5Py5kaXNwbGF5TmFtZSB8fCBcIlVua25vd24gdXNlclwifTwvQm9sZD4gaXMgY3VycmVudGx5IGVkaXRpbmcgdGhpc1xuICAgICAgICAgICAgICAgIHJlY29yZC5cbiAgICAgICAgICAgICAgICA8YnIgLz4gSWYgeW91IGZvcmNlIHVubG9jayBpdCwgdGhleSBjb3VsZCBwb3RlbnRpYWxseSBsb3NlIHRoZWlyIGNoYW5nZXMuXG4gICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICBZb3UgYXJlIGFib3V0IHRvIGZvcmNlZnVsbHkgdW5sb2NrIHRoZSA8Qm9sZD57dGl0bGV9PC9Cb2xkPiBlbnRyeS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT88L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sgPSAocHJvcHM6IElMb2NrZWRSZWNvcmRGb3JjZVVubG9ja1Byb3BzKSA9PiB7XG4gICAgY29uc3QgeyB1bmxvY2tFbnRyeUZvcmNlIH0gPSB1c2VSZWNvcmRMb2NraW5nKCk7XG5cbiAgICBjb25zdCB7IG5hdmlnYXRlVG8gfSA9IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCgpO1xuICAgIGNvbnN0IHsgc2hvd0NvbmZpcm1hdGlvbjogc2hvd0ZvcmNlVW5sb2NrQ29uZmlybWF0aW9uIH0gPSB1c2VDb25maXJtYXRpb25EaWFsb2coe1xuICAgICAgICB0aXRsZTogXCJGb3JjZSB1bmxvY2sgdGhlIGVudHJ5XCIsXG4gICAgICAgIG1lc3NhZ2U6IDxFcnJvck1lc3NhZ2Ugey4uLnByb3BzfSAvPlxuICAgIH0pO1xuICAgIGNvbnN0IHsgc2hvd1NuYWNrYmFyIH0gPSB1c2VTbmFja2JhcigpO1xuXG4gICAgY29uc3QgeyBoaXN0b3J5IH0gPSB1c2VSb3V0ZXIoKTtcblxuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8SVJlY29yZExvY2tpbmdFcnJvcj4oKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgc2hvd1NuYWNrYmFyKGVycm9yLm1lc3NhZ2UpO1xuICAgIH0sIFtlcnJvcj8ubWVzc2FnZV0pO1xuXG4gICAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2hvd0ZvcmNlVW5sb2NrQ29uZmlybWF0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHVubG9ja0VudHJ5Rm9yY2Uoe1xuICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAkbG9ja2luZ1R5cGU6IHByb3BzLnR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0RXJyb3IocmVzdWx0LmVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW3Byb3BzLmlkLCBoaXN0b3J5LCBuYXZpZ2F0ZVRvXSk7XG5cbiAgICBjb25zdCB7IGNhbkZvcmNlVW5sb2NrIH0gPSB1c2VQZXJtaXNzaW9uKCk7XG4gICAgaWYgKCFjYW5Gb3JjZVVubG9jaykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8V3JhcHBlcj5cbiAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgIEJlY2F1c2UgeW91IGhhdmUgYSBmdWxsIGFjY2VzcyB0byB0aGUgc3lzdGVtLCB5b3UgY2FuIGZvcmNlIHVubG9jayB0aGUgcmVjb3JkLlxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8QnV0dG9uUHJpbWFyeSBvbkNsaWNrPXtvbkNsaWNrfT5VbmxvY2sgYW5kIGdvIGJhY2s8L0J1dHRvblByaW1hcnk+XG4gICAgICAgIDwvV3JhcHBlcj5cbiAgICApO1xufTtcbiJdfQ== */",
45
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
46
- });
47
- var Bold = /*#__PURE__*/(0, _base.default)("span", process.env.NODE_ENV === "production" ? {
48
- target: "e1yz5d7m0"
49
- } : {
50
- target: "e1yz5d7m0",
51
- label: "Bold"
52
- })(process.env.NODE_ENV === "production" ? {
53
- name: "16ceglb",
54
- styles: "font-weight:600"
55
- } : {
56
- name: "16ceglb",
57
- styles: "font-weight:600",
58
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQmEiLCJmaWxlIjoiTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nRXJyb3IsIElSZWNvcmRMb2NraW5nSWRlbnRpdHkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlybWF0aW9uRGlhbG9nLCB1c2VTbmFja2JhciB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZywgdXNlUGVybWlzc2lvbiB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQWxlcnRcIjtcbmltcG9ydCB7IEJ1dHRvblByaW1hcnkgfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcGFkZGluZzogXCIwXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCJcbn0pO1xuXG5jb25zdCBUZXh0ID0gc3R5bGVkKFwicFwiKSh7XG4gICAgbGluZUhlaWdodDogXCIxMjUlXCJcbn0pO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkKFwic3BhblwiKSh7XG4gICAgZm9udFdlaWdodDogNjAwXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsb2NrZWRCeT86IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG59XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9IChwcm9wczogSUxvY2tlZFJlY29yZEZvcmNlVW5sb2NrUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHRpdGxlLCBsb2NrZWRCeSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxBbGVydCB0eXBlPVwid2FybmluZ1wiIHRpdGxlPVwiV2FybmluZ1wiPlxuICAgICAgICAgICAgICAgIDxCb2xkPntsb2NrZWRCeT8uZGlzcGxheU5hbWUgfHwgXCJVbmtub3duIHVzZXJcIn08L0JvbGQ+IGlzIGN1cnJlbnRseSBlZGl0aW5nIHRoaXNcbiAgICAgICAgICAgICAgICByZWNvcmQuXG4gICAgICAgICAgICAgICAgPGJyIC8+IElmIHlvdSBmb3JjZSB1bmxvY2sgaXQsIHRoZXkgY291bGQgcG90ZW50aWFsbHkgbG9zZSB0aGVpciBjaGFuZ2VzLlxuICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgWW91IGFyZSBhYm91dCB0byBmb3JjZWZ1bGx5IHVubG9jayB0aGUgPEJvbGQ+e3RpdGxlfTwvQm9sZD4gZW50cnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IExvY2tlZFJlY29yZEZvcmNlVW5sb2NrID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrRW50cnlGb3JjZSB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcbiAgICBjb25zdCB7IHNob3dDb25maXJtYXRpb246IHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbiB9ID0gdXNlQ29uZmlybWF0aW9uRGlhbG9nKHtcbiAgICAgICAgdGl0bGU6IFwiRm9yY2UgdW5sb2NrIHRoZSBlbnRyeVwiLFxuICAgICAgICBtZXNzYWdlOiA8RXJyb3JNZXNzYWdlIHsuLi5wcm9wc30gLz5cbiAgICB9KTtcbiAgICBjb25zdCB7IHNob3dTbmFja2JhciB9ID0gdXNlU25hY2tiYXIoKTtcblxuICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG5cbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nRXJyb3I+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICB9LCBbZXJyb3I/Lm1lc3NhZ2VdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1bmxvY2tFbnRyeUZvcmNlKHtcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBwcm9wcy50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGVUbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEVycm9yKHJlc3VsdC5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sIFtwcm9wcy5pZCwgaGlzdG9yeSwgbmF2aWdhdGVUb10pO1xuXG4gICAgY29uc3QgeyBjYW5Gb3JjZVVubG9jayB9ID0gdXNlUGVybWlzc2lvbigpO1xuICAgIGlmICghY2FuRm9yY2VVbmxvY2spIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFdyYXBwZXI+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICBCZWNhdXNlIHlvdSBoYXZlIGEgZnVsbCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSwgeW91IGNhbiBmb3JjZSB1bmxvY2sgdGhlIHJlY29yZC5cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPEJ1dHRvblByaW1hcnkgb25DbGljaz17b25DbGlja30+VW5sb2NrIGFuZCBnbyBiYWNrPC9CdXR0b25QcmltYXJ5PlxuICAgICAgICA8L1dyYXBwZXI+XG4gICAgKTtcbn07XG4iXX0= */",
59
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
60
- });
61
- var ErrorMessage = function ErrorMessage(props) {
62
- var title = props.title,
63
- lockedBy = props.lockedBy;
64
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
1
+ import React, { useCallback, useEffect, useState } from "react";
2
+ import { Alert, Button, Text } from "@webiny/admin-ui";
3
+ import { useConfirmationDialog, useSnackbar } from "@webiny/app-admin";
4
+ import { useRecordLocking, usePermission } from "../../hooks";
5
+ import { useRouter } from "@webiny/react-router";
6
+ import { useContentEntriesList } from "@webiny/app-headless-cms";
7
+ const ErrorMessage = props => {
8
+ const {
9
+ title,
10
+ lockedBy
11
+ } = props;
12
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Alert, {
65
13
  type: "warning",
66
- title: "Warning"
67
- }, /*#__PURE__*/_react.default.createElement(Bold, null, lockedBy?.displayName || "Unknown user"), " is currently editing this record.", /*#__PURE__*/_react.default.createElement("br", null), " If you force unlock it, they could potentially lose their changes."), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("p", null, "You are about to forcefully unlock the ", /*#__PURE__*/_react.default.createElement(Bold, null, title), " entry."), /*#__PURE__*/_react.default.createElement("p", null, "Are you sure you want to continue?"));
14
+ title: "Warning",
15
+ className: "wby-mb-md"
16
+ }, /*#__PURE__*/React.createElement("strong", null, lockedBy?.displayName || "Unknown user"), " is currently editing this record.", /*#__PURE__*/React.createElement("br", null), " If you force unlock it, they could potentially lose their changes."), /*#__PURE__*/React.createElement(Text, null, "You are about to forcefully unlock the ", /*#__PURE__*/React.createElement("strong", null, title), " entry. Are you sure you want to continue?"));
68
17
  };
69
- var LockedRecordForceUnlock = exports.LockedRecordForceUnlock = function LockedRecordForceUnlock(props) {
70
- var _useRecordLocking = (0, _hooks.useRecordLocking)(),
71
- unlockEntryForce = _useRecordLocking.unlockEntryForce;
72
- var _useContentEntriesLis = (0, _appHeadlessCms.useContentEntriesList)(),
73
- navigateTo = _useContentEntriesLis.navigateTo;
74
- var _useConfirmationDialo = (0, _appAdmin.useConfirmationDialog)({
75
- title: "Force unlock the entry",
76
- message: /*#__PURE__*/_react.default.createElement(ErrorMessage, props)
77
- }),
78
- showForceUnlockConfirmation = _useConfirmationDialo.showConfirmation;
79
- var _useSnackbar = (0, _appAdmin.useSnackbar)(),
80
- showSnackbar = _useSnackbar.showSnackbar;
81
- var _useRouter = (0, _reactRouter.useRouter)(),
82
- history = _useRouter.history;
83
- var _useState = (0, _react.useState)(),
84
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
85
- error = _useState2[0],
86
- setError = _useState2[1];
87
- (0, _react.useEffect)(function () {
18
+ export const LockedRecordForceUnlock = props => {
19
+ const {
20
+ unlockEntryForce
21
+ } = useRecordLocking();
22
+ const {
23
+ navigateTo
24
+ } = useContentEntriesList();
25
+ const {
26
+ showConfirmation: showForceUnlockConfirmation
27
+ } = useConfirmationDialog({
28
+ title: "Force unlock the entry",
29
+ message: /*#__PURE__*/React.createElement(ErrorMessage, props)
30
+ });
31
+ const {
32
+ showSnackbar
33
+ } = useSnackbar();
34
+ const {
35
+ history
36
+ } = useRouter();
37
+ const [error, setError] = useState();
38
+ useEffect(() => {
88
39
  if (!error?.message) {
89
40
  return;
90
41
  }
91
42
  console.error(error);
92
43
  showSnackbar(error.message);
93
44
  }, [error?.message]);
94
- var onClick = (0, _react.useCallback)(function () {
95
- showForceUnlockConfirmation(async function () {
96
- var result = await unlockEntryForce({
45
+ const onClick = useCallback(() => {
46
+ showForceUnlockConfirmation(async () => {
47
+ const result = await unlockEntryForce({
97
48
  id: props.id,
98
49
  $lockingType: props.type
99
50
  });
@@ -104,14 +55,21 @@ var LockedRecordForceUnlock = exports.LockedRecordForceUnlock = function LockedR
104
55
  setError(result.error);
105
56
  });
106
57
  }, [props.id, history, navigateTo]);
107
- var _usePermission = (0, _hooks.usePermission)(),
108
- canForceUnlock = _usePermission.canForceUnlock;
58
+ const {
59
+ canForceUnlock
60
+ } = usePermission();
109
61
  if (!canForceUnlock) {
110
62
  return null;
111
63
  }
112
- return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(Text, null, "Because you have a full access to the system, you can force unlock the record."), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
113
- onClick: onClick
114
- }, "Unlock and go back"));
64
+ return /*#__PURE__*/React.createElement("div", {
65
+ className: "wby-mt-md"
66
+ }, /*#__PURE__*/React.createElement(Text, {
67
+ as: "div",
68
+ className: "wby-mb-md"
69
+ }, "Because you have a full access to the system, you can force unlock the record."), /*#__PURE__*/React.createElement(Button, {
70
+ onClick: onClick,
71
+ text: "Unlock and go back"
72
+ }));
115
73
  };
116
74
 
117
75
  //# sourceMappingURL=LockedRecordForceUnlock.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_hooks","_reactRouter","_appHeadlessCms","_Alert","_Button","_EMOTION_STRINGIFIED_CSS_ERROR__","Wrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Text","Bold","ErrorMessage","props","title","lockedBy","createElement","Alert","type","displayName","LockedRecordForceUnlock","exports","_useRecordLocking","useRecordLocking","unlockEntryForce","_useContentEntriesLis","useContentEntriesList","navigateTo","_useConfirmationDialo","useConfirmationDialog","message","showForceUnlockConfirmation","showConfirmation","_useSnackbar","useSnackbar","showSnackbar","_useRouter","useRouter","history","_useState","useState","_useState2","_slicedToArray2","error","setError","useEffect","console","onClick","useCallback","result","id","$lockingType","_usePermission","usePermission","canForceUnlock","ButtonPrimary"],"sources":["LockedRecordForceUnlock.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { IRecordLockingError, IRecordLockingIdentity } from \"~/types\";\nimport { useConfirmationDialog, useSnackbar } from \"@webiny/app-admin\";\nimport { useRecordLocking, usePermission } from \"~/hooks\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useContentEntriesList } from \"@webiny/app-headless-cms\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\n\nconst Wrapper = styled(\"div\")({\n padding: \"0\",\n backgroundColor: \"white\"\n});\n\nconst Text = styled(\"p\")({\n lineHeight: \"125%\"\n});\n\nconst Bold = styled(\"span\")({\n fontWeight: 600\n});\n\nexport interface ILockedRecordForceUnlockProps {\n id: string;\n type: string;\n title: string;\n lockedBy?: IRecordLockingIdentity;\n}\n\nconst ErrorMessage = (props: ILockedRecordForceUnlockProps) => {\n const { title, lockedBy } = props;\n return (\n <div>\n <Alert type=\"warning\" title=\"Warning\">\n <Bold>{lockedBy?.displayName || \"Unknown user\"}</Bold> is currently editing this\n record.\n <br /> If you force unlock it, they could potentially lose their changes.\n </Alert>\n <br />\n <p>\n You are about to forcefully unlock the <Bold>{title}</Bold> entry.\n </p>\n <p>Are you sure you want to continue?</p>\n </div>\n );\n};\n\nexport const LockedRecordForceUnlock = (props: ILockedRecordForceUnlockProps) => {\n const { unlockEntryForce } = useRecordLocking();\n\n const { navigateTo } = useContentEntriesList();\n const { showConfirmation: showForceUnlockConfirmation } = useConfirmationDialog({\n title: \"Force unlock the entry\",\n message: <ErrorMessage {...props} />\n });\n const { showSnackbar } = useSnackbar();\n\n const { history } = useRouter();\n\n const [error, setError] = useState<IRecordLockingError>();\n\n useEffect(() => {\n if (!error?.message) {\n return;\n }\n console.error(error);\n showSnackbar(error.message);\n }, [error?.message]);\n\n const onClick = useCallback(() => {\n showForceUnlockConfirmation(async () => {\n const result = await unlockEntryForce({\n id: props.id,\n $lockingType: props.type\n });\n if (!result.error) {\n navigateTo();\n return;\n }\n setError(result.error);\n });\n }, [props.id, history, navigateTo]);\n\n const { canForceUnlock } = usePermission();\n if (!canForceUnlock) {\n return null;\n }\n\n return (\n <Wrapper>\n <Text>\n Because you have a full access to the system, you can force unlock the record.\n </Text>\n <br />\n <ButtonPrimary onClick={onClick}>Unlock and go back</ButtonPrimary>\n </Wrapper>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAkD,SAAAO,iCAAA;AAElD,IAAMC,OAAO,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAG5B,CAAC;AAEF,IAAMa,IAAI,gBAAG,IAAAX,KAAA,CAAAC,OAAA,EAAO,GAAG,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAEvB,CAAC;AAEF,IAAMc,IAAI,gBAAG,IAAAZ,KAAA,CAAAC,OAAA,EAAO,MAAM,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAE1B,CAAC;AASF,IAAMe,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAoC,EAAK;EAC3D,IAAQC,KAAK,GAAeD,KAAK,CAAzBC,KAAK;IAAEC,QAAQ,GAAKF,KAAK,CAAlBE,QAAQ;EACvB,oBACI3B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,2BACI5B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAACrB,MAAA,CAAAsB,KAAK;IAACC,IAAI,EAAC,SAAS;IAACJ,KAAK,EAAC;EAAS,gBACjC1B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAACL,IAAI,QAAEI,QAAQ,EAAEI,WAAW,IAAI,cAAqB,CAAC,sCAEtD,eAAA/B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,WAAK,CAAC,uEACH,CAAC,eACR5B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,WAAK,CAAC,eACN5B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,YAAG,yCACwC,eAAA5B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAACL,IAAI,QAAEG,KAAY,CAAC,WAC5D,CAAC,eACJ1B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,YAAG,oCAAqC,CACvC,CAAC;AAEd,CAAC;AAEM,IAAMI,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAIP,KAAoC,EAAK;EAC7E,IAAAS,iBAAA,GAA6B,IAAAC,uBAAgB,EAAC,CAAC;IAAvCC,gBAAgB,GAAAF,iBAAA,CAAhBE,gBAAgB;EAExB,IAAAC,qBAAA,GAAuB,IAAAC,qCAAqB,EAAC,CAAC;IAAtCC,UAAU,GAAAF,qBAAA,CAAVE,UAAU;EAClB,IAAAC,qBAAA,GAA0D,IAAAC,+BAAqB,EAAC;MAC5Ef,KAAK,EAAE,wBAAwB;MAC/BgB,OAAO,eAAE1C,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAACJ,YAAY,EAAKC,KAAQ;IACvC,CAAC,CAAC;IAHwBkB,2BAA2B,GAAAH,qBAAA,CAA7CI,gBAAgB;EAIxB,IAAAC,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;IAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;EAEpB,IAAAC,UAAA,GAAoB,IAAAC,sBAAS,EAAC,CAAC;IAAvBC,OAAO,GAAAF,UAAA,CAAPE,OAAO;EAEf,IAAAC,SAAA,GAA0B,IAAAC,eAAQ,EAAsB,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAA1C,OAAA,EAAAuC,SAAA;IAAlDI,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAEtB,IAAAI,gBAAS,EAAC,YAAM;IACZ,IAAI,CAACF,KAAK,EAAEb,OAAO,EAAE;MACjB;IACJ;IACAgB,OAAO,CAACH,KAAK,CAACA,KAAK,CAAC;IACpBR,YAAY,CAACQ,KAAK,CAACb,OAAO,CAAC;EAC/B,CAAC,EAAE,CAACa,KAAK,EAAEb,OAAO,CAAC,CAAC;EAEpB,IAAMiB,OAAO,GAAG,IAAAC,kBAAW,EAAC,YAAM;IAC9BjB,2BAA2B,CAAC,kBAAY;MACpC,IAAMkB,MAAM,GAAG,MAAMzB,gBAAgB,CAAC;QAClC0B,EAAE,EAAErC,KAAK,CAACqC,EAAE;QACZC,YAAY,EAAEtC,KAAK,CAACK;MACxB,CAAC,CAAC;MACF,IAAI,CAAC+B,MAAM,CAACN,KAAK,EAAE;QACfhB,UAAU,CAAC,CAAC;QACZ;MACJ;MACAiB,QAAQ,CAACK,MAAM,CAACN,KAAK,CAAC;IAC1B,CAAC,CAAC;EACN,CAAC,EAAE,CAAC9B,KAAK,CAACqC,EAAE,EAAEZ,OAAO,EAAEX,UAAU,CAAC,CAAC;EAEnC,IAAAyB,cAAA,GAA2B,IAAAC,oBAAa,EAAC,CAAC;IAAlCC,cAAc,GAAAF,cAAA,CAAdE,cAAc;EACtB,IAAI,CAACA,cAAc,EAAE;IACjB,OAAO,IAAI;EACf;EAEA,oBACIlE,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAAClB,OAAO,qBACJV,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAACN,IAAI,QAAC,gFAEA,CAAC,eACPtB,MAAA,CAAAY,OAAA,CAAAgB,aAAA,WAAK,CAAC,eACN5B,MAAA,CAAAY,OAAA,CAAAgB,aAAA,CAACpB,OAAA,CAAA2D,aAAa;IAACR,OAAO,EAAEA;EAAQ,GAAC,oBAAiC,CAC7D,CAAC;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useState","Alert","Button","Text","useConfirmationDialog","useSnackbar","useRecordLocking","usePermission","useRouter","useContentEntriesList","ErrorMessage","props","title","lockedBy","createElement","type","className","displayName","LockedRecordForceUnlock","unlockEntryForce","navigateTo","showConfirmation","showForceUnlockConfirmation","message","showSnackbar","history","error","setError","console","onClick","result","id","$lockingType","canForceUnlock","as","text"],"sources":["LockedRecordForceUnlock.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { Alert, Button, Text } from \"@webiny/admin-ui\";\nimport { IRecordLockingError, IRecordLockingIdentity } from \"~/types\";\nimport { useConfirmationDialog, useSnackbar } from \"@webiny/app-admin\";\nimport { useRecordLocking, usePermission } from \"~/hooks\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useContentEntriesList } from \"@webiny/app-headless-cms\";\n\nexport interface ILockedRecordForceUnlockProps {\n id: string;\n type: string;\n title: string;\n lockedBy?: IRecordLockingIdentity;\n}\n\nconst ErrorMessage = (props: ILockedRecordForceUnlockProps) => {\n const { title, lockedBy } = props;\n return (\n <div>\n <Alert type=\"warning\" title=\"Warning\" className={\"wby-mb-md\"}>\n <strong>{lockedBy?.displayName || \"Unknown user\"}</strong> is currently editing this\n record.\n <br /> If you force unlock it, they could potentially lose their changes.\n </Alert>\n\n <Text>\n You are about to forcefully unlock the <strong>{title}</strong> entry. Are you sure\n you want to continue?\n </Text>\n </div>\n );\n};\n\nexport const LockedRecordForceUnlock = (props: ILockedRecordForceUnlockProps) => {\n const { unlockEntryForce } = useRecordLocking();\n\n const { navigateTo } = useContentEntriesList();\n const { showConfirmation: showForceUnlockConfirmation } = useConfirmationDialog({\n title: \"Force unlock the entry\",\n message: <ErrorMessage {...props} />\n });\n const { showSnackbar } = useSnackbar();\n\n const { history } = useRouter();\n\n const [error, setError] = useState<IRecordLockingError>();\n\n useEffect(() => {\n if (!error?.message) {\n return;\n }\n console.error(error);\n showSnackbar(error.message);\n }, [error?.message]);\n\n const onClick = useCallback(() => {\n showForceUnlockConfirmation(async () => {\n const result = await unlockEntryForce({\n id: props.id,\n $lockingType: props.type\n });\n if (!result.error) {\n navigateTo();\n return;\n }\n setError(result.error);\n });\n }, [props.id, history, navigateTo]);\n\n const { canForceUnlock } = usePermission();\n if (!canForceUnlock) {\n return null;\n }\n\n return (\n <div className=\"wby-mt-md\">\n <Text as={\"div\"} className={\"wby-mb-md\"}>\n Because you have a full access to the system, you can force unlock the record.\n </Text>\n <Button onClick={onClick} text={\"Unlock and go back\"} />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _LockedRecord = require("./LockedRecord");
7
- Object.keys(_LockedRecord).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _LockedRecord[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function get() {
13
- return _LockedRecord[key];
14
- }
15
- });
16
- });
1
+ export * from "./LockedRecord";
17
2
 
18
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_LockedRecord","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./LockedRecord\";\n"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./LockedRecord\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -1,108 +1,88 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.RecordLockingProvider = exports.RecordLockingContext = void 0;
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _reactHooks = require("@apollo/react-hooks");
13
- var _RecordLocking = require("../domain/RecordLocking");
14
- var _appAdmin = require("@webiny/app-admin");
15
- var RecordLockingContext = exports.RecordLockingContext = /*#__PURE__*/_react.default.createContext({});
16
- var isSameArray = function isSameArray(existingRecords, newRecords) {
1
+ import React, { useCallback, useMemo, useState } from "react";
2
+ import { useApolloClient } from "@apollo/react-hooks";
3
+ import { createRecordLocking } from "../domain/RecordLocking";
4
+ import { useStateIfMounted } from "@webiny/app-admin";
5
+ export const RecordLockingContext = /*#__PURE__*/React.createContext({});
6
+ const isSameArray = (existingRecords, newRecords) => {
17
7
  if (existingRecords.length !== newRecords.length) {
18
8
  return false;
19
9
  }
20
- return existingRecords.every(function (record) {
21
- return newRecords.some(function (newRecord) {
22
- return newRecord.id === record.id && newRecord.savedOn === record.savedOn;
23
- });
10
+ return existingRecords.every(record => {
11
+ return newRecords.some(newRecord => newRecord.id === record.id && newRecord.savedOn === record.savedOn);
24
12
  });
25
13
  };
26
- var RecordLockingProvider = exports.RecordLockingProvider = function RecordLockingProvider(props) {
27
- var client = (0, _reactHooks.useApolloClient)();
28
- var _useState = (0, _react.useState)(false),
29
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
30
- loading = _useState2[0],
31
- setLoading = _useState2[1];
32
- var recordLocking = (0, _react.useMemo)(function () {
33
- return (0, _RecordLocking.createRecordLocking)({
34
- client: client,
35
- setLoading: setLoading
14
+ export const RecordLockingProvider = props => {
15
+ const client = useApolloClient();
16
+ const [loading, setLoading] = useState(false);
17
+ const recordLocking = useMemo(() => {
18
+ return createRecordLocking({
19
+ client,
20
+ setLoading
36
21
  });
37
22
  }, []);
38
- var _useStateIfMounted = (0, _appAdmin.useStateIfMounted)(null),
39
- _useStateIfMounted2 = (0, _slicedToArray2.default)(_useStateIfMounted, 2),
40
- error = _useStateIfMounted2[0],
41
- setError = _useStateIfMounted2[1];
42
- var _useStateIfMounted3 = (0, _appAdmin.useStateIfMounted)([]),
43
- _useStateIfMounted4 = (0, _slicedToArray2.default)(_useStateIfMounted3, 2),
44
- records = _useStateIfMounted4[0],
45
- _setRecords = _useStateIfMounted4[1];
46
- var setRecordsIfNeeded = (0, _react.useCallback)(function (newRecords) {
47
- var sameArray = isSameArray(records, newRecords);
23
+ const [error, setError] = useStateIfMounted(null);
24
+ const [records, setRecords] = useStateIfMounted([]);
25
+ const setRecordsIfNeeded = useCallback(newRecords => {
26
+ const sameArray = isSameArray(records, newRecords);
48
27
  if (sameArray) {
49
28
  return;
50
29
  }
51
- _setRecords(newRecords);
30
+ setRecords(newRecords);
52
31
  }, [records]);
53
- var value = {
54
- updateEntryLock: async function updateEntryLock(params) {
55
- var result = await recordLocking.updateEntryLock(params);
32
+ const value = {
33
+ async updateEntryLock(params) {
34
+ const result = await recordLocking.updateEntryLock(params);
56
35
  if (result.error) {
57
36
  setError(result.error);
58
37
  return result;
59
38
  }
60
- var target = result.data;
39
+ const target = result.data;
61
40
  if (!target?.id) {
62
- var _error = {
41
+ const error = {
63
42
  message: "No data returned from server.",
64
43
  code: "NO_DATA"
65
44
  };
66
- setError(_error);
45
+ setError(error);
67
46
  return {
68
- error: _error,
47
+ error,
69
48
  data: null
70
49
  };
71
50
  }
72
- _setRecords(function (prev) {
73
- return prev.map(function (item) {
51
+ setRecords(prev => {
52
+ return prev.map(item => {
74
53
  if (item.entryId === target.id) {
75
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
54
+ return {
55
+ ...item,
76
56
  $locked: result.data
77
- });
57
+ };
78
58
  }
79
59
  return item;
80
60
  });
81
61
  });
82
62
  return result;
83
63
  },
84
- unlockEntry: async function unlockEntry(params) {
64
+ async unlockEntry(params) {
85
65
  return await recordLocking.unlockEntry(params);
86
66
  },
87
- unlockEntryForce: async function unlockEntryForce(params) {
67
+ async unlockEntryForce(params) {
88
68
  return await recordLocking.unlockEntry(params, true);
89
69
  },
90
- isLockExpired: function isLockExpired(input) {
70
+ isLockExpired(input) {
91
71
  return recordLocking.isLockExpired(input);
92
72
  },
93
- isRecordLocked: function isRecordLocked(record) {
73
+ isRecordLocked(record) {
94
74
  if (!record) {
95
75
  return false;
96
76
  }
97
77
  return recordLocking.isRecordLocked(record);
98
78
  },
99
- getLockRecordEntry: function getLockRecordEntry(id) {
79
+ getLockRecordEntry(id) {
100
80
  return recordLocking.getLockRecordEntry(id);
101
81
  },
102
- removeEntryLock: function removeEntryLock(params) {
82
+ removeEntryLock(params) {
103
83
  return recordLocking.removeEntryLock(params);
104
84
  },
105
- fetchLockRecord: async function fetchLockRecord(params) {
85
+ async fetchLockRecord(params) {
106
86
  try {
107
87
  return await recordLocking.fetchLockRecord(params);
108
88
  } catch (ex) {
@@ -112,22 +92,22 @@ var RecordLockingProvider = exports.RecordLockingProvider = function RecordLocki
112
92
  };
113
93
  }
114
94
  },
115
- fetchLockedEntryLockRecord: async function fetchLockedEntryLockRecord(params) {
95
+ async fetchLockedEntryLockRecord(params) {
116
96
  return recordLocking.fetchLockedEntryLockRecord(params);
117
97
  },
118
- setRecords: async function setRecords(folderId, type, newRecords) {
98
+ async setRecords(folderId, type, newRecords) {
119
99
  setRecordsIfNeeded(newRecords);
120
- var result = await recordLocking.setRecords(folderId, type, newRecords);
100
+ const result = await recordLocking.setRecords(folderId, type, newRecords);
121
101
  if (!result) {
122
102
  return;
123
103
  }
124
- _setRecords(result);
104
+ setRecords(result);
125
105
  },
126
- error: error,
127
- records: records,
128
- loading: loading
106
+ error,
107
+ records,
108
+ loading
129
109
  };
130
- return /*#__PURE__*/_react.default.createElement(RecordLockingContext.Provider, Object.assign({}, props, {
110
+ return /*#__PURE__*/React.createElement(RecordLockingContext.Provider, Object.assign({}, props, {
131
111
  value: value
132
112
  }));
133
113
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactHooks","_RecordLocking","_appAdmin","RecordLockingContext","exports","React","createContext","isSameArray","existingRecords","newRecords","length","every","record","some","newRecord","id","savedOn","RecordLockingProvider","props","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","default","loading","setLoading","recordLocking","useMemo","createRecordLocking","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","error","setError","_useStateIfMounted3","_useStateIfMounted4","records","setRecords","setRecordsIfNeeded","useCallback","sameArray","value","updateEntryLock","params","result","target","data","message","code","prev","map","item","entryId","_objectSpread2","$locked","unlockEntry","unlockEntryForce","isLockExpired","input","isRecordLocked","getLockRecordEntry","removeEntryLock","fetchLockRecord","ex","fetchLockedEntryLockRecord","folderId","type","createElement","Provider","Object","assign"],"sources":["RecordLockingProvider.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { createRecordLocking } from \"~/domain/RecordLocking\";\nimport {\n IFetchLockedEntryLockRecordParams,\n IFetchLockRecordParams,\n IPossiblyRecordLockingRecord,\n IRecordLockingContext,\n IRecordLockingError,\n IUnlockEntryParams,\n IUpdateEntryLockParams\n} from \"~/types\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\n\nexport interface IRecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nexport const RecordLockingContext = React.createContext({} as unknown as IRecordLockingContext);\n\nconst isSameArray = (\n existingRecords: Pick<IPossiblyRecordLockingRecord, \"id\" | \"savedOn\">[],\n newRecords: Pick<IPossiblyRecordLockingRecord, \"id\" | \"savedOn\">[]\n): boolean => {\n if (existingRecords.length !== newRecords.length) {\n return false;\n }\n return existingRecords.every(record => {\n return newRecords.some(\n newRecord => newRecord.id === record.id && newRecord.savedOn === record.savedOn\n );\n });\n};\n\nexport const RecordLockingProvider = (props: IRecordLockingProviderProps) => {\n const client = useApolloClient();\n\n const [loading, setLoading] = useState(false);\n\n const recordLocking = useMemo(() => {\n return createRecordLocking({\n client,\n setLoading\n });\n }, []);\n\n const [error, setError] = useStateIfMounted<IRecordLockingError | null>(null);\n\n const [records, setRecords] = useStateIfMounted<IPossiblyRecordLockingRecord[]>([]);\n\n const setRecordsIfNeeded = useCallback(\n (newRecords: IPossiblyRecordLockingRecord[]) => {\n const sameArray = isSameArray(records, newRecords);\n if (sameArray) {\n return;\n }\n setRecords(newRecords);\n },\n [records]\n );\n\n const value: IRecordLockingContext = {\n async updateEntryLock(params: IUpdateEntryLockParams) {\n const result = await recordLocking.updateEntryLock(params);\n if (result.error) {\n setError(result.error);\n return result;\n }\n const target = result.data;\n if (!target?.id) {\n const error = {\n message: \"No data returned from server.\",\n code: \"NO_DATA\"\n };\n setError(error);\n return {\n error,\n data: null\n };\n }\n\n setRecords(prev => {\n return prev.map(item => {\n if (item.entryId === target.id) {\n return {\n ...item,\n $locked: result.data\n };\n }\n return item;\n });\n });\n return result;\n },\n async unlockEntry(params: IUnlockEntryParams) {\n return await recordLocking.unlockEntry(params);\n },\n async unlockEntryForce(params: IUnlockEntryParams) {\n return await recordLocking.unlockEntry(params, true);\n },\n isLockExpired(input: Date | string): boolean {\n return recordLocking.isLockExpired(input);\n },\n isRecordLocked(record) {\n if (!record) {\n return false;\n }\n return recordLocking.isRecordLocked(record);\n },\n getLockRecordEntry(id: string) {\n return recordLocking.getLockRecordEntry(id);\n },\n removeEntryLock(params: IUnlockEntryParams) {\n return recordLocking.removeEntryLock(params);\n },\n async fetchLockRecord(params: IFetchLockRecordParams) {\n try {\n return await recordLocking.fetchLockRecord(params);\n } catch (ex) {\n return {\n data: null,\n error: ex\n };\n }\n },\n async fetchLockedEntryLockRecord(params: IFetchLockedEntryLockRecordParams) {\n return recordLocking.fetchLockedEntryLockRecord(params);\n },\n async setRecords(folderId, type, newRecords) {\n setRecordsIfNeeded(newRecords);\n\n const result = await recordLocking.setRecords(folderId, type, newRecords);\n if (!result) {\n return;\n }\n setRecords(result);\n },\n error,\n records,\n loading\n };\n\n return <RecordLockingContext.Provider {...props} value={value} />;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","useState","useApolloClient","createRecordLocking","useStateIfMounted","RecordLockingContext","createContext","isSameArray","existingRecords","newRecords","length","every","record","some","newRecord","id","savedOn","RecordLockingProvider","props","client","loading","setLoading","recordLocking","error","setError","records","setRecords","setRecordsIfNeeded","sameArray","value","updateEntryLock","params","result","target","data","message","code","prev","map","item","entryId","$locked","unlockEntry","unlockEntryForce","isLockExpired","input","isRecordLocked","getLockRecordEntry","removeEntryLock","fetchLockRecord","ex","fetchLockedEntryLockRecord","folderId","type","createElement","Provider","Object","assign"],"sources":["RecordLockingProvider.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { createRecordLocking } from \"~/domain/RecordLocking\";\nimport {\n IFetchLockedEntryLockRecordParams,\n IFetchLockRecordParams,\n IPossiblyRecordLockingRecord,\n IRecordLockingContext,\n IRecordLockingError,\n IUnlockEntryParams,\n IUpdateEntryLockParams\n} from \"~/types\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\n\nexport interface IRecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nexport const RecordLockingContext = React.createContext({} as unknown as IRecordLockingContext);\n\nconst isSameArray = (\n existingRecords: Pick<IPossiblyRecordLockingRecord, \"id\" | \"savedOn\">[],\n newRecords: Pick<IPossiblyRecordLockingRecord, \"id\" | \"savedOn\">[]\n): boolean => {\n if (existingRecords.length !== newRecords.length) {\n return false;\n }\n return existingRecords.every(record => {\n return newRecords.some(\n newRecord => newRecord.id === record.id && newRecord.savedOn === record.savedOn\n );\n });\n};\n\nexport const RecordLockingProvider = (props: IRecordLockingProviderProps) => {\n const client = useApolloClient();\n\n const [loading, setLoading] = useState(false);\n\n const recordLocking = useMemo(() => {\n return createRecordLocking({\n client,\n setLoading\n });\n }, []);\n\n const [error, setError] = useStateIfMounted<IRecordLockingError | null>(null);\n\n const [records, setRecords] = useStateIfMounted<IPossiblyRecordLockingRecord[]>([]);\n\n const setRecordsIfNeeded = useCallback(\n (newRecords: IPossiblyRecordLockingRecord[]) => {\n const sameArray = isSameArray(records, newRecords);\n if (sameArray) {\n return;\n }\n setRecords(newRecords);\n },\n [records]\n );\n\n const value: IRecordLockingContext = {\n async updateEntryLock(params: IUpdateEntryLockParams) {\n const result = await recordLocking.updateEntryLock(params);\n if (result.error) {\n setError(result.error);\n return result;\n }\n const target = result.data;\n if (!target?.id) {\n const error = {\n message: \"No data returned from server.\",\n code: \"NO_DATA\"\n };\n setError(error);\n return {\n error,\n data: null\n };\n }\n\n setRecords(prev => {\n return prev.map(item => {\n if (item.entryId === target.id) {\n return {\n ...item,\n $locked: result.data\n };\n }\n return item;\n });\n });\n return result;\n },\n async unlockEntry(params: IUnlockEntryParams) {\n return await recordLocking.unlockEntry(params);\n },\n async unlockEntryForce(params: IUnlockEntryParams) {\n return await recordLocking.unlockEntry(params, true);\n },\n isLockExpired(input: Date | string): boolean {\n return recordLocking.isLockExpired(input);\n },\n isRecordLocked(record) {\n if (!record) {\n return false;\n }\n return recordLocking.isRecordLocked(record);\n },\n getLockRecordEntry(id: string) {\n return recordLocking.getLockRecordEntry(id);\n },\n removeEntryLock(params: IUnlockEntryParams) {\n return recordLocking.removeEntryLock(params);\n },\n async fetchLockRecord(params: IFetchLockRecordParams) {\n try {\n return await recordLocking.fetchLockRecord(params);\n } catch (ex) {\n return {\n data: null,\n error: ex\n };\n }\n },\n async fetchLockedEntryLockRecord(params: IFetchLockedEntryLockRecordParams) {\n return recordLocking.fetchLockedEntryLockRecord(params);\n },\n async setRecords(folderId, type, newRecords) {\n setRecordsIfNeeded(newRecords);\n\n const result = await recordLocking.setRecords(folderId, type, newRecords);\n if (!result) {\n return;\n }\n setRecords(result);\n },\n error,\n records,\n loading\n };\n\n return <RecordLockingContext.Provider {...props} value={value} />;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,27 +1,20 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.UseContentEntriesListHookDecorator = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _react = require("react");
10
- var _appHeadlessCms = require("@webiny/app-headless-cms");
11
- var _hooks = require("../../hooks");
12
- var UseContentEntriesListHookDecorator = exports.UseContentEntriesListHookDecorator = _appHeadlessCms.ContentEntryListConfig.ContentEntries.useContentEntriesList.createDecorator(function (originalHook) {
1
+ import { useEffect } from "react";
2
+ import { ContentEntryListConfig } from "@webiny/app-headless-cms";
3
+ import { useRecordLocking } from "../../hooks";
4
+ export const UseContentEntriesListHookDecorator = ContentEntryListConfig.ContentEntries.useContentEntriesList.createDecorator(originalHook => {
13
5
  return function RecordLockingUseContentEntriesList() {
14
- var value = originalHook();
15
- var recordLocking = (0, _hooks.useRecordLocking)();
16
- (0, _react.useEffect)(function () {
6
+ const value = originalHook();
7
+ const recordLocking = useRecordLocking();
8
+ useEffect(() => {
17
9
  if (!value.records) {
18
10
  return;
19
11
  }
20
12
  recordLocking.setRecords(value.folderId, value.modelId, value.records);
21
13
  }, [value.folderId, value.modelId, value.records, recordLocking]);
22
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, value), {}, {
14
+ return {
15
+ ...value,
23
16
  records: recordLocking.records
24
- });
17
+ };
25
18
  };
26
19
  });
27
20