@strapi/admin 4.25.23 → 4.25.24

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 (211) hide show
  1. package/dist/_chunks/{AdminSeatInfo-iASat0Hw.js → AdminSeatInfo-8xMMgK8c.js} +3 -3
  2. package/dist/_chunks/{AdminSeatInfo-iASat0Hw.js.map → AdminSeatInfo-8xMMgK8c.js.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-LXgNjwsq.mjs → AdminSeatInfo-l8s6cR0K.mjs} +3 -3
  4. package/dist/_chunks/{AdminSeatInfo-LXgNjwsq.mjs.map → AdminSeatInfo-l8s6cR0K.mjs.map} +1 -1
  5. package/dist/_chunks/{AuthenticatedApp-BhDorlD8.js → AuthenticatedApp-N_SS3b84.js} +20 -20
  6. package/dist/_chunks/{AuthenticatedApp-BhDorlD8.js.map → AuthenticatedApp-N_SS3b84.js.map} +1 -1
  7. package/dist/_chunks/{AuthenticatedApp-Bfl9hK_h.mjs → AuthenticatedApp-b6dWCPUh.mjs} +20 -20
  8. package/dist/_chunks/{AuthenticatedApp-Bfl9hK_h.mjs.map → AuthenticatedApp-b6dWCPUh.mjs.map} +1 -1
  9. package/dist/_chunks/{CreateActionEE-fa-xpnfx.js → CreateActionEE-ZPmLgvwk.js} +2 -2
  10. package/dist/_chunks/{CreateActionEE-fa-xpnfx.js.map → CreateActionEE-ZPmLgvwk.js.map} +1 -1
  11. package/dist/_chunks/{CreateActionEE-H-fQGqjA.mjs → CreateActionEE-cJSkJ63T.mjs} +2 -2
  12. package/dist/_chunks/{CreateActionEE-H-fQGqjA.mjs.map → CreateActionEE-cJSkJ63T.mjs.map} +1 -1
  13. package/dist/_chunks/{CreatePage--54BSoB7.js → CreatePage-2kNQh4GU.js} +8 -8
  14. package/dist/_chunks/{CreatePage--54BSoB7.js.map → CreatePage-2kNQh4GU.js.map} +1 -1
  15. package/dist/_chunks/{CreatePage-sZwN4-t1.mjs → CreatePage-AJsrh4ry.mjs} +3 -3
  16. package/dist/_chunks/{CreatePage-sZwN4-t1.mjs.map → CreatePage-AJsrh4ry.mjs.map} +1 -1
  17. package/dist/_chunks/{CreatePage-VaJ3geMW.mjs → CreatePage-EvA7lZid.mjs} +8 -8
  18. package/dist/_chunks/{CreatePage-VaJ3geMW.mjs.map → CreatePage-EvA7lZid.mjs.map} +1 -1
  19. package/dist/_chunks/{CreatePage-xF4vGlFt.js → CreatePage-IVRljlAj.js} +3 -3
  20. package/dist/_chunks/{CreatePage-xF4vGlFt.js.map → CreatePage-IVRljlAj.js.map} +1 -1
  21. package/dist/_chunks/{CreatePage-fxCGcrNa.js → CreatePage-MLGhbckY.js} +6 -6
  22. package/dist/_chunks/{CreatePage-fxCGcrNa.js.map → CreatePage-MLGhbckY.js.map} +1 -1
  23. package/dist/_chunks/{CreatePage-yCJUQ_Q_.mjs → CreatePage-XtZ4e1YQ.mjs} +6 -6
  24. package/dist/_chunks/{CreatePage-yCJUQ_Q_.mjs.map → CreatePage-XtZ4e1YQ.mjs.map} +1 -1
  25. package/dist/_chunks/{CreateView--YWdFkar.mjs → CreateView-Br8FsJIK.mjs} +6 -6
  26. package/dist/_chunks/{CreateView--YWdFkar.mjs.map → CreateView-Br8FsJIK.mjs.map} +1 -1
  27. package/dist/_chunks/{CreateView-iobgSsYH.js → CreateView-BzxSrzBF.js} +6 -6
  28. package/dist/_chunks/{CreateView-iobgSsYH.js.map → CreateView-BzxSrzBF.js.map} +1 -1
  29. package/dist/_chunks/{CreateView-qLcZo0lL.mjs → CreateView-Ch7W7npV.mjs} +6 -6
  30. package/dist/_chunks/{CreateView-qLcZo0lL.mjs.map → CreateView-Ch7W7npV.mjs.map} +1 -1
  31. package/dist/_chunks/{CreateView-0cT0WTX3.js → CreateView-SHm2Se7a.js} +6 -6
  32. package/dist/_chunks/{CreateView-0cT0WTX3.js.map → CreateView-SHm2Se7a.js.map} +1 -1
  33. package/dist/_chunks/{EditPage-RVuaalPM.mjs → EditPage-8b8RZOg3.mjs} +4 -4
  34. package/dist/_chunks/{EditPage-RVuaalPM.mjs.map → EditPage-8b8RZOg3.mjs.map} +1 -1
  35. package/dist/_chunks/{EditPage-j7PAa8iL.mjs → EditPage-9W2KFnNx.mjs} +6 -6
  36. package/dist/_chunks/{EditPage-j7PAa8iL.mjs.map → EditPage-9W2KFnNx.mjs.map} +1 -1
  37. package/dist/_chunks/{EditPage-MbDaNryL.js → EditPage-RdU5Udcg.js} +4 -4
  38. package/dist/_chunks/{EditPage-MbDaNryL.js.map → EditPage-RdU5Udcg.js.map} +1 -1
  39. package/dist/_chunks/{EditPage-IqschOA1.js → EditPage-SdO_OR0S.js} +6 -6
  40. package/dist/_chunks/{EditPage-IqschOA1.js.map → EditPage-SdO_OR0S.js.map} +1 -1
  41. package/dist/_chunks/{EditPage-TKSrKZIB.js → EditPage-ZwyrG_Mn.js} +9 -9
  42. package/dist/_chunks/{EditPage-TKSrKZIB.js.map → EditPage-ZwyrG_Mn.js.map} +1 -1
  43. package/dist/_chunks/{EditPage-41veRB1H.js → EditPage-bu0s2qQh.js} +6 -6
  44. package/dist/_chunks/{EditPage-41veRB1H.js.map → EditPage-bu0s2qQh.js.map} +1 -1
  45. package/dist/_chunks/{EditPage-eakBPGh3.mjs → EditPage-hFYcZxN9.mjs} +6 -6
  46. package/dist/_chunks/{EditPage-eakBPGh3.mjs.map → EditPage-hFYcZxN9.mjs.map} +1 -1
  47. package/dist/_chunks/{EditPage-9L9QFEhI.mjs → EditPage-zC2WEsZJ.mjs} +9 -9
  48. package/dist/_chunks/{EditPage-9L9QFEhI.mjs.map → EditPage-zC2WEsZJ.mjs.map} +1 -1
  49. package/dist/_chunks/{EditView-y7Ru7MBN.mjs → EditView-o2QRjONw.mjs} +4 -4
  50. package/dist/_chunks/{EditView-y7Ru7MBN.mjs.map → EditView-o2QRjONw.mjs.map} +1 -1
  51. package/dist/_chunks/{EditView-jWLX1Tyq.js → EditView-sSBDJEJL.js} +4 -4
  52. package/dist/_chunks/{EditView-jWLX1Tyq.js.map → EditView-sSBDJEJL.js.map} +1 -1
  53. package/dist/_chunks/{EditViewPage-K3F6kESh.mjs → EditViewPage-PpYG4gR-.mjs} +4 -4
  54. package/dist/_chunks/{EditViewPage-K3F6kESh.mjs.map → EditViewPage-PpYG4gR-.mjs.map} +1 -1
  55. package/dist/_chunks/{EditViewPage-26ouX4XT.js → EditViewPage-dsOSRV6B.js} +4 -4
  56. package/dist/_chunks/{EditViewPage-26ouX4XT.js.map → EditViewPage-dsOSRV6B.js.map} +1 -1
  57. package/dist/_chunks/{EventsTable-KDjZ2cVf.mjs → EventsTable-wxafjaVo.mjs} +6 -6
  58. package/dist/_chunks/{EventsTable-KDjZ2cVf.mjs.map → EventsTable-wxafjaVo.mjs.map} +1 -1
  59. package/dist/_chunks/{EventsTable-LXrDlBfr.js → EventsTable-xOCf1clA.js} +6 -6
  60. package/dist/_chunks/{EventsTable-LXrDlBfr.js.map → EventsTable-xOCf1clA.js.map} +1 -1
  61. package/dist/_chunks/{HomePage-eu--l8xF.mjs → HomePage-EppZ_moW.mjs} +5 -5
  62. package/dist/_chunks/{HomePage-eu--l8xF.mjs.map → HomePage-EppZ_moW.mjs.map} +1 -1
  63. package/dist/_chunks/{HomePage-Ze3G8iUH.js → HomePage-T_McVT2T.js} +6 -6
  64. package/dist/_chunks/{HomePage-Ze3G8iUH.js.map → HomePage-T_McVT2T.js.map} +1 -1
  65. package/dist/_chunks/{HomePage-FResDoxA.js → HomePage-X5EfO1iB.js} +5 -5
  66. package/dist/_chunks/{HomePage-FResDoxA.js.map → HomePage-X5EfO1iB.js.map} +1 -1
  67. package/dist/_chunks/{HomePage-ednXn0_w.mjs → HomePage-XPeRmS-b.mjs} +6 -6
  68. package/dist/_chunks/{HomePage-ednXn0_w.mjs.map → HomePage-XPeRmS-b.mjs.map} +1 -1
  69. package/dist/_chunks/{InformationBoxEE-Gdo1XAgx.mjs → InformationBoxEE-LC-nlNOZ.mjs} +3 -3
  70. package/dist/_chunks/{InformationBoxEE-Gdo1XAgx.mjs.map → InformationBoxEE-LC-nlNOZ.mjs.map} +1 -1
  71. package/dist/_chunks/{InformationBoxEE-paMrWUnO.js → InformationBoxEE-ux1vLgq6.js} +3 -3
  72. package/dist/_chunks/{InformationBoxEE-paMrWUnO.js.map → InformationBoxEE-ux1vLgq6.js.map} +1 -1
  73. package/dist/_chunks/{InstalledPluginsPage-bwx1FfBD.mjs → InstalledPluginsPage-3-2MSu8z.mjs} +3 -3
  74. package/dist/_chunks/{InstalledPluginsPage-bwx1FfBD.mjs.map → InstalledPluginsPage-3-2MSu8z.mjs.map} +1 -1
  75. package/dist/_chunks/{InstalledPluginsPage-CqVr2dr6.js → InstalledPluginsPage-DgfFFf2d.js} +3 -3
  76. package/dist/_chunks/{InstalledPluginsPage-CqVr2dr6.js.map → InstalledPluginsPage-DgfFFf2d.js.map} +1 -1
  77. package/dist/_chunks/{Layout-3Lv7Nso2.js → Layout-JYvVaWzq.js} +2 -2
  78. package/dist/_chunks/{Layout-3Lv7Nso2.js.map → Layout-JYvVaWzq.js.map} +1 -1
  79. package/dist/_chunks/{Layout-Z16aTYpZ.mjs → Layout-OPTlz45g.mjs} +2 -2
  80. package/dist/_chunks/{Layout-Z16aTYpZ.mjs.map → Layout-OPTlz45g.mjs.map} +1 -1
  81. package/dist/_chunks/{ListPage-zhVYinNj.js → ListPage-3tUkLFEM.js} +4 -4
  82. package/dist/_chunks/{ListPage-zhVYinNj.js.map → ListPage-3tUkLFEM.js.map} +1 -1
  83. package/dist/_chunks/{ListPage-PpuyFTj7.js → ListPage-GBV99K3S.js} +2 -2
  84. package/dist/_chunks/{ListPage-PpuyFTj7.js.map → ListPage-GBV99K3S.js.map} +1 -1
  85. package/dist/_chunks/{ListPage-oCa14URs.js → ListPage-Jit6GQME.js} +6 -6
  86. package/dist/_chunks/{ListPage-oCa14URs.js.map → ListPage-Jit6GQME.js.map} +1 -1
  87. package/dist/_chunks/{ListPage-psHwJBW1.js → ListPage-QAVuSc-B.js} +8 -8
  88. package/dist/_chunks/{ListPage-psHwJBW1.js.map → ListPage-QAVuSc-B.js.map} +1 -1
  89. package/dist/_chunks/{ListPage-IK__4Lpf.mjs → ListPage-WRT6X6Mi.mjs} +2 -2
  90. package/dist/_chunks/{ListPage-IK__4Lpf.mjs.map → ListPage-WRT6X6Mi.mjs.map} +1 -1
  91. package/dist/_chunks/{ListPage-hRUBs_lX.mjs → ListPage-brM8FMdx.mjs} +7 -7
  92. package/dist/_chunks/{ListPage-hRUBs_lX.mjs.map → ListPage-brM8FMdx.mjs.map} +1 -1
  93. package/dist/_chunks/{ListPage-TJvZ4Mf5.mjs → ListPage-cWq5AoY9.mjs} +6 -6
  94. package/dist/_chunks/{ListPage-TJvZ4Mf5.mjs.map → ListPage-cWq5AoY9.mjs.map} +1 -1
  95. package/dist/_chunks/{ListPage-X6S-Jwbi.mjs → ListPage-jZPZH5sZ.mjs} +8 -8
  96. package/dist/_chunks/{ListPage-X6S-Jwbi.mjs.map → ListPage-jZPZH5sZ.mjs.map} +1 -1
  97. package/dist/_chunks/{ListPage-9qAYgALl.mjs → ListPage-nxvoVklv.mjs} +4 -4
  98. package/dist/_chunks/{ListPage-9qAYgALl.mjs.map → ListPage-nxvoVklv.mjs.map} +1 -1
  99. package/dist/_chunks/{ListPage-5xEl9tYB.js → ListPage-pcs9TNx5.js} +7 -7
  100. package/dist/_chunks/{ListPage-5xEl9tYB.js.map → ListPage-pcs9TNx5.js.map} +1 -1
  101. package/dist/_chunks/{ListPage-lXXuYlv5.mjs → ListPage-wB6OP2ES.mjs} +3 -3
  102. package/dist/_chunks/{ListPage-lXXuYlv5.mjs.map → ListPage-wB6OP2ES.mjs.map} +1 -1
  103. package/dist/_chunks/{ListPage-jzaajX-e.js → ListPage-zuH3pTmq.js} +3 -3
  104. package/dist/_chunks/{ListPage-jzaajX-e.js.map → ListPage-zuH3pTmq.js.map} +1 -1
  105. package/dist/_chunks/{ListView-3Fg7Y56o.js → ListView-LwBrJQO0.js} +3 -3
  106. package/dist/_chunks/{ListView-3Fg7Y56o.js.map → ListView-LwBrJQO0.js.map} +1 -1
  107. package/dist/_chunks/{ListView-HLSZD4QG.mjs → ListView-OhfEMWrL.mjs} +3 -3
  108. package/dist/_chunks/{ListView-HLSZD4QG.mjs.map → ListView-OhfEMWrL.mjs.map} +1 -1
  109. package/dist/_chunks/{ListView-jQQs_cJl.js → ListView-Y3Sc5De_.js} +3 -3
  110. package/dist/_chunks/{ListView-jQQs_cJl.js.map → ListView-Y3Sc5De_.js.map} +1 -1
  111. package/dist/_chunks/{ListView-LqnkQPSw.mjs → ListView-gcgGGgOd.mjs} +3 -3
  112. package/dist/_chunks/{ListView-LqnkQPSw.mjs.map → ListView-gcgGGgOd.mjs.map} +1 -1
  113. package/dist/_chunks/{Login-vU5BXAqP.js → Login-S5S-zOrt.js} +2 -2
  114. package/dist/_chunks/{Login-vU5BXAqP.js.map → Login-S5S-zOrt.js.map} +1 -1
  115. package/dist/_chunks/{Login-sL4b-7I_.mjs → Login-WUf23DJZ.mjs} +2 -2
  116. package/dist/_chunks/{Login-sL4b-7I_.mjs.map → Login-WUf23DJZ.mjs.map} +1 -1
  117. package/dist/_chunks/{MagicLinkEE-mupgFg4V.js → MagicLinkEE-1wkhDkig.js} +4 -4
  118. package/dist/_chunks/{MagicLinkEE-mupgFg4V.js.map → MagicLinkEE-1wkhDkig.js.map} +1 -1
  119. package/dist/_chunks/{MagicLinkEE-sBUcBylX.mjs → MagicLinkEE-y9YoEHSf.mjs} +4 -4
  120. package/dist/_chunks/{MagicLinkEE-sBUcBylX.mjs.map → MagicLinkEE-y9YoEHSf.mjs.map} +1 -1
  121. package/dist/_chunks/{MarketplacePage-IjKH_WKo.js → MarketplacePage-G6xWRU_R.js} +3 -3
  122. package/dist/_chunks/{MarketplacePage-IjKH_WKo.js.map → MarketplacePage-G6xWRU_R.js.map} +1 -1
  123. package/dist/_chunks/{MarketplacePage-gM6Owfe4.mjs → MarketplacePage-_tagUqTz.mjs} +3 -3
  124. package/dist/_chunks/{MarketplacePage-gM6Owfe4.mjs.map → MarketplacePage-_tagUqTz.mjs.map} +1 -1
  125. package/dist/_chunks/{Permissions-bKkzuzDV.js → Permissions-2hauE2oH.js} +2 -2
  126. package/dist/_chunks/{Permissions-bKkzuzDV.js.map → Permissions-2hauE2oH.js.map} +1 -1
  127. package/dist/_chunks/{Permissions-DcS4EUNN.mjs → Permissions-woxon3oq.mjs} +2 -2
  128. package/dist/_chunks/{Permissions-DcS4EUNN.mjs.map → Permissions-woxon3oq.mjs.map} +1 -1
  129. package/dist/_chunks/{ProfilePage-BheU04B3.js → ProfilePage-FyHp6aRN.js} +3 -3
  130. package/dist/_chunks/{ProfilePage-BheU04B3.js.map → ProfilePage-FyHp6aRN.js.map} +1 -1
  131. package/dist/_chunks/{ProfilePage-1wRz5NN3.mjs → ProfilePage-YQ2RaIow.mjs} +3 -3
  132. package/dist/_chunks/{ProfilePage-1wRz5NN3.mjs.map → ProfilePage-YQ2RaIow.mjs.map} +1 -1
  133. package/dist/_chunks/{ReviewWorkflowsColumn-Bmm5pCUA.js → ReviewWorkflowsColumn-_EbTOoHz.js} +2 -2
  134. package/dist/_chunks/{ReviewWorkflowsColumn-Bmm5pCUA.js.map → ReviewWorkflowsColumn-_EbTOoHz.js.map} +1 -1
  135. package/dist/_chunks/{ReviewWorkflowsColumn-jL2QtJeb.mjs → ReviewWorkflowsColumn-ysVKc0OL.mjs} +2 -2
  136. package/dist/_chunks/{ReviewWorkflowsColumn-jL2QtJeb.mjs.map → ReviewWorkflowsColumn-ysVKc0OL.mjs.map} +1 -1
  137. package/dist/_chunks/{SelectRoles-8cZLkMEi.js → SelectRoles-OpB6A-YM.js} +3 -3
  138. package/dist/_chunks/{SelectRoles-8cZLkMEi.js.map → SelectRoles-OpB6A-YM.js.map} +1 -1
  139. package/dist/_chunks/{SelectRoles-avun6PVn.mjs → SelectRoles-a-7FWoTd.mjs} +3 -3
  140. package/dist/_chunks/{SelectRoles-avun6PVn.mjs.map → SelectRoles-a-7FWoTd.mjs.map} +1 -1
  141. package/dist/_chunks/{SettingsPage-vNzZJ3ag.js → SettingsPage-0-JFP7eG.js} +21 -21
  142. package/dist/_chunks/{SettingsPage-vNzZJ3ag.js.map → SettingsPage-0-JFP7eG.js.map} +1 -1
  143. package/dist/_chunks/{SettingsPage-Leij7RZb.mjs → SettingsPage-EOPYxxGN.mjs} +21 -21
  144. package/dist/_chunks/{SettingsPage-Leij7RZb.mjs.map → SettingsPage-EOPYxxGN.mjs.map} +1 -1
  145. package/dist/_chunks/{SingleSignOnPage-r9DBE6xY.js → SingleSignOnPage-aBne27yJ.js} +3 -3
  146. package/dist/_chunks/{SingleSignOnPage-r9DBE6xY.js.map → SingleSignOnPage-aBne27yJ.js.map} +1 -1
  147. package/dist/_chunks/{SingleSignOnPage-PvhdP6KP.mjs → SingleSignOnPage-mHK6wnoP.mjs} +3 -3
  148. package/dist/_chunks/{SingleSignOnPage-PvhdP6KP.mjs.map → SingleSignOnPage-mHK6wnoP.mjs.map} +1 -1
  149. package/dist/_chunks/{TokenTypeSelect-q02cCXwZ.js → TokenTypeSelect-4qHz3Z8o.js} +2 -2
  150. package/dist/_chunks/{TokenTypeSelect-q02cCXwZ.js.map → TokenTypeSelect-4qHz3Z8o.js.map} +1 -1
  151. package/dist/_chunks/{TokenTypeSelect-AIpez_wn.mjs → TokenTypeSelect-MLS8OI_O.mjs} +2 -2
  152. package/dist/_chunks/{TokenTypeSelect-AIpez_wn.mjs.map → TokenTypeSelect-MLS8OI_O.mjs.map} +1 -1
  153. package/dist/_chunks/{apiTokens-MDVd3qb9.mjs → apiTokens-8hgCZ85X.mjs} +2 -2
  154. package/dist/_chunks/{apiTokens-MDVd3qb9.mjs.map → apiTokens-8hgCZ85X.mjs.map} +1 -1
  155. package/dist/_chunks/{apiTokens-cNgZGltX.js → apiTokens-EVJ_bLmh.js} +2 -2
  156. package/dist/_chunks/{apiTokens-cNgZGltX.js.map → apiTokens-EVJ_bLmh.js.map} +1 -1
  157. package/dist/_chunks/{constants-X4ivu2Z3.js → constants--0BURK4x.js} +4 -4
  158. package/dist/_chunks/{constants-X4ivu2Z3.js.map → constants--0BURK4x.js.map} +1 -1
  159. package/dist/_chunks/{constants-W3sunVeW.mjs → constants--MSiJONR.mjs} +2 -2
  160. package/dist/_chunks/{constants-W3sunVeW.mjs.map → constants--MSiJONR.mjs.map} +1 -1
  161. package/dist/_chunks/{constants-7MMo0xYE.mjs → constants-095Ue9V8.mjs} +6 -6
  162. package/dist/_chunks/{constants-7MMo0xYE.mjs.map → constants-095Ue9V8.mjs.map} +1 -1
  163. package/dist/_chunks/{constants-rjmpwCpB.mjs → constants-HVXz4WvI.mjs} +2 -2
  164. package/dist/_chunks/{constants-rjmpwCpB.mjs.map → constants-HVXz4WvI.mjs.map} +1 -1
  165. package/dist/_chunks/{constants-eHUirbuN.js → constants-R4W5vojC.js} +2 -2
  166. package/dist/_chunks/{constants-eHUirbuN.js.map → constants-R4W5vojC.js.map} +1 -1
  167. package/dist/_chunks/{constants-ODhwlQKw.js → constants-c3J8YgeP.js} +6 -6
  168. package/dist/_chunks/{constants-ODhwlQKw.js.map → constants-c3J8YgeP.js.map} +1 -1
  169. package/dist/_chunks/{constants-HiPaWTSX.mjs → constants-cTUaZ9ky.mjs} +4 -4
  170. package/dist/_chunks/{constants-HiPaWTSX.mjs.map → constants-cTUaZ9ky.mjs.map} +1 -1
  171. package/dist/_chunks/{constants-7my2QI_T.js → constants-qz3tiVy-.js} +2 -2
  172. package/dist/_chunks/{constants-7my2QI_T.js.map → constants-qz3tiVy-.js.map} +1 -1
  173. package/dist/_chunks/{index-hdB0LcQU.js → index-5a4SyqD1.js} +10 -10
  174. package/dist/_chunks/{index-hdB0LcQU.js.map → index-5a4SyqD1.js.map} +1 -1
  175. package/dist/_chunks/{index-5hP8C9h_.mjs → index-BK1M7ncX.mjs} +10 -10
  176. package/dist/_chunks/{index-5hP8C9h_.mjs.map → index-BK1M7ncX.mjs.map} +1 -1
  177. package/dist/_chunks/{reviewWorkflows-pvz0btjd.js → reviewWorkflows-K-vgRph9.js} +2 -2
  178. package/dist/_chunks/{reviewWorkflows-pvz0btjd.js.map → reviewWorkflows-K-vgRph9.js.map} +1 -1
  179. package/dist/_chunks/{reviewWorkflows-NT8a9pbP.mjs → reviewWorkflows-tcT5tSuk.mjs} +2 -2
  180. package/dist/_chunks/{reviewWorkflows-NT8a9pbP.mjs.map → reviewWorkflows-tcT5tSuk.mjs.map} +1 -1
  181. package/dist/_chunks/{transferTokens-n2fnxAr8.js → transferTokens-F1KBiCdt.js} +2 -2
  182. package/dist/_chunks/{transferTokens-n2fnxAr8.js.map → transferTokens-F1KBiCdt.js.map} +1 -1
  183. package/dist/_chunks/{transferTokens-WJTQc-sG.mjs → transferTokens-e1myf8p5.mjs} +2 -2
  184. package/dist/_chunks/{transferTokens-WJTQc-sG.mjs.map → transferTokens-e1myf8p5.mjs.map} +1 -1
  185. package/dist/_chunks/{useAdminRoles-MXgNiQEp.js → useAdminRoles-x1fcAcd7.js} +2 -2
  186. package/dist/_chunks/{useAdminRoles-MXgNiQEp.js.map → useAdminRoles-x1fcAcd7.js.map} +1 -1
  187. package/dist/_chunks/{useAdminRoles-GLrN6UE1.mjs → useAdminRoles-yl-h1lF7.mjs} +2 -2
  188. package/dist/_chunks/{useAdminRoles-GLrN6UE1.mjs.map → useAdminRoles-yl-h1lF7.mjs.map} +1 -1
  189. package/dist/_chunks/{useContentTypes-3V7R5Vlq.mjs → useContentTypes-8W_8b1sk.mjs} +2 -2
  190. package/dist/_chunks/{useContentTypes-3V7R5Vlq.mjs.map → useContentTypes-8W_8b1sk.mjs.map} +1 -1
  191. package/dist/_chunks/{useContentTypes-lP8pXI_b.js → useContentTypes-qaItHSbR.js} +2 -2
  192. package/dist/_chunks/{useContentTypes-lP8pXI_b.js.map → useContentTypes-qaItHSbR.js.map} +1 -1
  193. package/dist/_chunks/{useLicenseLimitNotification-_Isg3hBw.mjs → useLicenseLimitNotification-FuVxA2gs.mjs} +2 -2
  194. package/dist/_chunks/{useLicenseLimitNotification-_Isg3hBw.mjs.map → useLicenseLimitNotification-FuVxA2gs.mjs.map} +1 -1
  195. package/dist/_chunks/{useLicenseLimitNotification-BF8lNWgZ.js → useLicenseLimitNotification-YnYl1tmZ.js} +2 -2
  196. package/dist/_chunks/{useLicenseLimitNotification-BF8lNWgZ.js.map → useLicenseLimitNotification-YnYl1tmZ.js.map} +1 -1
  197. package/dist/_chunks/{useReviewWorkflows-c_5Ue4p0.mjs → useReviewWorkflows-S-3U4YEi.mjs} +2 -2
  198. package/dist/_chunks/{useReviewWorkflows-c_5Ue4p0.mjs.map → useReviewWorkflows-S-3U4YEi.mjs.map} +1 -1
  199. package/dist/_chunks/{useReviewWorkflows-sUSNw5FU.js → useReviewWorkflows-aB_WAgX7.js} +2 -2
  200. package/dist/_chunks/{useReviewWorkflows-sUSNw5FU.js.map → useReviewWorkflows-aB_WAgX7.js.map} +1 -1
  201. package/dist/_chunks/{useWebhooks-NEbJu8zy.mjs → useWebhooks-FcqGjidV.mjs} +2 -2
  202. package/dist/_chunks/{useWebhooks-NEbJu8zy.mjs.map → useWebhooks-FcqGjidV.mjs.map} +1 -1
  203. package/dist/_chunks/{useWebhooks-rUXZtGhD.js → useWebhooks-x3E4IcSQ.js} +2 -2
  204. package/dist/_chunks/{useWebhooks-rUXZtGhD.js.map → useWebhooks-x3E4IcSQ.js.map} +1 -1
  205. package/dist/_chunks/{validateWorkflow-UickdeaD.js → validateWorkflow-JQDo0R8z.js} +2 -2
  206. package/dist/_chunks/{validateWorkflow-UickdeaD.js.map → validateWorkflow-JQDo0R8z.js.map} +1 -1
  207. package/dist/_chunks/{validateWorkflow-g9vIjmAt.mjs → validateWorkflow-Q4e0QoFl.mjs} +2 -2
  208. package/dist/_chunks/{validateWorkflow-g9vIjmAt.mjs.map → validateWorkflow-Q4e0QoFl.mjs.map} +1 -1
  209. package/dist/admin/index.js +1 -1
  210. package/dist/admin/index.mjs +1 -1
  211. package/package.json +12 -12
@@ -6,8 +6,8 @@ import { CheckPagePermissions, useAPIErrorHandler, useNotification, useFocusWhen
6
6
  import { Plus, Trash, Pencil, EmptyDocuments } from "@strapi/icons";
7
7
  import { useIntl } from "react-intl";
8
8
  import { useHistory, useLocation, NavLink } from "react-router-dom";
9
- import { j as useTypedSelector } from "./index-5hP8C9h_.mjs";
10
- import { u as useWebhooks } from "./useWebhooks-NEbJu8zy.mjs";
9
+ import { j as useTypedSelector } from "./index-BK1M7ncX.mjs";
10
+ import { u as useWebhooks } from "./useWebhooks-FcqGjidV.mjs";
11
11
  import "react-dom/client";
12
12
  import "invariant";
13
13
  import "lodash/isFunction";
@@ -382,4 +382,4 @@ export {
382
382
  ListPage,
383
383
  ProtectedListPage
384
384
  };
385
- //# sourceMappingURL=ListPage-lXXuYlv5.mjs.map
385
+ //# sourceMappingURL=ListPage-wB6OP2ES.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-lXXuYlv5.mjs","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Box,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport {\n CheckPagePermissions,\n ConfirmDialog,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useHistory, useLocation } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [isDeleting, setIsDeleting] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const { push } = useHistory();\n const { pathname } = useLocation();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n setIsDeleting(true);\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n } finally {\n setIsDeleting(false);\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const goTo = (to: string) => () => push(`${pathname}/${to}`);\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"Webhooks\" />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to={`${pathname}/create`}\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {isLoading ? (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n ) : numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter onClick={goTo('create')} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={canUpdate ? goTo(webhook.id) : undefined}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n <Button\n variant=\"secondary\"\n startIcon={<Plus />}\n disabled={!canCreate}\n onClick={canCreate ? goTo('create') : undefined}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </Button>\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onToggleDialog={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n isConfirmButtonLoading={isDeleting}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-wB6OP2ES.mjs","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Box,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport {\n CheckPagePermissions,\n ConfirmDialog,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useHistory, useLocation } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [isDeleting, setIsDeleting] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const { push } = useHistory();\n const { pathname } = useLocation();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n setIsDeleting(true);\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n } finally {\n setIsDeleting(false);\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const goTo = (to: string) => () => push(`${pathname}/${to}`);\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"Webhooks\" />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to={`${pathname}/create`}\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {isLoading ? (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n ) : numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter onClick={goTo('create')} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={canUpdate ? goTo(webhook.id) : undefined}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n <Button\n variant=\"secondary\"\n startIcon={<Plus />}\n disabled={!canCreate}\n onClick={canCreate ? goTo('create') : undefined}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </Button>\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onToggleDialog={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n isConfirmButtonLoading={isDeleting}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ const helperPlugin = require("@strapi/helper-plugin");
8
8
  const Icons = require("@strapi/icons");
9
9
  const reactIntl = require("react-intl");
10
10
  const reactRouterDom = require("react-router-dom");
11
- const index = require("./index-hdB0LcQU.js");
12
- const useWebhooks = require("./useWebhooks-rUXZtGhD.js");
11
+ const index = require("./index-5a4SyqD1.js");
12
+ const useWebhooks = require("./useWebhooks-x3E4IcSQ.js");
13
13
  require("react-dom/client");
14
14
  require("invariant");
15
15
  require("lodash/isFunction");
@@ -401,4 +401,4 @@ const ProtectedListPage = () => {
401
401
  };
402
402
  exports.ListPage = ListPage;
403
403
  exports.ProtectedListPage = ProtectedListPage;
404
- //# sourceMappingURL=ListPage-jzaajX-e.js.map
404
+ //# sourceMappingURL=ListPage-zuH3pTmq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-jzaajX-e.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Box,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport {\n CheckPagePermissions,\n ConfirmDialog,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useHistory, useLocation } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [isDeleting, setIsDeleting] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const { push } = useHistory();\n const { pathname } = useLocation();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n setIsDeleting(true);\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n } finally {\n setIsDeleting(false);\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const goTo = (to: string) => () => push(`${pathname}/${to}`);\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"Webhooks\" />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to={`${pathname}/create`}\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {isLoading ? (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n ) : numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter onClick={goTo('create')} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={canUpdate ? goTo(webhook.id) : undefined}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n <Button\n variant=\"secondary\"\n startIcon={<Plus />}\n disabled={!canCreate}\n onClick={canCreate ? goTo('create') : undefined}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </Button>\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onToggleDialog={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n isConfirmButtonLoading={isDeleting}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["React","useTypedSelector","useIntl","useAPIErrorHandler","useNotification","useFocusWhenNavigate","useHistory","useLocation","useRBAC","useNotifyAT","useWebhooks","Layout","jsx","SettingsPageTitle","jsxs","Main","HeaderLayout","LinkButton","NavLink","Plus","ActionLayout","Fragment","Typography","Button","Trash","ContentLayout","Box","LoadingIndicatorPage","Table","TFooter","Thead","Tr","Th","BaseCheckbox","VisuallyHidden","Tbody","Td","Flex","Switch","IconButton","Pencil","EmptyStateLayout","EmptyDocuments","ConfirmDialog","CheckPagePermissions"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-zuH3pTmq.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Box,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport {\n CheckPagePermissions,\n ConfirmDialog,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useHistory, useLocation } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [isDeleting, setIsDeleting] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const { push } = useHistory();\n const { pathname } = useLocation();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n setIsDeleting(true);\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n } finally {\n setIsDeleting(false);\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const goTo = (to: string) => () => push(`${pathname}/${to}`);\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"Webhooks\" />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to={`${pathname}/create`}\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {isLoading ? (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n ) : numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter onClick={goTo('create')} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={canUpdate ? goTo(webhook.id) : undefined}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n <Button\n variant=\"secondary\"\n startIcon={<Plus />}\n disabled={!canCreate}\n onClick={canCreate ? goTo('create') : undefined}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </Button>\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onToggleDialog={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n isConfirmButtonLoading={isDeleting}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["React","useTypedSelector","useIntl","useAPIErrorHandler","useNotification","useFocusWhenNavigate","useHistory","useLocation","useRBAC","useNotifyAT","useWebhooks","Layout","jsx","SettingsPageTitle","jsxs","Main","HeaderLayout","LinkButton","NavLink","Plus","ActionLayout","Fragment","Typography","Button","Trash","ContentLayout","Box","LoadingIndicatorPage","Table","TFooter","Thead","Tr","Th","BaseCheckbox","VisuallyHidden","Tbody","Td","Flex","Switch","IconButton","Pencil","EmptyStateLayout","EmptyDocuments","ConfirmDialog","CheckPagePermissions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,MAAM,WAAW,MAAM;AACrB,QAAM,CAAC,WAAW,YAAY,IAAIA,iBAAM,SAAS,KAAK;AACtD,QAAM,CAAC,YAAY,aAAa,IAAIA,iBAAM,SAAS,KAAK;AACxD,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,iBAAM,SAAmB,CAAA,CAAE;AACrE,QAAA,cAAcC,uBAAiB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,QAAQ;AACxF,QAAA,EAAE,kBAAkBC,UAAAA;AAC1B,QAAM,EAAE,yBAAyB,eAAe,IAAIC,aAAmB,mBAAA;AACvE,QAAM,qBAAqBC,aAAAA;AACNC,eAAAA;AACf,QAAA,EAAE,SAASC,eAAAA;AACX,QAAA,EAAE,aAAaC,eAAAA;AAEf,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,WAAW,WAAW,UAAU;AAAA,EAAA,IAChDC,aAAAA,QAAQ,WAAW;AACjB,QAAA,EAAE,iBAAiBC,aAAAA;AAEnB,QAAA;AAAA,IACJ,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,MACEC,YAAY,YAAA;AAEhBV,mBAAM,UAAU,MAAM;AACpB,QAAI,eAAe;AACE,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,aAAa;AAAA,MAAA,CACtC;AAED;AAAA,IACF;AACA,QAAI,UAAU;AACZ;AAAA,QACE,cAAc;AAAA,UACZ,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IAEL;AAAA,EAAA,GACC,CAAC,UAAU,eAAe,oBAAoB,eAAe,cAAc,cAAc,CAAC;AAEvF,QAAA,gBAAgB,OAAO,SAA+D;AACtF,QAAA;AACI,YAAA,MAAM,MAAM,cAAc,IAAI;AAEpC,UAAI,WAAW,KAAK;AACC,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,eAAe,IAAI,KAAK;AAAA,QAAA,CAClC;AAAA,MACH;AAAA,IAAA,QACM;AACa,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAGF,QAAM,gBAAgB,YAAY;AAC5B,QAAA;AACF,oBAAc,IAAI;AACZ,YAAA,MAAM,MAAM,mBAAmB;AAAA,QACnC,KAAK;AAAA,MAAA,CACN;AAED,UAAI,WAAW,KAAK;AACC,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,eAAe,IAAI,KAAK;AAAA,QAAA,CAClC;AAED;AAAA,MACF;AAEA,0BAAoB,CAAE,CAAA;AAAA,IAAA,QAChB;AACa,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IAAA,UACD;AACA,oBAAc,KAAK;AACnB,mBAAa,KAAK;AAAA,IACpB;AAAA,EAAA;AAGF,QAAM,oBAAoB,CAAC,aACzB,WACI,oBAAoB,UAAU,IAAI,CAAC,YAAY,QAAQ,EAAE,KAAK,CAAE,CAAA,IAChE,oBAAoB,CAAA,CAAE;AAEtB,QAAA,oBAAoB,CAAC,UAAmB,OAC5C,WACI,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC,IAC3C,oBAAoB,CAAC,SAAS,KAAK,OAAO,CAAC,cAAc,cAAc,EAAE,CAAC;AAE1E,QAAA,OAAO,CAAC,OAAe,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE,EAAE;AAE3D,QAAM,YAAY,iBAAiB;AAC7B,QAAA,mBAAmB,UAAU,UAAU;AAC7C,QAAM,yBAAyB,iBAAiB;AAEhD,yCACGW,qBACC,EAAA,UAAA;AAAA,IAACC,2BAAAA,IAAAC,aAAA,mBAAA,EAAkB,MAAK,WAAW,CAAA;AAAA,IACnCC,2BAAAA,KAACC,aAAAA,MAAK,EAAA,aAAW,WACf,UAAA;AAAA,MAAAH,2BAAA;AAAA,QAACI,aAAA;AAAA,QAAA;AAAA,UACC,OAAO,cAAc,EAAE,IAAI,2BAA2B,gBAAgB,YAAY;AAAA,UAClF,UAAU,cAAc;AAAA,YACtB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UACD,eACE,aACA,CAAC,aACCJ,2BAAA;AAAA,YAACK,GAAA;AAAA,YAAA;AAAA,cACC,IAAIC,eAAA;AAAA,cACJ,0CAAYC,MAAK,MAAA,EAAA;AAAA,cACjB,SAAQ;AAAA,cAER,IAAI,GAAG,QAAQ;AAAA,cACf,MAAK;AAAA,cAEJ,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAGN;AAAA,MACC,yBAAyB,KAAK,aAC7BP,2BAAA;AAAA,QAACQ,aAAA;AAAA,QAAA;AAAA,UACC,cAEIN,2BAAA,KAAAO,qBAAA,EAAA,UAAA;AAAA,YAAAT,2BAAA,IAACU,aAAW,YAAA,EAAA,SAAQ,WAAU,WAAU,cACrC,UAAA;AAAA,cACC;AAAA,gBACE,IAAI;AAAA,gBACJ,gBACE;AAAA,cACJ;AAAA,cACA,EAAE,uBAAuB;AAAA,YAAA,GAE7B;AAAA,YACAV,2BAAA;AAAA,cAACW,aAAA;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,aAAa,IAAI;AAAA,gBAChC,0CAAYC,MAAM,OAAA,EAAA;AAAA,gBAClB,MAAK;AAAA,gBACL,SAAQ;AAAA,gBAEP,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBAAA,CACjB;AAAA,cAAA;AAAA,YACH;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MAEJ;AAAA,qCAEDC,aACE,eAAA,EAAA,UAAA,2CACEC,aAAI,KAAA,EAAA,YAAW,YAAW,SAAS,GAAG,QAAO,gBAAe,WAAS,MACpE,UAAAd,2BAAA,IAACe,qCAAqB,EACxB,CAAA,IACE,mBAAmB,IACrBb,2BAAA;AAAA,QAACc,aAAA;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,UAAU,mBAAmB;AAAA,UAC7B,QACGhB,2BAAAA,IAAAiB,aAAAA,SAAA,EAAQ,SAAS,KAAK,QAAQ,GAAG,MAAMjB,2BAAA,IAACO,MAAK,MAAA,CAAA,CAAA,GAC3C,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,UAGF,UAAA;AAAA,YAACP,2BAAA,IAAAkB,aAAA,OAAA,EACC,0CAACC,aAAAA,IACC,EAAA,UAAA;AAAA,cAAAnB,+BAACoB,aAAAA,IACC,EAAA,UAAApB,2BAAA;AAAA,gBAACqB,aAAA;AAAA,gBAAA;AAAA,kBACC,cAAY,cAAc;AAAA,oBACxB,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,kBACD,eACE,yBAAyB,KAAK,yBAAyB;AAAA,kBAEzD,OAAO,2BAA2B;AAAA,kBAClC,eAAe;AAAA,gBAAA;AAAA,cAAA,GAEnB;AAAA,cACArB,2BAAAA,IAACoB,aAAAA,IAAG,EAAA,OAAM,OACR,UAAApB,2BAAA,IAACU,2BAAW,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,cACAV,2BAAAA,IAACoB,aAAAA,IAAG,EAAA,OAAM,OACR,UAAApB,2BAAA,IAACU,2BAAW,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,cACAV,2BAAAA,IAACoB,aAAAA,IAAG,EAAA,OAAM,OACR,UAAApB,2BAAA,IAACU,2BAAW,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,cACCV,2BAAA,IAAAoB,aAAA,IAAA,EACC,UAACpB,2BAAA,IAAAsB,6BAAA,EACE,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,YAAA,EAAA,CACF,EACF,CAAA;AAAA,YACCtB,2BAAA,IAAAuB,aAAA,OAAA,EACE,UAAU,UAAA,IAAI,CAAC,YACdrB,2BAAA;AAAA,cAACiB,aAAA;AAAA,cAAA;AAAA,gBAEC,SAAS,YAAY,KAAK,QAAQ,EAAE,IAAI;AAAA,gBACxC,OAAO,EAAE,QAAQ,YAAY,YAAY,UAAU;AAAA,gBAEnD,UAAA;AAAA,kBAAAnB,+BAACwB,aAAAA,MAAG,SAAS,CAAC,MAAM,EAAE,mBACpB,UAAAxB,2BAAA;AAAA,oBAACqB,aAAA;AAAA,oBAAA;AAAA,sBACC,cAAY,GAAG,cAAc;AAAA,wBAC3B,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBACjB,CAAA,CAAC,IAAI,QAAQ,IAAI;AAAA,sBAClB,OAAO,kBAAkB,SAAS,QAAQ,EAAE;AAAA,sBAC5C,eAAe,CAAC,aAAa,kBAAkB,UAAU,QAAQ,EAAE;AAAA,sBACnE,MAAK;AAAA,oBAAA;AAAA,kBAAA,GAET;AAAA,kBACArB,2BAAA,IAACwB,aACC,IAAA,EAAA,UAAAxB,2BAAAA,IAACU,aAAAA,YAAW,EAAA,YAAW,YAAW,WAAU,cACzC,UAAQ,QAAA,KAAA,CACX,EACF,CAAA;AAAA,kBACAV,2BAAAA,IAACwB,aAAAA,MACC,UAACxB,2BAAAA,IAAAU,aAAAA,YAAA,EAAW,WAAU,cAAc,UAAA,QAAQ,KAAI,EAClD,CAAA;AAAA,kBACAV,2BAAA,IAACwB,aACC,IAAA,EAAA,UAAAxB,2BAAA,IAACyB,aACC,MAAA,EAAA,UAAAzB,2BAAA;AAAA,oBAAC0B,aAAA;AAAA,oBAAA;AAAA,sBACC,SAAS,cAAc;AAAA,wBACrB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,UAAU,cAAc;AAAA,wBACtB,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAAA,CACjB;AAAA,sBACD,OAAO,GAAG,QAAQ,IAAI,IAAI,cAAc;AAAA,wBACtC,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBACjB,CAAA,CAAC;AAAA,sBACF,UAAU,QAAQ;AAAA,sBAClB,UAAU,CAAC,MAAM;AACf,0BAAE,gBAAgB;AACJ,sCAAA;AAAA,0BACZ,GAAG;AAAA,0BACH,WAAW,CAAC,QAAQ;AAAA,wBAAA,CACrB;AAAA,sBACH;AAAA,sBACA,eAAa;AAAA,oBAAA;AAAA,qBAEjB,EACF,CAAA;AAAA,kBACC1B,+BAAAwB,aAAAA,IAAA,EACC,UAACtB,2BAAAA,KAAAuB,aAAAA,MAAA,EAAK,KAAK,GACR,UAAA;AAAA,oBACC,aAAAzB,2BAAA;AAAA,sBAAC2B,aAAA;AAAA,sBAAA;AAAA,wBACC,OAAO,cAAc;AAAA,0BACnB,IAAI;AAAA,0BACJ,gBAAgB;AAAA,wBAAA,CACjB;AAAA,wBACD,qCAAOC,MAAO,QAAA,EAAA;AAAA,wBACd,UAAQ;AAAA,sBAAA;AAAA,oBACV;AAAA,oBAED,aACC5B,2BAAA;AAAA,sBAAC2B,aAAA;AAAA,sBAAA;AAAA,wBACC,SAAS,CAAC,MAAM;AACd,4BAAE,gBAAgB;AACE,8CAAA,CAAC,QAAQ,EAAE,CAAC;AAChC,uCAAa,IAAI;AAAA,wBACnB;AAAA,wBACA,OAAO,cAAc;AAAA,0BACnB,IAAI;AAAA,0BACJ,gBAAgB;AAAA,wBAAA,CACjB;AAAA,wBACD,qCAAOf,MAAM,OAAA,EAAA;AAAA,wBACb,UAAQ;AAAA,sBAAA;AAAA,oBACV;AAAA,kBAAA,EAAA,CAEJ,EACF,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cA9EK,QAAQ;AAAA,YAgFhB,CAAA,GACH;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,IAGFZ,2BAAA;AAAA,QAAC6B,aAAA;AAAA,QAAA;AAAA,UACC,MAAM7B,2BAAAA,IAAC8B,MAAAA,gBAAe,EAAA,OAAM,QAAQ,CAAA;AAAA,UACpC,SAAS,cAAc;AAAA,YACrB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UACD,QACE9B,2BAAA;AAAA,YAACW,aAAA;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,0CAAYJ,MAAK,MAAA,EAAA;AAAA,cACjB,UAAU,CAAC;AAAA,cACX,SAAS,YAAY,KAAK,QAAQ,IAAI;AAAA,cAErC,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA,GAIR;AAAA,IAAA,GACF;AAAA,IACAP,2BAAA;AAAA,MAAC+B,aAAA;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,gBAAgB,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI;AAAA,QAClD,WAAW;AAAA,QACX,wBAAwB;AAAA,MAAA;AAAA,IAC1B;AAAA,EACF,EAAA,CAAA;AAEJ;AAMA,MAAM,oBAAoB,MAAM;AAC9B,QAAM,cAAc1C,MAAA;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,SAAS;AAAA,EAAA;AAG5D,SACGW,2BAAA,IAAAgC,mCAAA,EAAqB,aACpB,UAAAhC,2BAAAA,IAAC,YAAS,EACZ,CAAA;AAEJ;;;"}
@@ -8,8 +8,8 @@ const Icons = require("@strapi/icons");
8
8
  const qs = require("qs");
9
9
  const reactIntl = require("react-intl");
10
10
  const reactRouterDom = require("react-router-dom");
11
- const index = require("./index-hdB0LcQU.js");
12
- const apiTokens = require("./apiTokens-cNgZGltX.js");
11
+ const index = require("./index-5a4SyqD1.js");
12
+ const apiTokens = require("./apiTokens-EVJ_bLmh.js");
13
13
  const constants = require("./constants-RMqZXSqh.js");
14
14
  const Table = require("./Table-T-qYlZ1f.js");
15
15
  require("react-dom/client");
@@ -288,4 +288,4 @@ const ProtectedListView = () => {
288
288
  };
289
289
  exports.ListView = ListView;
290
290
  exports.ProtectedListView = ProtectedListView;
291
- //# sourceMappingURL=ListView-3Fg7Y56o.js.map
291
+ //# sourceMappingURL=ListView-LwBrJQO0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-3Fg7Y56o.js","sources":["../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport const ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const {\n data: apiTokens = [],\n isLoading,\n error,\n } = useGetAPITokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n }\n };\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n"],"names":["useFocusWhenNavigate","useIntl","useNotification","useTypedSelector","useRBAC","useHistory","useTracking","useGuidedTour","useAPIErrorHandler","React","qs","useOnce","API_TOKEN_TYPE","apiTokens","useGetAPITokensQuery","useDeleteAPITokenMutation","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","LinkButton","Plus","ContentLayout","NoPermissions","Table","NoContent","CheckPagePermissions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAM,gBAAgB;AAAA,EACpB;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAEO,MAAM,WAAW,MAAM;AACPA,eAAAA;AACf,QAAA,EAAE,kBAAkBC,UAAAA;AAC1B,QAAM,qBAAqBC,aAAAA;AAC3B,QAAM,cAAcC,MAAA;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,WAAW,YAAY;AAAA,EAAA;AAE1D,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,WAAW,WAAW,QAAQ;AAAA,EAAA,IACzDC,aAAAA,QAAQ,WAAW;AACjB,QAAA,EAAE,SAASC,eAAAA;AACX,QAAA,EAAE,eAAeC,aAAAA;AACjB,QAAA,EAAE,iBAAiBC,aAAAA;AACzB,QAAM,EAAE,yBAAyB,eAAe,IAAIC,aAAmB,mBAAA;AAEvEC,mBAAM,UAAU,MAAM;AACpB,iBAAa,WAAW;AAAA,EAAA,GACvB,CAAC,YAAY,CAAC;AAEjBA,mBAAM,UAAU,MAAM;AACpB,SAAK,EAAE,QAAQC,YAAG,QAAA,UAAU,EAAE,MAAM,WAAW,GAAG,EAAE,QAAQ,MAAO,CAAA,EAAG,CAAA;AAAA,EAAA,GACrE,CAAC,IAAI,CAAC;AAET,QAAM,UAAU,cAAc,IAAI,CAAC,YAAY;AAAA,IAC7C,GAAG;AAAA,IACH,WAAW;AAAA,MACT,GAAG,OAAO;AAAA,MACV,OAAO,cAAc,OAAO,UAAU,KAAK;AAAA,IAC7C;AAAA,EACA,EAAA;AAEFC,QAAAA,QAAQ,MAAM;AACZ,eAAW,uBAAuB;AAAA,MAChC,WAAWC,UAAA;AAAA,IAAA,CACZ;AAAA,EAAA,CACF;AAEK,QAAA;AAAA,IACJ,MAAMC,cAAY,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,EAAA,IACEC,UAAAA,qBAAqB,QAAW;AAAA,IAClC,MAAM,CAAC;AAAA,EAAA,CACR;AAEDL,mBAAM,UAAU,MAAM;AACpB,QAAI,OAAO;AACU,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,KAAK;AAAA,MAAA,CAC9B;AAAA,IACH;AAAA,EACC,GAAA,CAAC,OAAO,gBAAgB,kBAAkB,CAAC;AAE9CA,mBAAM,UAAU,MAAM;AACpB,eAAW,sBAAsB,EAAE,QAAQI,YAAU,QAAQ,WAAWD,0BAAgB;AAAA,EAAA,GACvF,CAACC,aAAW,UAAU,CAAC;AAEpB,QAAA,CAAC,WAAW,IAAIE,UAAAA;AAEhB,QAAA,eAAe,OAAO,OAAkB;AACxC,QAAA;AACI,YAAA,MAAM,MAAM,YAAY,EAAE;AAEhC,UAAI,WAAW,KAAK;AACC,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,eAAe,IAAI,KAAK;AAAA,QAAA,CAClC;AAED;AAAA,MACF;AAEA,iBAAW,gBAAgB;AAAA,IAAA,QACrB;AACa,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAIA,SAAAC,2BAAA,KAACC,aAAK,MAAA,EAAA,aAAW,WAEf,UAAA;AAAA,IAACC,2BAAAA,IAAAC,aAAA,mBAAA,EAAkB,MAAK,aAAa,CAAA;AAAA,IACrCD,2BAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,OAAO,cAAc,EAAE,IAAI,4BAA4B,gBAAgB,cAAc;AAAA,QACrF,UAAU,cAAc;AAAA,UACtB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,eACE,aACEF,2BAAA;AAAA,UAACG,aAAA;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,0CAAYC,MAAK,MAAA,EAAA;AAAA,YACjB,MAAK;AAAA,YACL,SAAS,MACP,WAAW,wBAAwB;AAAA,cACjC,WAAWV,UAAA;AAAA,YAAA,CACZ;AAAA,YAEH,IAAG;AAAA,YAEF,UAAc,cAAA;AAAA,cACb,IAAI;AAAA,cACJ,gBAAgB;AAAA,YAAA,CACjB;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAGN;AAAA,oCACCW,aAAAA,eACE,EAAA,UAAA;AAAA,MAAC,CAAA,0CAAYC,aAAc,eAAA,EAAA;AAAA,MAC3B,WAAWX,YAAU,SAAS,KAC7BK,2BAAA;AAAA,QAACO,MAAA;AAAA,QAAA;AAAA,UACC,aAAa,EAAE,SAAS,WAAW,UAAU;AAAA,UAC7C;AAAA,UACA,aAAY;AAAA,UACZ;AAAA,UACA,iBAAiB;AAAA,UACjB,QAAQZ;AAAAA,UACR,WAAWD,UAAA;AAAA,QAAA;AAAA,MACb;AAAA,MAED,WAAW,aAAaC,YAAU,WAAW,KAC5CK,2BAAA;AAAA,QAACQ,aAAA;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAClB;AAAA,UACA,QACGR,2BAAAA,IAAAG,aAAAA,YAAA,EAAW,SAAQ,aAAY,WAAWH,2BAAA,IAACI,MAAK,MAAA,CAAA,CAAA,GAAI,IAAG,+BACrD,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,QAAA;AAAA,MAEJ;AAAA,MAED,WAAW,CAAC,aAAaT,YAAU,WAAW,KAC7CK,2BAAA;AAAA,QAACQ,aAAA;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAClB;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,EACF,EAAA,CAAA;AAEJ;AAEO,MAAM,oBAAoB,MAAM;AACrC,QAAM,cAAcvB,MAAA;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,WAAW,YAAY,EAAE;AAAA,EAAA;AAGlE,SACGe,2BAAA,IAAAS,mCAAA,EAAqB,aACpB,UAAAT,2BAAAA,IAAC,YAAS,EACZ,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"ListView-LwBrJQO0.js","sources":["../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport const ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const {\n data: apiTokens = [],\n isLoading,\n error,\n } = useGetAPITokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n }\n };\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n"],"names":["useFocusWhenNavigate","useIntl","useNotification","useTypedSelector","useRBAC","useHistory","useTracking","useGuidedTour","useAPIErrorHandler","React","qs","useOnce","API_TOKEN_TYPE","apiTokens","useGetAPITokensQuery","useDeleteAPITokenMutation","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","LinkButton","Plus","ContentLayout","NoPermissions","Table","NoContent","CheckPagePermissions"],"mappings":"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"}
@@ -6,8 +6,8 @@ import { Plus } from "@strapi/icons";
6
6
  import qs__default from "qs";
7
7
  import { useIntl } from "react-intl";
8
8
  import { useHistory } from "react-router-dom";
9
- import { j as useTypedSelector, b as useOnce } from "./index-5hP8C9h_.mjs";
10
- import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from "./apiTokens-MDVd3qb9.mjs";
9
+ import { j as useTypedSelector, b as useOnce } from "./index-BK1M7ncX.mjs";
10
+ import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from "./apiTokens-8hgCZ85X.mjs";
11
11
  import { A as API_TOKEN_TYPE } from "./constants-fJt30IoY.mjs";
12
12
  import { T as Table } from "./Table-nKuv1TlJ.mjs";
13
13
  import "react-dom/client";
@@ -267,4 +267,4 @@ export {
267
267
  ListView,
268
268
  ProtectedListView
269
269
  };
270
- //# sourceMappingURL=ListView-HLSZD4QG.mjs.map
270
+ //# sourceMappingURL=ListView-OhfEMWrL.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-HLSZD4QG.mjs","sources":["../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport const ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const {\n data: apiTokens = [],\n isLoading,\n error,\n } = useGetAPITokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n }\n };\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n"],"names":["qs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAM,gBAAgB;AAAA,EACpB;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAEO,MAAM,WAAW,MAAM;AACP;AACf,QAAA,EAAE,kBAAkB;AAC1B,QAAM,qBAAqB;AAC3B,QAAM,cAAc;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,WAAW,YAAY;AAAA,EAAA;AAE1D,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,WAAW,WAAW,QAAQ;AAAA,EAAA,IACzD,QAAQ,WAAW;AACjB,QAAA,EAAE,SAAS;AACX,QAAA,EAAE,eAAe;AACjB,QAAA,EAAE,iBAAiB;AACzB,QAAM,EAAE,yBAAyB,eAAe,IAAI,mBAAmB;AAEvE,QAAM,UAAU,MAAM;AACpB,iBAAa,WAAW;AAAA,EAAA,GACvB,CAAC,YAAY,CAAC;AAEjB,QAAM,UAAU,MAAM;AACpB,SAAK,EAAE,QAAQA,YAAG,UAAU,EAAE,MAAM,WAAW,GAAG,EAAE,QAAQ,MAAO,CAAA,EAAG,CAAA;AAAA,EAAA,GACrE,CAAC,IAAI,CAAC;AAET,QAAM,UAAU,cAAc,IAAI,CAAC,YAAY;AAAA,IAC7C,GAAG;AAAA,IACH,WAAW;AAAA,MACT,GAAG,OAAO;AAAA,MACV,OAAO,cAAc,OAAO,UAAU,KAAK;AAAA,IAC7C;AAAA,EACA,EAAA;AAEF,UAAQ,MAAM;AACZ,eAAW,uBAAuB;AAAA,MAChC,WAAW;AAAA,IAAA,CACZ;AAAA,EAAA,CACF;AAEK,QAAA;AAAA,IACJ,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,EAAA,IACE,qBAAqB,QAAW;AAAA,IAClC,MAAM,CAAC;AAAA,EAAA,CACR;AAED,QAAM,UAAU,MAAM;AACpB,QAAI,OAAO;AACU,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,KAAK;AAAA,MAAA,CAC9B;AAAA,IACH;AAAA,EACC,GAAA,CAAC,OAAO,gBAAgB,kBAAkB,CAAC;AAE9C,QAAM,UAAU,MAAM;AACpB,eAAW,sBAAsB,EAAE,QAAQ,UAAU,QAAQ,WAAW,gBAAgB;AAAA,EAAA,GACvF,CAAC,WAAW,UAAU,CAAC;AAEpB,QAAA,CAAC,WAAW,IAAI;AAEhB,QAAA,eAAe,OAAO,OAAkB;AACxC,QAAA;AACI,YAAA,MAAM,MAAM,YAAY,EAAE;AAEhC,UAAI,WAAW,KAAK;AACC,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,eAAe,IAAI,KAAK;AAAA,QAAA,CAClC;AAED;AAAA,MACF;AAEA,iBAAW,gBAAgB;AAAA,IAAA,QACrB;AACa,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,UACP,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAIA,SAAA,qBAAC,MAAK,EAAA,aAAW,WAEf,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAK,aAAa,CAAA;AAAA,IACrC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,cAAc,EAAE,IAAI,4BAA4B,gBAAgB,cAAc;AAAA,QACrF,UAAU,cAAc;AAAA,UACtB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,eACE,aACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,+BAAY,MAAK,EAAA;AAAA,YACjB,MAAK;AAAA,YACL,SAAS,MACP,WAAW,wBAAwB;AAAA,cACjC,WAAW;AAAA,YAAA,CACZ;AAAA,YAEH,IAAG;AAAA,YAEF,UAAc,cAAA;AAAA,cACb,IAAI;AAAA,cACJ,gBAAgB;AAAA,YAAA,CACjB;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAGN;AAAA,yBACC,eACE,EAAA,UAAA;AAAA,MAAC,CAAA,+BAAY,eAAc,EAAA;AAAA,MAC3B,WAAW,UAAU,SAAS,KAC7B;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAa,EAAE,SAAS,WAAW,UAAU;AAAA,UAC7C;AAAA,UACA,aAAY;AAAA,UACZ;AAAA,UACA,iBAAiB;AAAA,UACjB,QAAQ;AAAA,UACR,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAED,WAAW,aAAa,UAAU,WAAW,KAC5C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAClB;AAAA,UACA,QACG,oBAAA,YAAA,EAAW,SAAQ,aAAY,WAAW,oBAAC,MAAK,CAAA,CAAA,GAAI,IAAG,+BACrD,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,QAAA;AAAA,MAEJ;AAAA,MAED,WAAW,CAAC,aAAa,UAAU,WAAW,KAC7C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAClB;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,EACF,EAAA,CAAA;AAEJ;AAEO,MAAM,oBAAoB,MAAM;AACrC,QAAM,cAAc;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,WAAW,YAAY,EAAE;AAAA,EAAA;AAGlE,SACG,oBAAA,sBAAA,EAAqB,aACpB,UAAA,oBAAC,YAAS,EACZ,CAAA;AAEJ;"}
1
+ {"version":3,"file":"ListView-OhfEMWrL.mjs","sources":["../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport const ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const {\n data: apiTokens = [],\n isLoading,\n error,\n } = useGetAPITokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n }\n };\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && apiTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n"],"names":["qs"],"mappings":"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"}
@@ -8,8 +8,8 @@ const Icons = require("@strapi/icons");
8
8
  const qs = require("qs");
9
9
  const reactIntl = require("react-intl");
10
10
  const reactRouterDom = require("react-router-dom");
11
- const index = require("./index-hdB0LcQU.js");
12
- const transferTokens = require("./transferTokens-n2fnxAr8.js");
11
+ const index = require("./index-5a4SyqD1.js");
12
+ const transferTokens = require("./transferTokens-F1KBiCdt.js");
13
13
  const constants = require("./constants-RMqZXSqh.js");
14
14
  const Table = require("./Table-T-qYlZ1f.js");
15
15
  require("react-dom/client");
@@ -298,4 +298,4 @@ const ProtectedListView = () => {
298
298
  };
299
299
  exports.ListView = ListView;
300
300
  exports.ProtectedListView = ProtectedListView;
301
- //# sourceMappingURL=ListView-jQQs_cJl.js.map
301
+ //# sourceMappingURL=ListView-Y3Sc5De_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-jQQs_cJl.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["useFocusWhenNavigate","useIntl","useNotification","useTypedSelector","useRBAC","useHistory","useTracking","useAPIErrorHandler","React","qs","useOnce","TRANSFER_TOKEN_TYPE","transferTokens","useGetTransferTokensQuery","useDeleteTransferTokenMutation","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","LinkButton","Plus","ContentLayout","NoPermissions","Table","NoContent","CheckPagePermissions"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-Y3Sc5De_.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["useFocusWhenNavigate","useIntl","useNotification","useTypedSelector","useRBAC","useHistory","useTracking","useAPIErrorHandler","React","qs","useOnce","TRANSFER_TOKEN_TYPE","transferTokens","useGetTransferTokensQuery","useDeleteTransferTokenMutation","jsxs","Main","jsx","SettingsPageTitle","HeaderLayout","LinkButton","Plus","ContentLayout","NoPermissions","Table","NoContent","CheckPagePermissions"],"mappings":"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"}
@@ -6,8 +6,8 @@ import { Plus } from "@strapi/icons";
6
6
  import qs__default from "qs";
7
7
  import { useIntl } from "react-intl";
8
8
  import { useHistory } from "react-router-dom";
9
- import { j as useTypedSelector, b as useOnce } from "./index-5hP8C9h_.mjs";
10
- import { c as useGetTransferTokensQuery, d as useDeleteTransferTokenMutation } from "./transferTokens-WJTQc-sG.mjs";
9
+ import { j as useTypedSelector, b as useOnce } from "./index-BK1M7ncX.mjs";
10
+ import { c as useGetTransferTokensQuery, d as useDeleteTransferTokenMutation } from "./transferTokens-e1myf8p5.mjs";
11
11
  import { T as TRANSFER_TOKEN_TYPE } from "./constants-fJt30IoY.mjs";
12
12
  import { T as Table } from "./Table-nKuv1TlJ.mjs";
13
13
  import "react-dom/client";
@@ -277,4 +277,4 @@ export {
277
277
  ListView,
278
278
  ProtectedListView
279
279
  };
280
- //# sourceMappingURL=ListView-LqnkQPSw.mjs.map
280
+ //# sourceMappingURL=ListView-gcgGGgOd.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-LqnkQPSw.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["qs"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-gcgGGgOd.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, LinkButton, Main } from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport { Entity } from '@strapi/types';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nconst tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Entity.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {canRead && transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canRead && canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {canRead && !canCreate && transferTokens.length === 0 && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["qs"],"mappings":"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"}
@@ -4,7 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const designSystem = require("@strapi/design-system");
5
5
  const reactIntl = require("react-intl");
6
6
  const styled = require("styled-components");
7
- const index = require("./index-hdB0LcQU.js");
7
+ const index = require("./index-5a4SyqD1.js");
8
8
  const SSOProviders = require("./SSOProviders-Z6IAEre2.js");
9
9
  require("@strapi/helper-plugin");
10
10
  require("react-dom/client");
@@ -95,4 +95,4 @@ const LoginEE = (loginProps) => {
95
95
  ] }) }) });
96
96
  };
97
97
  exports.LoginEE = LoginEE;
98
- //# sourceMappingURL=Login-vU5BXAqP.js.map
98
+ //# sourceMappingURL=Login-S5S-zOrt.js.map