@rnaga/wp-next-admin 1.0.1
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.
- package/README.md +292 -0
- package/client/components/RootLayout.d.ts +13 -0
- package/client/components/RootLayout.d.ts.map +1 -0
- package/client/components/RootLayout.js +13 -0
- package/client/components/WrapperRootLayout.d.ts +9 -0
- package/client/components/WrapperRootLayout.d.ts.map +1 -0
- package/client/components/WrapperRootLayout.js +5 -0
- package/client/components/contents/blogs/Create.d.ts +2 -0
- package/client/components/contents/blogs/Create.d.ts.map +1 -0
- package/client/components/contents/blogs/Create.js +67 -0
- package/client/components/contents/blogs/Edit.d.ts +2 -0
- package/client/components/contents/blogs/Edit.d.ts.map +1 -0
- package/client/components/contents/blogs/Edit.js +144 -0
- package/client/components/contents/blogs/List.d.ts +2 -0
- package/client/components/contents/blogs/List.d.ts.map +1 -0
- package/client/components/contents/blogs/List.js +56 -0
- package/client/components/contents/blogs/index.d.ts +6 -0
- package/client/components/contents/blogs/index.d.ts.map +1 -0
- package/client/components/contents/blogs/index.js +8 -0
- package/client/components/contents/comments/ActionLink.d.ts +5 -0
- package/client/components/contents/comments/ActionLink.d.ts.map +1 -0
- package/client/components/contents/comments/ActionLink.js +67 -0
- package/client/components/contents/comments/List/Reply.d.ts +5 -0
- package/client/components/contents/comments/List/Reply.d.ts.map +1 -0
- package/client/components/contents/comments/List/Reply.js +33 -0
- package/client/components/contents/comments/List/Row.d.ts +5 -0
- package/client/components/contents/comments/List/Row.d.ts.map +1 -0
- package/client/components/contents/comments/List/Row.js +30 -0
- package/client/components/contents/comments/List/Toolbar.d.ts +8 -0
- package/client/components/contents/comments/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/comments/List/Toolbar.js +14 -0
- package/client/components/contents/comments/List/index.d.ts +5 -0
- package/client/components/contents/comments/List/index.d.ts.map +1 -0
- package/client/components/contents/comments/List/index.js +38 -0
- package/client/components/contents/comments/index.d.ts +7 -0
- package/client/components/contents/comments/index.d.ts.map +1 -0
- package/client/components/contents/comments/index.js +6 -0
- package/client/components/contents/dashboard/index.d.ts +2 -0
- package/client/components/contents/dashboard/index.d.ts.map +1 -0
- package/client/components/contents/dashboard/index.js +123 -0
- package/client/components/contents/index.d.ts +46 -0
- package/client/components/contents/index.d.ts.map +1 -0
- package/client/components/contents/index.js +28 -0
- package/client/components/contents/media/Edit.d.ts +2 -0
- package/client/components/contents/media/Edit.d.ts.map +1 -0
- package/client/components/contents/media/Edit.js +86 -0
- package/client/components/contents/media/List/ActionLink.d.ts +5 -0
- package/client/components/contents/media/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/media/List/ActionLink.js +24 -0
- package/client/components/contents/media/List/Table.d.ts +5 -0
- package/client/components/contents/media/List/Table.d.ts.map +1 -0
- package/client/components/contents/media/List/Table.js +38 -0
- package/client/components/contents/media/List/Thumbnail.d.ts +5 -0
- package/client/components/contents/media/List/Thumbnail.d.ts.map +1 -0
- package/client/components/contents/media/List/Thumbnail.js +28 -0
- package/client/components/contents/media/List/index.d.ts +2 -0
- package/client/components/contents/media/List/index.d.ts.map +1 -0
- package/client/components/contents/media/List/index.js +66 -0
- package/client/components/contents/media/index.d.ts +5 -0
- package/client/components/contents/media/index.d.ts.map +1 -0
- package/client/components/contents/media/index.js +6 -0
- package/client/components/contents/pages/Edit/Settings.d.ts +2 -0
- package/client/components/contents/pages/Edit/Settings.d.ts.map +1 -0
- package/client/components/contents/pages/Edit/Settings.js +17 -0
- package/client/components/contents/pages/Edit/Toolbar.d.ts +2 -0
- package/client/components/contents/pages/Edit/Toolbar.d.ts.map +1 -0
- package/client/components/contents/pages/Edit/Toolbar.js +72 -0
- package/client/components/contents/pages/Edit/index.d.ts +2 -0
- package/client/components/contents/pages/Edit/index.d.ts.map +1 -0
- package/client/components/contents/pages/Edit/index.js +43 -0
- package/client/components/contents/pages/List/ActionLink.d.ts +5 -0
- package/client/components/contents/pages/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/pages/List/ActionLink.js +12 -0
- package/client/components/contents/pages/List/Statuses.d.ts +2 -0
- package/client/components/contents/pages/List/Statuses.d.ts.map +1 -0
- package/client/components/contents/pages/List/Statuses.js +24 -0
- package/client/components/contents/pages/List/Toolbar.d.ts +8 -0
- package/client/components/contents/pages/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/pages/List/Toolbar.js +14 -0
- package/client/components/contents/pages/List/index.d.ts +2 -0
- package/client/components/contents/pages/List/index.d.ts.map +1 -0
- package/client/components/contents/pages/List/index.js +45 -0
- package/client/components/contents/pages/index.d.ts +5 -0
- package/client/components/contents/pages/index.d.ts.map +1 -0
- package/client/components/contents/pages/index.js +6 -0
- package/client/components/contents/posts/Edit/Settings.d.ts +2 -0
- package/client/components/contents/posts/Edit/Settings.d.ts.map +1 -0
- package/client/components/contents/posts/Edit/Settings.js +19 -0
- package/client/components/contents/posts/Edit/Toolbar.d.ts +2 -0
- package/client/components/contents/posts/Edit/Toolbar.d.ts.map +1 -0
- package/client/components/contents/posts/Edit/Toolbar.js +72 -0
- package/client/components/contents/posts/Edit/index.d.ts +2 -0
- package/client/components/contents/posts/Edit/index.d.ts.map +1 -0
- package/client/components/contents/posts/Edit/index.js +43 -0
- package/client/components/contents/posts/List/ActionLink.d.ts +5 -0
- package/client/components/contents/posts/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/posts/List/ActionLink.js +12 -0
- package/client/components/contents/posts/List/Statuses.d.ts +2 -0
- package/client/components/contents/posts/List/Statuses.d.ts.map +1 -0
- package/client/components/contents/posts/List/Statuses.js +32 -0
- package/client/components/contents/posts/List/Toolbar.d.ts +8 -0
- package/client/components/contents/posts/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/posts/List/Toolbar.js +14 -0
- package/client/components/contents/posts/List/index.d.ts +2 -0
- package/client/components/contents/posts/List/index.d.ts.map +1 -0
- package/client/components/contents/posts/List/index.js +46 -0
- package/client/components/contents/posts/index.d.ts +5 -0
- package/client/components/contents/posts/index.d.ts.map +1 -0
- package/client/components/contents/posts/index.js +6 -0
- package/client/components/contents/profile/index.d.ts +2 -0
- package/client/components/contents/profile/index.d.ts.map +1 -0
- package/client/components/contents/profile/index.js +7 -0
- package/client/components/contents/revisions/List/History.d.ts +7 -0
- package/client/components/contents/revisions/List/History.d.ts.map +1 -0
- package/client/components/contents/revisions/List/History.js +37 -0
- package/client/components/contents/revisions/List/diff2html.css +11 -0
- package/client/components/contents/revisions/List/index.d.ts +9 -0
- package/client/components/contents/revisions/List/index.d.ts.map +1 -0
- package/client/components/contents/revisions/List/index.js +145 -0
- package/client/components/contents/revisions/index.d.ts +2 -0
- package/client/components/contents/revisions/index.d.ts.map +1 -0
- package/client/components/contents/revisions/index.js +1 -0
- package/client/components/contents/roles/List/EditModal.d.ts +8 -0
- package/client/components/contents/roles/List/EditModal.d.ts.map +1 -0
- package/client/components/contents/roles/List/EditModal.js +153 -0
- package/client/components/contents/roles/List/index.d.ts +7 -0
- package/client/components/contents/roles/List/index.d.ts.map +1 -0
- package/client/components/contents/roles/List/index.js +111 -0
- package/client/components/contents/roles/index.d.ts +2 -0
- package/client/components/contents/roles/index.d.ts.map +1 -0
- package/client/components/contents/roles/index.js +1 -0
- package/client/components/contents/settings/index.d.ts +2 -0
- package/client/components/contents/settings/index.d.ts.map +1 -0
- package/client/components/contents/settings/index.js +67 -0
- package/client/components/contents/sites/Create.d.ts +2 -0
- package/client/components/contents/sites/Create.d.ts.map +1 -0
- package/client/components/contents/sites/Create.js +53 -0
- package/client/components/contents/sites/Delete.d.ts +2 -0
- package/client/components/contents/sites/Delete.d.ts.map +1 -0
- package/client/components/contents/sites/Delete.js +125 -0
- package/client/components/contents/sites/Edit.d.ts +2 -0
- package/client/components/contents/sites/Edit.d.ts.map +1 -0
- package/client/components/contents/sites/Edit.js +120 -0
- package/client/components/contents/sites/List.d.ts +2 -0
- package/client/components/contents/sites/List.d.ts.map +1 -0
- package/client/components/contents/sites/List.js +33 -0
- package/client/components/contents/sites/index.d.ts +7 -0
- package/client/components/contents/sites/index.d.ts.map +1 -0
- package/client/components/contents/sites/index.js +10 -0
- package/client/components/contents/terms/List/ActionLink.d.ts +5 -0
- package/client/components/contents/terms/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/terms/List/ActionLink.js +44 -0
- package/client/components/contents/terms/List/Toolbar.d.ts +8 -0
- package/client/components/contents/terms/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/terms/List/Toolbar.js +20 -0
- package/client/components/contents/terms/List/index.d.ts +18 -0
- package/client/components/contents/terms/List/index.d.ts.map +1 -0
- package/client/components/contents/terms/List/index.js +94 -0
- package/client/components/contents/terms/index.d.ts +2 -0
- package/client/components/contents/terms/index.d.ts.map +1 -0
- package/client/components/contents/terms/index.js +1 -0
- package/client/components/contents/users/Create.d.ts +2 -0
- package/client/components/contents/users/Create.d.ts.map +1 -0
- package/client/components/contents/users/Create.js +47 -0
- package/client/components/contents/users/Delete.d.ts +2 -0
- package/client/components/contents/users/Delete.d.ts.map +1 -0
- package/client/components/contents/users/Delete.js +113 -0
- package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.d.ts +6 -0
- package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.js +40 -0
- package/client/components/contents/users/Edit/Profile/ResetPasswordModal.d.ts +6 -0
- package/client/components/contents/users/Edit/Profile/ResetPasswordModal.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Profile/ResetPasswordModal.js +41 -0
- package/client/components/contents/users/Edit/Profile/index.d.ts +4 -0
- package/client/components/contents/users/Edit/Profile/index.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Profile/index.js +111 -0
- package/client/components/contents/users/Edit/Roles/ActionLink.d.ts +6 -0
- package/client/components/contents/users/Edit/Roles/ActionLink.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/ActionLink.js +63 -0
- package/client/components/contents/users/Edit/Roles/Add.d.ts +5 -0
- package/client/components/contents/users/Edit/Roles/Add.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/Add.js +60 -0
- package/client/components/contents/users/Edit/Roles/Edit.d.ts +8 -0
- package/client/components/contents/users/Edit/Roles/Edit.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/Edit.js +53 -0
- package/client/components/contents/users/Edit/Roles/Roles.d.ts +4 -0
- package/client/components/contents/users/Edit/Roles/Roles.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/Roles.js +41 -0
- package/client/components/contents/users/Edit/Roles/context.d.ts +9 -0
- package/client/components/contents/users/Edit/Roles/context.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/context.js +2 -0
- package/client/components/contents/users/Edit/Roles/index.d.ts +3 -0
- package/client/components/contents/users/Edit/Roles/index.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/index.js +2 -0
- package/client/components/contents/users/Edit/index.d.ts +4 -0
- package/client/components/contents/users/Edit/index.d.ts.map +1 -0
- package/client/components/contents/users/Edit/index.js +66 -0
- package/client/components/contents/users/List/CountRoles.d.ts +2 -0
- package/client/components/contents/users/List/CountRoles.d.ts.map +1 -0
- package/client/components/contents/users/List/CountRoles.js +68 -0
- package/client/components/contents/users/List/Toolbar.d.ts +10 -0
- package/client/components/contents/users/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/users/List/Toolbar.js +32 -0
- package/client/components/contents/users/List/index.d.ts +2 -0
- package/client/components/contents/users/List/index.d.ts.map +1 -0
- package/client/components/contents/users/List/index.js +30 -0
- package/client/components/contents/users/index.d.ts +9 -0
- package/client/components/contents/users/index.d.ts.map +1 -0
- package/client/components/contents/users/index.js +10 -0
- package/client/components/layout/Layout.d.ts +3 -0
- package/client/components/layout/Layout.d.ts.map +1 -0
- package/client/components/layout/Layout.js +69 -0
- package/client/components/layout/Main.d.ts +2 -0
- package/client/components/layout/Main.d.ts.map +1 -0
- package/client/components/layout/Main.js +12 -0
- package/client/components/layout/Overlay.d.ts +2 -0
- package/client/components/layout/Overlay.d.ts.map +1 -0
- package/client/components/layout/Overlay.js +49 -0
- package/client/components/layout/Title.d.ts +2 -0
- package/client/components/layout/Title.d.ts.map +1 -0
- package/client/components/layout/Title.js +19 -0
- package/client/components/layout/WrapperLayout.d.ts +2 -0
- package/client/components/layout/WrapperLayout.d.ts.map +1 -0
- package/client/components/layout/WrapperLayout.js +5 -0
- package/client/components/layout/header/Profile.d.ts +2 -0
- package/client/components/layout/header/Profile.d.ts.map +1 -0
- package/client/components/layout/header/Profile.js +66 -0
- package/client/components/layout/header/index.d.ts +2 -0
- package/client/components/layout/header/index.d.ts.map +1 -0
- package/client/components/layout/header/index.js +176 -0
- package/client/components/layout/sidebar/Collapse.d.ts +4 -0
- package/client/components/layout/sidebar/Collapse.d.ts.map +1 -0
- package/client/components/layout/sidebar/Collapse.js +53 -0
- package/client/components/layout/sidebar/Menus.d.ts +5 -0
- package/client/components/layout/sidebar/Menus.d.ts.map +1 -0
- package/client/components/layout/sidebar/Menus.js +76 -0
- package/client/components/layout/sidebar/index.d.ts +2 -0
- package/client/components/layout/sidebar/index.d.ts.map +1 -0
- package/client/components/layout/sidebar/index.js +86 -0
- package/client/components/utils/ErrorFallback.d.ts +6 -0
- package/client/components/utils/ErrorFallback.d.ts.map +1 -0
- package/client/components/utils/ErrorFallback.js +36 -0
- package/client/components/utils/dropdown/SelectWPAvailableSite.d.ts +7 -0
- package/client/components/utils/dropdown/SelectWPAvailableSite.d.ts.map +1 -0
- package/client/components/utils/dropdown/SelectWPAvailableSite.js +58 -0
- package/client/components/utils/dropdown/SelectWPSite.d.ts +5 -0
- package/client/components/utils/dropdown/SelectWPSite.d.ts.map +1 -0
- package/client/components/utils/dropdown/SelectWPSite.js +27 -0
- package/client/components/utils/dropdown/index.d.ts +2 -0
- package/client/components/utils/dropdown/index.d.ts.map +1 -0
- package/client/components/utils/dropdown/index.js +1 -0
- package/client/components/utils/index.d.ts +2 -0
- package/client/components/utils/index.d.ts.map +1 -0
- package/client/components/utils/index.js +1 -0
- package/client/components/utils/link/AdminLink.d.ts +46 -0
- package/client/components/utils/link/AdminLink.d.ts.map +1 -0
- package/client/components/utils/link/AdminLink.js +61 -0
- package/client/components/utils/link/index.d.ts +2 -0
- package/client/components/utils/link/index.d.ts.map +1 -0
- package/client/components/utils/link/index.js +2 -0
- package/client/components/utils/modal/CommentModal.d.ts +2 -0
- package/client/components/utils/modal/CommentModal.d.ts.map +1 -0
- package/client/components/utils/modal/CommentModal.js +53 -0
- package/client/components/utils/modal/TermModal.d.ts +10 -0
- package/client/components/utils/modal/TermModal.d.ts.map +1 -0
- package/client/components/utils/modal/TermModal.js +70 -0
- package/client/components/utils/modal/index.d.ts +3 -0
- package/client/components/utils/modal/index.d.ts.map +1 -0
- package/client/components/utils/modal/index.js +2 -0
- package/client/components/utils/post/PostPanel.d.ts +15 -0
- package/client/components/utils/post/PostPanel.d.ts.map +1 -0
- package/client/components/utils/post/PostPanel.js +70 -0
- package/client/components/utils/post/index.d.ts +4 -0
- package/client/components/utils/post/index.d.ts.map +1 -0
- package/client/components/utils/post/index.js +3 -0
- package/client/components/utils/post/link/PostActionLink.d.ts +9 -0
- package/client/components/utils/post/link/PostActionLink.d.ts.map +1 -0
- package/client/components/utils/post/link/PostActionLink.js +90 -0
- package/client/components/utils/post/link/PostRowLinks.d.ts +8 -0
- package/client/components/utils/post/link/PostRowLinks.d.ts.map +1 -0
- package/client/components/utils/post/link/PostRowLinks.js +30 -0
- package/client/components/utils/post/link/index.d.ts +3 -0
- package/client/components/utils/post/link/index.d.ts.map +1 -0
- package/client/components/utils/post/link/index.js +2 -0
- package/client/components/utils/post/settings/Categories.d.ts +2 -0
- package/client/components/utils/post/settings/Categories.d.ts.map +1 -0
- package/client/components/utils/post/settings/Categories.js +23 -0
- package/client/components/utils/post/settings/Discussion.d.ts +2 -0
- package/client/components/utils/post/settings/Discussion.d.ts.map +1 -0
- package/client/components/utils/post/settings/Discussion.js +25 -0
- package/client/components/utils/post/settings/Excerpt.d.ts +2 -0
- package/client/components/utils/post/settings/Excerpt.d.ts.map +1 -0
- package/client/components/utils/post/settings/Excerpt.js +9 -0
- package/client/components/utils/post/settings/FeaturedImage.d.ts +2 -0
- package/client/components/utils/post/settings/FeaturedImage.d.ts.map +1 -0
- package/client/components/utils/post/settings/FeaturedImage.js +63 -0
- package/client/components/utils/post/settings/PageAttributes.d.ts +2 -0
- package/client/components/utils/post/settings/PageAttributes.d.ts.map +1 -0
- package/client/components/utils/post/settings/PageAttributes.js +23 -0
- package/client/components/utils/post/settings/Revisions.d.ts +2 -0
- package/client/components/utils/post/settings/Revisions.d.ts.map +1 -0
- package/client/components/utils/post/settings/Revisions.js +44 -0
- package/client/components/utils/post/settings/Summary.d.ts +2 -0
- package/client/components/utils/post/settings/Summary.d.ts.map +1 -0
- package/client/components/utils/post/settings/Summary.js +58 -0
- package/client/components/utils/post/settings/Tags.d.ts +2 -0
- package/client/components/utils/post/settings/Tags.d.ts.map +1 -0
- package/client/components/utils/post/settings/Tags.js +11 -0
- package/client/components/utils/post/settings/index.d.ts +9 -0
- package/client/components/utils/post/settings/index.d.ts.map +1 -0
- package/client/components/utils/post/settings/index.js +8 -0
- package/client/hooks/index.d.ts +6 -0
- package/client/hooks/index.d.ts.map +1 -0
- package/client/hooks/index.js +5 -0
- package/client/hooks/use-admin-navigation.d.ts +39 -0
- package/client/hooks/use-admin-navigation.d.ts.map +1 -0
- package/client/hooks/use-admin-navigation.js +61 -0
- package/client/hooks/use-admin-server-actions.d.ts +49 -0
- package/client/hooks/use-admin-server-actions.d.ts.map +1 -0
- package/client/hooks/use-admin-server-actions.js +13 -0
- package/client/hooks/use-admin-user.d.ts +130 -0
- package/client/hooks/use-admin-user.d.ts.map +1 -0
- package/client/hooks/use-admin-user.js +19 -0
- package/client/hooks/use-current-menu.d.ts +3 -0
- package/client/hooks/use-current-menu.d.ts.map +1 -0
- package/client/hooks/use-current-menu.js +37 -0
- package/client/hooks/use-sidebar.d.ts +27 -0
- package/client/hooks/use-sidebar.d.ts.map +1 -0
- package/client/hooks/use-sidebar.js +51 -0
- package/client/hooks/use-sites.d.ts +136 -0
- package/client/hooks/use-sites.d.ts.map +1 -0
- package/client/hooks/use-sites.js +43 -0
- package/client/utils/get-default-admin-hooks.d.ts +3 -0
- package/client/utils/get-default-admin-hooks.d.ts.map +1 -0
- package/client/utils/get-default-admin-hooks.js +3 -0
- package/client/utils/index.d.ts +2 -0
- package/client/utils/index.d.ts.map +1 -0
- package/client/utils/index.js +1 -0
- package/client/wp-admin/initial-global-state.d.ts +5 -0
- package/client/wp-admin/initial-global-state.d.ts.map +1 -0
- package/client/wp-admin/initial-global-state.js +46 -0
- package/client/wp-admin/use-comment.d.ts +55 -0
- package/client/wp-admin/use-comment.d.ts.map +1 -0
- package/client/wp-admin/use-comment.js +32 -0
- package/client/wp-admin/use-overlay.d.ts +28 -0
- package/client/wp-admin/use-overlay.d.ts.map +1 -0
- package/client/wp-admin/use-overlay.js +89 -0
- package/client/wp-admin.d.ts +27 -0
- package/client/wp-admin.d.ts.map +1 -0
- package/client/wp-admin.js +49 -0
- package/client/wp-hooks/index.d.ts +5 -0
- package/client/wp-hooks/index.d.ts.map +1 -0
- package/client/wp-hooks/index.js +5 -0
- package/client/wp-hooks/menu-blog.hook.d.ts +11 -0
- package/client/wp-hooks/menu-blog.hook.d.ts.map +1 -0
- package/client/wp-hooks/menu-blog.hook.js +236 -0
- package/client/wp-hooks/menu-site.hook.d.ts +11 -0
- package/client/wp-hooks/menu-site.hook.d.ts.map +1 -0
- package/client/wp-hooks/menu-site.hook.js +171 -0
- package/client/wp-hooks/preload-modal.hook.d.ts +10 -0
- package/client/wp-hooks/preload-modal.hook.d.ts.map +1 -0
- package/client/wp-hooks/preload-modal.hook.js +45 -0
- package/client/wp-hooks/themes.hook.d.ts +9 -0
- package/client/wp-hooks/themes.hook.d.ts.map +1 -0
- package/client/wp-hooks/themes.hook.js +32 -0
- package/package.json +64 -0
- package/server/actions/dashboard.d.ts +141 -0
- package/server/actions/dashboard.d.ts.map +1 -0
- package/server/actions/dashboard.js +52 -0
- package/server/components/Page.d.ts +2 -0
- package/server/components/Page.d.ts.map +1 -0
- package/server/components/Page.js +3 -0
- package/server/components/RootLayout.d.ts +5 -0
- package/server/components/RootLayout.d.ts.map +1 -0
- package/server/components/RootLayout.js +57 -0
- package/server/components/RootPage.d.ts +2 -0
- package/server/components/RootPage.d.ts.map +1 -0
- package/server/components/RootPage.js +19 -0
- package/server/utils/get-default-admin-hooks.d.ts +3 -0
- package/server/utils/get-default-admin-hooks.d.ts.map +1 -0
- package/server/utils/get-default-admin-hooks.js +4 -0
- package/server/utils/index.d.ts +2 -0
- package/server/utils/index.d.ts.map +1 -0
- package/server/utils/index.js +1 -0
- package/server/wp-admin.d.ts +40 -0
- package/server/wp-admin.d.ts.map +1 -0
- package/server/wp-admin.js +58 -0
- package/server/wp-hooks/index.d.ts +3 -0
- package/server/wp-hooks/index.d.ts.map +1 -0
- package/server/wp-hooks/index.js +3 -0
- package/server/wp-hooks/next-admin-init.hook.d.ts +15 -0
- package/server/wp-hooks/next-admin-init.hook.d.ts.map +1 -0
- package/server/wp-hooks/next-admin-init.hook.js +65 -0
- package/types/client/form-data.d.ts +27 -0
- package/types/client/global-ref.d.ts +7 -0
- package/types/client/global-state.d.ts +78 -0
- package/types/client/index.d.ts +5 -0
- package/types/client/menus.d.ts +39 -0
- package/types/client.d.ts +40 -0
- package/types/hooks/actions.d.ts +4 -0
- package/types/hooks/filters.d.ts +39 -0
- package/types/hooks/index.d.ts +2 -0
- package/types/index.d.ts +4 -0
- package/types/server-actions.d.ts +21 -0
- package/types/theme.d.ts +33 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
4
|
+
import { AdminLink } from "../../../../../components/utils/link";
|
|
5
|
+
import { useAdminNavigation } from "../../../../../hooks/use-admin-navigation";
|
|
6
|
+
import { useAdminUser } from "../../../../../hooks/use-admin-user";
|
|
7
|
+
import { useWPAdmin } from "../../../../../wp-admin";
|
|
8
|
+
import { RoleEditContext } from "./context";
|
|
9
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
10
|
+
export const ActionLink = (props) => {
|
|
11
|
+
const { blog, blogIndex } = props;
|
|
12
|
+
const { overlay, site } = useWPAdmin();
|
|
13
|
+
const { adminUser: currentUser } = useAdminUser();
|
|
14
|
+
const { actions, parse } = useServerActions();
|
|
15
|
+
const { refresh } = useAdminNavigation();
|
|
16
|
+
const { userId, setSelectedBlogIndex } = useContext(RoleEditContext);
|
|
17
|
+
const availableSites = currentUser.availableSites;
|
|
18
|
+
const currentBlog = !site.isMultiSite
|
|
19
|
+
? availableSites.primary_blog
|
|
20
|
+
: availableSites.sites
|
|
21
|
+
?.flatMap((site) => site.blogs)
|
|
22
|
+
.find((currentBlog) => currentBlog?.blog_id == blog?.blog_id);
|
|
23
|
+
const handleEdit = (index) => () => {
|
|
24
|
+
setSelectedBlogIndex(index);
|
|
25
|
+
};
|
|
26
|
+
const handleSuperAdminRole = (blog, remove) => () => {
|
|
27
|
+
if (!userId) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
overlay.confirm.open(_jsxs(_Fragment, { children: ["You are about to ", remove ? "remove" : "grant", " ", _jsx(Typography, { bold: true, size: "large", component: "span", children: "Super Admin" }), " ", "access to", " ", _jsx(Typography, { bold: true, size: "large", component: "span", children: blog.blogname })] }), async (confirm) => {
|
|
31
|
+
if (!confirm) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
await overlay.circular.promise(actions.user
|
|
35
|
+
.updateSuperAdmin(userId, {
|
|
36
|
+
blogId: blog.blog_id,
|
|
37
|
+
remove,
|
|
38
|
+
})
|
|
39
|
+
.then(parse));
|
|
40
|
+
//refreshRoleTab();
|
|
41
|
+
refresh(["content"]);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const handleRemoveRoles = (blog) => async () => {
|
|
45
|
+
if (!blog.blog_id || !userId) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
await overlay.circular.promise(actions.user
|
|
49
|
+
.updateRole(userId, [], { blogId: blog.blog_id })
|
|
50
|
+
.then(parse));
|
|
51
|
+
//refreshRoleTab();
|
|
52
|
+
refresh(["content"]);
|
|
53
|
+
};
|
|
54
|
+
const hasRoles = (roleNames) => roleNames && roleNames.some((roleName) => roleName !== "superadmin");
|
|
55
|
+
const hasSuperAdminRole = (roleNames) => roleNames && roleNames.some((roleName) => roleName == "superadmin");
|
|
56
|
+
// In multisite, user can't edit own role except superadmin
|
|
57
|
+
if (site.isMultiSite &&
|
|
58
|
+
currentUser.ID == userId &&
|
|
59
|
+
!currentBlog?.rolenames?.includes("superadmin")) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return (_jsxs(Typography, { children: [_jsx(AdminLink, { onClick: handleEdit(blogIndex), children: "Edit" }), " ", hasRoles(blog.rolenames) && (_jsx(AdminLink, { color: "error", onClick: handleRemoveRoles(blog), children: "Remove Roles" })), " ", currentBlog?.rolenames?.includes("superadmin") && (_jsxs(_Fragment, { children: [" ", hasSuperAdminRole(blog.rolenames) ? (_jsx(AdminLink, { color: "error", onClick: handleSuperAdminRole(blog, true), children: "Remove Super Admin" })) : (_jsx(AdminLink, { onClick: handleSuperAdminRole(blog, false), children: "Grant Super Admin" }))] }))] }));
|
|
63
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Add.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Roles/Add.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAK9D,eAAO,MAAM,GAAG,GAAI,OAAO;IACzB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC;CAC9C,iEAwGA,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import CancelIcon from "@mui/icons-material/Cancel";
|
|
4
|
+
import { useAdminServerActions } from "../../../../../hooks/use-admin-server-actions";
|
|
5
|
+
import { useWPAdmin } from "../../../../../wp-admin";
|
|
6
|
+
import { Edit } from "./Edit";
|
|
7
|
+
import { Box, IconButton, Tooltip } from "@mui/material";
|
|
8
|
+
import { Select } from "@rnaga/wp-next-ui/Select";
|
|
9
|
+
import { Button } from "@rnaga/wp-next-ui/Button";
|
|
10
|
+
export const Add = (props) => {
|
|
11
|
+
const { blogs } = props;
|
|
12
|
+
const { overlay } = useWPAdmin();
|
|
13
|
+
const { actions, parse } = useAdminServerActions();
|
|
14
|
+
const [show, setShow] = useState(false);
|
|
15
|
+
const [selectedBlog, setSelectedBlog] = useState();
|
|
16
|
+
const [roleAdditiveBlogs, setRoleAdditiveBlogs] = useState();
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const blogIds = blogs.map((blog) => blog.blog_id);
|
|
19
|
+
actions.adminUser.getRoleAdditiveBlogs(blogIds).then((response) => {
|
|
20
|
+
const [blogs] = parse(response);
|
|
21
|
+
setRoleAdditiveBlogs(blogs);
|
|
22
|
+
});
|
|
23
|
+
}, [show, blogs]);
|
|
24
|
+
const handleAddNewButton = () => {
|
|
25
|
+
setShow(true);
|
|
26
|
+
};
|
|
27
|
+
const handelSelected = (blogId) => {
|
|
28
|
+
for (const blog of roleAdditiveBlogs ?? []) {
|
|
29
|
+
if (blog?.blog_id === blogId) {
|
|
30
|
+
setSelectedBlog(blog);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const handleCancelEdit = () => {
|
|
36
|
+
setSelectedBlog(undefined);
|
|
37
|
+
setShow(false);
|
|
38
|
+
};
|
|
39
|
+
if (!show) {
|
|
40
|
+
if (roleAdditiveBlogs && roleAdditiveBlogs.length > 0) {
|
|
41
|
+
return (_jsx(Button, { size: "medium", onClick: handleAddNewButton, children: "Add New Role" }));
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
if (!roleAdditiveBlogs) {
|
|
46
|
+
return "Loading..";
|
|
47
|
+
}
|
|
48
|
+
if (1 >= roleAdditiveBlogs.length) {
|
|
49
|
+
return (_jsxs(_Fragment, { children: [roleAdditiveBlogs[0]?.blogname, _jsx(Edit, { show: true, blogId: roleAdditiveBlogs[0].blog_id, roles: roleAdditiveBlogs[0].blog_roles, onCancelEdit: handleCancelEdit })] }));
|
|
50
|
+
}
|
|
51
|
+
if (selectedBlog) {
|
|
52
|
+
return (_jsxs(_Fragment, { children: [selectedBlog.blogname, _jsx(Edit, { show: true, blogId: selectedBlog.blog_id, roles: selectedBlog.blog_roles, onCancelEdit: handleCancelEdit })] }));
|
|
53
|
+
}
|
|
54
|
+
return (_jsxs(Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [_jsx(Select, { size: "medium", label: "Select Blog", enum: roleAdditiveBlogs.map((blog) => ({
|
|
55
|
+
label: blog.blogname,
|
|
56
|
+
value: blog.blog_id,
|
|
57
|
+
})), onChange: (v) => handelSelected(parseInt(`${v}`)), sx: {
|
|
58
|
+
minWidth: 300,
|
|
59
|
+
} }), _jsx(Tooltip, { title: "Cancel", placement: "top", children: _jsx(IconButton, { color: "error", size: "small", onClick: handleCancelEdit, children: _jsx(CancelIcon, {}) }) })] }));
|
|
60
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as wpTypes from "@rnaga/wp-node/types";
|
|
2
|
+
export declare const Edit: (props: {
|
|
3
|
+
blogId: number | undefined;
|
|
4
|
+
roles: Record<string, wpTypes.Role>;
|
|
5
|
+
show: boolean;
|
|
6
|
+
onCancelEdit: (...args: any) => any;
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=Edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Edit.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Roles/Edit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAarD,eAAO,MAAM,IAAI,GAAI,OAAO;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CACrC,mDAoFA,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, useState } from "react";
|
|
3
|
+
import CancelIcon from "@mui/icons-material/Cancel";
|
|
4
|
+
import DoneIcon from "@mui/icons-material/Done";
|
|
5
|
+
import { Box, IconButton, Tooltip } from "@mui/material";
|
|
6
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
7
|
+
import { SelectMultiple } from "@rnaga/wp-next-ui/SelectMultiple";
|
|
8
|
+
import { useAdminNavigation } from "../../../../../hooks/use-admin-navigation";
|
|
9
|
+
import { useWPAdmin } from "../../../../../wp-admin";
|
|
10
|
+
import { RoleEditContext } from "./context";
|
|
11
|
+
export const Edit = (props) => {
|
|
12
|
+
const { blogId, show, onCancelEdit } = props;
|
|
13
|
+
let { roles } = props;
|
|
14
|
+
const { overlay } = useWPAdmin();
|
|
15
|
+
const { refresh } = useAdminNavigation();
|
|
16
|
+
const { actions, safeParse } = useServerActions();
|
|
17
|
+
const [values, setValues] = useState();
|
|
18
|
+
const { userId, targetBlogs } = useContext(RoleEditContext);
|
|
19
|
+
if (!show) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
// superadmin and anonymous can't be edited through this component.
|
|
23
|
+
const roleNames = Object.keys(roles).filter((roleName) => !["superadmin", "anonymous"].includes(roleName)) ?? [];
|
|
24
|
+
const defaultRoleNames = targetBlogs
|
|
25
|
+
?.filter((blog) => blog.blog_id == blogId)[0]
|
|
26
|
+
?.rolenames?.filter((roleName) => !["superadmin", "anonymous"].includes(roleName));
|
|
27
|
+
const selectedRoleNames = Array.from(new Set(values ?? defaultRoleNames ?? []));
|
|
28
|
+
const handleUpdateRole = async () => {
|
|
29
|
+
if (!values || !userId || !blogId) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const result = await overlay.circular.promise(actions.user
|
|
33
|
+
.updateRole(userId, values, {
|
|
34
|
+
blogId,
|
|
35
|
+
})
|
|
36
|
+
.then(safeParse));
|
|
37
|
+
if (!result.success) {
|
|
38
|
+
overlay.snackbar.open("error", result.error);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
refresh(["content"]);
|
|
42
|
+
};
|
|
43
|
+
return (_jsxs(Box, { sx: { display: "flex", gap: 0.5, alignItems: "center" }, children: [_jsx(SelectMultiple, { items: roleNames.map((roleName) => ({
|
|
44
|
+
label: roleName,
|
|
45
|
+
id: roleName,
|
|
46
|
+
})), value: selectedRoleNames, onChange: (items) => {
|
|
47
|
+
const newRoleNames = items.map((item) => item.id);
|
|
48
|
+
setValues(newRoleNames);
|
|
49
|
+
console.log("onChange", items);
|
|
50
|
+
}, slotSxProps: {
|
|
51
|
+
input: { minWidth: "300px", minHeight: "28px" },
|
|
52
|
+
}, limitTags: 5 }), _jsx(Tooltip, { title: "Update Roles", placement: "top", children: _jsx(IconButton, { color: "success", size: "small", onClick: handleUpdateRole, children: _jsx(DoneIcon, {}) }) }), _jsx(Tooltip, { title: "Cancel", placement: "top", children: _jsx(IconButton, { color: "error", size: "small", onClick: onCancelEdit, children: _jsx(CancelIcon, {}) }) })] }));
|
|
53
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Roles.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Roles/Roles.tsx"],"names":[],"mappings":"AA0BA,eAAO,MAAM,KAAK,GAAI,OAAO;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,mDAkG9C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState, useTransition } from "react";
|
|
3
|
+
import { AccordionDetails, Box } from "@mui/material";
|
|
4
|
+
import { Accordion, AccordionSummary } from "@rnaga/wp-next-ui/Accordion";
|
|
5
|
+
import { ActionTd, ListGrid, ListGridItem, Table, Td, Th, THead, Tr, } from "@rnaga/wp-next-ui/list";
|
|
6
|
+
import { Loading } from "@rnaga/wp-next-ui/Loading";
|
|
7
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
8
|
+
import { Viewport } from "@rnaga/wp-next-ui/Viewport";
|
|
9
|
+
import { useAdminServerActions } from "../../../../../hooks/use-admin-server-actions";
|
|
10
|
+
import { Add } from "./";
|
|
11
|
+
import { ActionLink } from "./ActionLink";
|
|
12
|
+
import { RoleEditContext } from "./context";
|
|
13
|
+
import { Edit } from "./Edit";
|
|
14
|
+
export const Roles = (props) => {
|
|
15
|
+
const { userId } = props;
|
|
16
|
+
const { actions, parse } = useAdminServerActions();
|
|
17
|
+
const [selectedBlogIndex, setSelectedBlogIndex] = useState();
|
|
18
|
+
const [blogs, setBlogs] = useState();
|
|
19
|
+
const [loading, startTransition] = useTransition();
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
startTransition(async () => {
|
|
22
|
+
const [blogs] = await actions.adminUser
|
|
23
|
+
.getRoleEditableBlogs(userId)
|
|
24
|
+
.then(parse);
|
|
25
|
+
setBlogs(blogs);
|
|
26
|
+
});
|
|
27
|
+
}, [userId]);
|
|
28
|
+
const handleCancelEdit = () => {
|
|
29
|
+
setSelectedBlogIndex(undefined);
|
|
30
|
+
};
|
|
31
|
+
if (!blogs) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return (_jsx(RoleEditContext, { value: {
|
|
35
|
+
userId,
|
|
36
|
+
targetBlogs: blogs,
|
|
37
|
+
selectedBlogIndex,
|
|
38
|
+
setSelectedBlogIndex,
|
|
39
|
+
}, children: _jsxs(Loading, { loading: loading, sx: { mb: 2 }, children: [_jsx(Box, { sx: { mt: 1 }, children: _jsxs(Table, { children: [_jsxs(THead, { children: [_jsx(Th, { children: "Blog Name" }), _jsx(Th, { viewport: "desktop", style: { width: "60%" }, children: "Roles" })] }), _jsx("tbody", { children: blogs.map((blog, index) => (_jsxs(Tr, { style: { paddingTop: "1em" }, children: [_jsxs(ActionTd, { children: [_jsx(Viewport, { device: "desktop", children: blog?.blogname }), _jsx(Viewport, { device: "desktop", children: _jsx(ActionLink, { blog: blog, blogIndex: index }) })] }), _jsx(Td, { viewport: "mobile", children: _jsxs(Accordion, { children: [_jsx(AccordionSummary, { children: blog?.blogname }), _jsxs(AccordionDetails, { children: [_jsx(ActionLink, { blog: blog, blogIndex: index }), _jsx(ListGrid, { children: _jsxs(ListGridItem, { title: "Roles", children: [_jsx(Edit, { blogId: blog.blog_id, roles: blog.blog_roles, show: selectedBlogIndex == index, onCancelEdit: handleCancelEdit }), selectedBlogIndex !== index &&
|
|
40
|
+
blog?.rolenames?.join(", ")] }) })] })] }) }), _jsxs(Td, { viewport: "desktop", children: [_jsx(Edit, { blogId: blog.blog_id, roles: blog.blog_roles, show: selectedBlogIndex == index, onCancelEdit: handleCancelEdit }), selectedBlogIndex !== index && (_jsx(Typography, { size: "medium", children: blog?.rolenames?.join(", ") }))] })] }, `${blog.blog_id}`))) })] }) }), _jsx(Box, { sx: { display: "flex", gap: 1, mt: 1, alignItems: "center" }, children: _jsx(Add, { blogs: blogs }) })] }) }));
|
|
41
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
|
|
3
|
+
export declare const RoleEditContext: import("react").Context<{
|
|
4
|
+
userId: number;
|
|
5
|
+
targetBlogs?: wpCoreTypes.actions.RoleEditableBlogs;
|
|
6
|
+
selectedBlogIndex: number | undefined;
|
|
7
|
+
setSelectedBlogIndex: Dispatch<SetStateAction<number | undefined>>;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Roles/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAE9D,eAAO,MAAM,eAAe;YAClB,MAAM;kBACA,WAAW,CAAC,OAAO,CAAC,iBAAiB;uBAChC,MAAM,GAAG,SAAS;0BACf,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;EACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Roles/index.tsx"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/users/Edit/index.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,IAAI,GAAI,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,mDA6E/C,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useState } from "react";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { Box } from "@mui/material";
|
|
5
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
6
|
+
import { useUser } from "@rnaga/wp-next-core/client/hooks/use-user";
|
|
7
|
+
import { Tabs } from "@rnaga/wp-next-ui/Tabs";
|
|
8
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
9
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
10
|
+
import { Profile } from "./Profile";
|
|
11
|
+
import { Roles } from "./Roles/";
|
|
12
|
+
export const Edit = (props) => {
|
|
13
|
+
const { overlay } = useWPAdmin();
|
|
14
|
+
const { user } = useUser();
|
|
15
|
+
const { searchParams, refreshValue } = useAdminNavigation();
|
|
16
|
+
const { actions, safeParse } = useServerActions();
|
|
17
|
+
const [canEditUser, setCanEditUser] = useState();
|
|
18
|
+
const refreshContent = refreshValue().content;
|
|
19
|
+
const userId = props?.userId && user?.ID == props.userId
|
|
20
|
+
? props.userId
|
|
21
|
+
: z
|
|
22
|
+
.string()
|
|
23
|
+
.transform((v) => parseInt(v))
|
|
24
|
+
.parse(searchParams.get("id"));
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
(async () => {
|
|
27
|
+
const response = await actions.user
|
|
28
|
+
.can("edit_user", userId)
|
|
29
|
+
.then(safeParse);
|
|
30
|
+
if (!response.success) {
|
|
31
|
+
console.info(response.error);
|
|
32
|
+
setCanEditUser(false);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
setCanEditUser(response.data);
|
|
36
|
+
})();
|
|
37
|
+
}, []);
|
|
38
|
+
const canUpdateRole = useMemo(() => user?.role.capabilities.has("promote_user") ||
|
|
39
|
+
user?.role.capabilities.has("remove_users"), [user?.role.capabilities]);
|
|
40
|
+
if (canEditUser === undefined) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
console.log("user.role.capabilities", user?.role.capabilities);
|
|
44
|
+
const tabItems = [
|
|
45
|
+
...(canEditUser
|
|
46
|
+
? [{ label: "Profile", content: _jsx(Profile, { userId: userId }) }]
|
|
47
|
+
: []),
|
|
48
|
+
...(canUpdateRole
|
|
49
|
+
? [
|
|
50
|
+
{
|
|
51
|
+
label: "Roles",
|
|
52
|
+
content: _jsx(Roles, { userId: userId }, `role-${refreshContent}`),
|
|
53
|
+
},
|
|
54
|
+
]
|
|
55
|
+
: []),
|
|
56
|
+
];
|
|
57
|
+
return (_jsx(Box, { sx: {
|
|
58
|
+
//backgroundColor: (theme) => theme.palette.background.surface,
|
|
59
|
+
width: "100%",
|
|
60
|
+
}, children: _jsx(Tabs, { items: tabItems, size: "medium", slotSxProps: {
|
|
61
|
+
tab: {
|
|
62
|
+
width: `calc(100% / ${tabItems.length})`,
|
|
63
|
+
minWidth: "unset",
|
|
64
|
+
},
|
|
65
|
+
} }) }));
|
|
66
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CountRoles.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/users/List/CountRoles.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,sDAmGtB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
4
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
5
|
+
import { Link } from "@rnaga/wp-next-ui/Link";
|
|
6
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
7
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
8
|
+
export const CountRoles = () => {
|
|
9
|
+
const { site } = useWPAdmin();
|
|
10
|
+
const { actions, parse } = useServerActions();
|
|
11
|
+
const { pushRouter, searchParams, queryObject } = useAdminNavigation();
|
|
12
|
+
const [roles, setRoles] = useState();
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const params = queryObject?.site_id
|
|
15
|
+
? { site_id: queryObject.site_id }
|
|
16
|
+
: queryObject?.blog_id
|
|
17
|
+
? { blog_id: queryObject.blog_id }
|
|
18
|
+
: site.blogId
|
|
19
|
+
? { blog_id: site.blogId }
|
|
20
|
+
: undefined;
|
|
21
|
+
// Early return if params is not set
|
|
22
|
+
if (!params) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
actions.roles.count(params).then((response) => {
|
|
26
|
+
const [roles] = parse(response);
|
|
27
|
+
setRoles(roles);
|
|
28
|
+
});
|
|
29
|
+
}, [site.blogId, queryObject?.blog_id, queryObject?.site_id]);
|
|
30
|
+
if (!roles) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const buildQueryObject = (qb = {}) => {
|
|
34
|
+
return {
|
|
35
|
+
...(queryObject?.site_id
|
|
36
|
+
? {
|
|
37
|
+
site_id: queryObject.site_id,
|
|
38
|
+
}
|
|
39
|
+
: {
|
|
40
|
+
blog_id: queryObject?.blog_id ?? site.blogId,
|
|
41
|
+
}),
|
|
42
|
+
...qb,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const elements = [
|
|
46
|
+
Object.keys(queryObject ?? {}).filter((key) => false === ["site_id", "blog_id", "page"].includes(key)).length > 0 ? (_jsxs(React.Fragment, { children: [_jsx(Link, { component: "button", onClick: () => pushRouter(buildQueryObject()), children: "All" }), " "] }, "all")) : (_jsx(React.Fragment, { children: " All" }, "all")),
|
|
47
|
+
];
|
|
48
|
+
elements.push(_jsxs(React.Fragment, { children: [" | ", " "] }, "separator"));
|
|
49
|
+
Object.entries(roles)
|
|
50
|
+
.filter(([, count]) => count && count > 0)
|
|
51
|
+
.forEach(([roleName, count], index, arr) => {
|
|
52
|
+
let newQueryObject;
|
|
53
|
+
if (roleName == "superadmins") {
|
|
54
|
+
newQueryObject = buildQueryObject({ superadmins: true });
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
newQueryObject = buildQueryObject({
|
|
58
|
+
roles: [`${roleName}`],
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
elements.push(searchParams.get("roles") === roleName ||
|
|
62
|
+
searchParams.get("superadmins") === "true" ? (_jsxs(React.Fragment, { children: [roleName, " (", count, ")"] }, `role-${roleName}`)) : (_jsxs(React.Fragment, { children: [_jsx(Link, { onClick: () => pushRouter(newQueryObject), children: roleName }), " (", count, ")"] }, `role-${roleName}`)));
|
|
63
|
+
if (index + 1 < arr.length) {
|
|
64
|
+
elements.push(_jsx(React.Fragment, { children: " | " }, `separator-${index}`));
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return (_jsx(Typography, { size: "medium", component: "div", children: elements }));
|
|
68
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
|
|
3
|
+
export declare const Toolbar: (props: {
|
|
4
|
+
list: {
|
|
5
|
+
users: wpCoreTypes.actions.UsersEdit;
|
|
6
|
+
info: wpCoreTypes.actions.UsersEditInfo;
|
|
7
|
+
} | undefined;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=Toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/users/List/Toolbar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAE9D,eAAO,MAAM,OAAO,GAAI,OAAO;IAC7B,IAAI,EACA;QACE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;KACzC,GACD,SAAS,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,4CAgDA,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Box, Stack } from "@mui/material";
|
|
4
|
+
import { InputSearch } from "@rnaga/wp-next-ui/InputSearch";
|
|
5
|
+
import { Pagination } from "@rnaga/wp-next-ui/list/Pagination";
|
|
6
|
+
import { SelectWPAvailableSite } from "../../../../components/utils/dropdown/SelectWPAvailableSite";
|
|
7
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
8
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
9
|
+
export const Toolbar = (props) => {
|
|
10
|
+
const { list, children } = props;
|
|
11
|
+
const { wp: { viewport }, } = useWPAdmin();
|
|
12
|
+
const { pushRouter } = useAdminNavigation();
|
|
13
|
+
const handleSitesDropdown = (siteId, blogId) => {
|
|
14
|
+
blogId
|
|
15
|
+
? pushRouter({
|
|
16
|
+
blog_id: blogId,
|
|
17
|
+
})
|
|
18
|
+
: siteId &&
|
|
19
|
+
pushRouter({
|
|
20
|
+
site_id: siteId,
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
return (_jsxs(_Fragment, { children: [children, _jsxs(Stack, { spacing: 1, sx: {
|
|
24
|
+
display: "grid",
|
|
25
|
+
gridTemplateColumns: viewport.isMobile ? "100%" : "1.5fr 1fr",
|
|
26
|
+
}, children: [_jsxs(Box, { sx: {
|
|
27
|
+
display: "flex",
|
|
28
|
+
justifyContent: "flex-start",
|
|
29
|
+
gap: 1,
|
|
30
|
+
flexGrow: 1,
|
|
31
|
+
}, children: [_jsx(SelectWPAvailableSite, { onClick: handleSitesDropdown, capabilities: ["list_users"] }), _jsx(InputSearch, { size: "medium", sx: { flexGrow: 1, minWidth: 250 } })] }), _jsx(Pagination, { pagination: list?.info?.pagination })] })] }));
|
|
32
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/users/List/index.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,IAAI,+CA6FhB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState, useTransition } from "react";
|
|
4
|
+
import { AccordionDetails, Stack } from "@mui/material";
|
|
5
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
6
|
+
import { Accordion } from "@rnaga/wp-next-ui/Accordion";
|
|
7
|
+
import { ActionTd, ListGrid, ListGridItem, ListGridTitle, SortableTh, Table, Td, Th, THead, Tr, } from "@rnaga/wp-next-ui/list";
|
|
8
|
+
import { Loading } from "@rnaga/wp-next-ui/Loading";
|
|
9
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
10
|
+
import { AdminLink } from "../../../../components/utils/link";
|
|
11
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
12
|
+
import { CountRoles } from "./CountRoles";
|
|
13
|
+
import { Toolbar } from "./Toolbar";
|
|
14
|
+
export const List = () => {
|
|
15
|
+
const { actions, parse } = useServerActions();
|
|
16
|
+
const { queryObject, navigationStatus } = useAdminNavigation();
|
|
17
|
+
const [loading, startTransition] = useTransition();
|
|
18
|
+
const [list, setList] = useState();
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
startTransition(async () => {
|
|
21
|
+
const [users, info] = await actions.user
|
|
22
|
+
.list({ ...queryObject, per_page: 20 }, {
|
|
23
|
+
context: "edit",
|
|
24
|
+
})
|
|
25
|
+
.then(parse);
|
|
26
|
+
setList({ users, info });
|
|
27
|
+
});
|
|
28
|
+
}, [navigationStatus]);
|
|
29
|
+
return (_jsxs(Stack, { spacing: 1, children: [_jsx(Toolbar, { list: list, children: _jsx(CountRoles, {}) }), _jsx(Loading, { loading: loading, children: _jsxs(Table, { children: [_jsxs(THead, { children: [_jsx(SortableTh, { name: "Username", orderby: "user_login" }), _jsx(Th, { viewport: "desktop", children: "Name" }), _jsx(SortableTh, { viewport: "desktop", name: "Email", orderby: "user_email" }), _jsx(Th, { viewport: "desktop", children: "Role" }), _jsx(Th, { viewport: "desktop", children: "Posts" })] }), _jsx("tbody", { children: list?.users?.map((user) => (_jsxs(Tr, { style: { paddingTop: "1em" }, children: [_jsxs(ActionTd, { children: [_jsx(Typography, { size: "medium", bold: true, children: user.user_login }), _jsx(AdminLink, { subPage: "edit", queryParams: { id: user.ID }, children: "Edit" })] }), _jsx(Td, { viewport: "mobile", children: _jsxs(Accordion, { children: [_jsx(ListGridTitle, { title: user.user_login }), _jsxs(AccordionDetails, { children: [_jsx(AdminLink, { subPage: "edit", queryParams: { id: user.ID }, children: "Edit" }), _jsxs(ListGrid, { children: [_jsx(ListGridItem, { title: "Name", children: user.display_name }), _jsx(ListGridItem, { title: "Email", children: user.user_email }), _jsx(ListGridItem, { title: "Role", children: user.roles.join(",") }), _jsx(ListGridItem, { title: "Posts", children: user.posts })] })] })] }) }), _jsx(Td, { viewport: "desktop", children: _jsx(Typography, { children: user.display_name }) }), _jsx(Td, { viewport: "desktop", children: _jsx(Typography, { children: user.user_email }) }), _jsx(Td, { viewport: "desktop", children: _jsx(Typography, { children: user.roles.join(",") }) }), _jsx(Td, { viewport: "desktop", children: _jsx(Typography, { children: user.posts }) })] }, `${user.ID}`))) })] }) })] }));
|
|
30
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const Users: {
|
|
2
|
+
Create: () => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
List: () => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
Edit: (props?: {
|
|
5
|
+
userId?: number;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
Delete: () => import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/users/index.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK;;;;cAM0V,CAAC;;;CAD5W,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/client/components/layout/Layout.tsx"],"names":[],"mappings":"AAkBA,eAAO,MAAM,MAAM,+CA8FlB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|