From fca8f9d8a23331531d5e8c4ec3ab5c0a41c48827 Mon Sep 17 00:00:00 2001 From: Aaron Robertshaw <60436221+aaronrobertshaw@users.noreply.github.com> Date: Tue, 13 Jun 2023 18:19:19 +1000 Subject: [PATCH] Update to use new Page components added along with Table --- .../edit-site/src/components/layout/index.js | 8 +- .../edit-site/src/components/library/index.js | 72 ----------- .../{library => page-library}/grid-item.js | 11 +- .../{library => page-library}/grid.js | 0 .../src/components/page-library/index.js | 113 ++++-------------- .../{library => page-library}/no-patterns.js | 0 .../patterns-list.js | 0 .../{library => page-library}/style.scss | 19 ++- .../use-library-settings.js | 2 +- .../{library => page-library}/use-patterns.js | 2 +- .../src/components/page-main/index.js | 2 +- .../edit-site/src/components/page/index.js | 18 ++- packages/edit-site/src/style.scss | 2 +- .../src/utils/get-is-library-page.js | 11 -- .../edit-site/src/utils/get-is-list-page.js | 2 +- 15 files changed, 65 insertions(+), 197 deletions(-) delete mode 100644 packages/edit-site/src/components/library/index.js rename packages/edit-site/src/components/{library => page-library}/grid-item.js (94%) rename packages/edit-site/src/components/{library => page-library}/grid.js (100%) rename packages/edit-site/src/components/{library => page-library}/no-patterns.js (100%) rename packages/edit-site/src/components/{library => page-library}/patterns-list.js (100%) rename packages/edit-site/src/components/{library => page-library}/style.scss (87%) rename packages/edit-site/src/components/{library => page-library}/use-library-settings.js (96%) rename packages/edit-site/src/components/{library => page-library}/use-patterns.js (99%) delete mode 100644 packages/edit-site/src/utils/get-is-library-page.js diff --git a/packages/edit-site/src/components/layout/index.js b/packages/edit-site/src/components/layout/index.js index a477ae6957c15..29b4605e67d25 100644 --- a/packages/edit-site/src/components/layout/index.js +++ b/packages/edit-site/src/components/layout/index.js @@ -36,7 +36,6 @@ import Sidebar from '../sidebar'; import Editor from '../editor'; import ErrorBoundary from '../error-boundary'; import { store as editSiteStore } from '../../store'; -import getIsLibraryPage from '../../utils/get-is-library-page'; import getIsListPage from '../../utils/get-is-list-page'; import Header from '../header-edit-mode'; import useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-entity-from-url'; @@ -66,9 +65,8 @@ export default function Layout() { const hubRef = useRef(); const { params } = useLocation(); - const isLibraryPage = getIsLibraryPage( params ); const isListPage = getIsListPage( params ); - const isEditorPage = ! isListPage && ! isLibraryPage; + const isEditorPage = ! isListPage; const { hasFixedToolbar, canvasMode, previousShortcut, nextShortcut } = useSelect( ( select ) => { const { getAllShortcutKeyCombinations } = select( @@ -95,14 +93,14 @@ export default function Layout() { const disableMotion = useReducedMotion(); const isMobileViewport = useViewportMatch( 'medium', '<' ); const showSidebar = - ( isMobileViewport && isEditorPage ) || + ( isMobileViewport && ! isListPage ) || ( ! isMobileViewport && ( canvasMode === 'view' || ! isEditorPage ) ); const showCanvas = ( isMobileViewport && isEditorPage && isEditing ) || ! isMobileViewport || ! isEditorPage; const isFullCanvas = - ( isMobileViewport && ! isEditorPage ) || ( isEditorPage && isEditing ); + ( isMobileViewport && isListPage ) || ( isEditorPage && isEditing ); const [ canvasResizer, canvasSize ] = useResizeObserver(); const [ fullResizer ] = useResizeObserver(); const [ isResizing ] = useState( false ); diff --git a/packages/edit-site/src/components/library/index.js b/packages/edit-site/src/components/library/index.js deleted file mode 100644 index 4e87f4a09cc95..0000000000000 --- a/packages/edit-site/src/components/library/index.js +++ /dev/null @@ -1,72 +0,0 @@ -/** - * WordPress dependencies - */ -import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor'; -import { useSelect } from '@wordpress/data'; -import { EditorSnackbars } from '@wordpress/editor'; -import { __ } from '@wordpress/i18n'; -import { InterfaceSkeleton } from '@wordpress/interface'; -import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts'; -import { getQueryArgs } from '@wordpress/url'; - -/** - * Internal dependencies - */ -import PatternsList from './patterns-list'; -import useLibrarySettings from './use-library-settings'; -import useTitle from '../routes/use-title'; -import { unlock } from '../../private-apis'; - -const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis ); - -const DEFAULT_TYPE = 'wp_template_part'; -const DEFAULT_CATEGORY = 'header'; - -export default function Library() { - const { categoryType, categoryId } = getQueryArgs( window.location.href ); - const type = categoryType || DEFAULT_TYPE; - const category = categoryId || DEFAULT_CATEGORY; - const settings = useLibrarySettings(); - - // Do we need shortcuts if we aren't displaying a header? - const { previousShortcut, nextShortcut } = useSelect( ( select ) => { - return { - previousShortcut: select( - keyboardShortcutsStore - ).getAllShortcutKeyCombinations( 'core/edit-site/previous-region' ), - nextShortcut: select( - keyboardShortcutsStore - ).getAllShortcutKeyCombinations( 'core/edit-site/next-region' ), - }; - }, [] ); - - useTitle( __( 'Library' ) ); - - // If we only have a single region, due to not including a header on this page, - // do we need the aria-label section? - const regionLabels = { body: __( 'Library - Content' ) }; - - return ( - } - content={ - // Wrap everything in a block editor provider. - // This ensures 'styles' that are needed for the previews are synced - // from the site editor store to the block editor store. - - - - } - shortcuts={ { - previous: previousShortcut, - next: nextShortcut, - } } - /> - ); -} diff --git a/packages/edit-site/src/components/library/grid-item.js b/packages/edit-site/src/components/page-library/grid-item.js similarity index 94% rename from packages/edit-site/src/components/library/grid-item.js rename to packages/edit-site/src/components/page-library/grid-item.js index 87eeb74ee6741..f3aed978d513b 100644 --- a/packages/edit-site/src/components/library/grid-item.js +++ b/packages/edit-site/src/components/page-library/grid-item.js @@ -1,3 +1,8 @@ +/** + * External dependencies + */ +import classnames from 'classnames'; + /** * WordPress dependencies */ @@ -75,6 +80,10 @@ const GridItem = ( { categoryId, composite, icon, item } ) => { canvas: 'edit', } ); + const previewClassNames = classnames( 'edit-site-library__preview', { + 'is-inactive': item.type === PATTERNS, + } ); + return (
{ aria-describedby={ item.description ? descriptionId : undefined } > { - const { supportsTemplatePartsMode } = - select( editSiteStore ).getSettings(); - return { - postType: select( coreStore ).getPostType( 'wp_template_part' ), - canCreate: ! supportsTemplatePartsMode, - }; - } ); +const DEFAULT_TYPE = 'wp_template_part'; +const DEFAULT_CATEGORY = 'header'; - const columns = [ - { - header: __( 'Template Part' ), - cell: ( templatePart ) => ( - - - - { decodeEntities( - templatePart.title?.rendered || - templatePart.slug - ) } - - - - ), - maxWidth: 400, - }, - { - header: __( 'Added by' ), - cell: ( templatePart ) => ( - - ), - }, - { - header: { __( 'Actions' ) }, - cell: ( templatePart ) => ( - - ), - }, - ]; +export default function PageLibrary() { + const { categoryType, categoryId } = getQueryArgs( window.location.href ); + const type = categoryType || DEFAULT_TYPE; + const category = categoryId || DEFAULT_CATEGORY; + const settings = useLibrarySettings(); + // Wrap everything in a block editor provider. + // This ensures 'styles' that are needed for the previews are synced + // from the site editor store to the block editor store. return ( - - ) - } - > - { templateParts && ( - - ) } - + + + + + ); } diff --git a/packages/edit-site/src/components/library/no-patterns.js b/packages/edit-site/src/components/page-library/no-patterns.js similarity index 100% rename from packages/edit-site/src/components/library/no-patterns.js rename to packages/edit-site/src/components/page-library/no-patterns.js diff --git a/packages/edit-site/src/components/library/patterns-list.js b/packages/edit-site/src/components/page-library/patterns-list.js similarity index 100% rename from packages/edit-site/src/components/library/patterns-list.js rename to packages/edit-site/src/components/page-library/patterns-list.js diff --git a/packages/edit-site/src/components/library/style.scss b/packages/edit-site/src/components/page-library/style.scss similarity index 87% rename from packages/edit-site/src/components/library/style.scss rename to packages/edit-site/src/components/page-library/style.scss index 3fc024688a442..e7193ae3f53d8 100644 --- a/packages/edit-site/src/components/library/style.scss +++ b/packages/edit-site/src/components/page-library/style.scss @@ -1,17 +1,8 @@ $library-color: #e0e0e0; -.edit-site-layout { - .edit-site-library { - width: 100%; - - .interface-interface-skeleton__editor { - .interface-interface-skeleton__body { - .interface-interface-skeleton__content { - border-radius: 0; - } - } - } - } +.edit-site-library { + background: $gray-900; + margin: 0; } .edit-site-library__section-header { @@ -43,6 +34,10 @@ $library-color: #e0e0e0; border-radius: $radius-block-ui * 4; cursor: pointer; overflow: hidden; + + &.is-inactive { + cursor: default; + } } .edit-site-library__footer, diff --git a/packages/edit-site/src/components/library/use-library-settings.js b/packages/edit-site/src/components/page-library/use-library-settings.js similarity index 96% rename from packages/edit-site/src/components/library/use-library-settings.js rename to packages/edit-site/src/components/page-library/use-library-settings.js index 58913437bcbc9..07811997b371d 100644 --- a/packages/edit-site/src/components/library/use-library-settings.js +++ b/packages/edit-site/src/components/page-library/use-library-settings.js @@ -8,7 +8,7 @@ import { useMemo } from '@wordpress/element'; /** * Internal dependencies */ -import { unlock } from '../../private-apis'; +import { unlock } from '../../lock-unlock'; import { store as editSiteStore } from '../../store'; export default function useLibrarySettings() { diff --git a/packages/edit-site/src/components/library/use-patterns.js b/packages/edit-site/src/components/page-library/use-patterns.js similarity index 99% rename from packages/edit-site/src/components/library/use-patterns.js rename to packages/edit-site/src/components/page-library/use-patterns.js index c9a74f66dc400..1b6862005075d 100644 --- a/packages/edit-site/src/components/library/use-patterns.js +++ b/packages/edit-site/src/components/page-library/use-patterns.js @@ -9,7 +9,7 @@ import { useMemo } from '@wordpress/element'; /** * Internal dependencies */ -import { unlock } from '../../private-apis'; +import { unlock } from '../../lock-unlock'; import { store as editSiteStore } from '../../store'; const EMPTY_PATTERN_LIST = []; diff --git a/packages/edit-site/src/components/page-main/index.js b/packages/edit-site/src/components/page-main/index.js index 03fd0072cc367..ebcf35dfb0c1f 100644 --- a/packages/edit-site/src/components/page-main/index.js +++ b/packages/edit-site/src/components/page-main/index.js @@ -19,7 +19,7 @@ export default function PageMain() { if ( path === '/wp_template/all' ) { return ; - } else if ( path === '/wp_template_part/all' ) { + } else if ( path === '/library' ) { return ; } diff --git a/packages/edit-site/src/components/page/index.js b/packages/edit-site/src/components/page/index.js index 6836456c8eb9b..c0c48ff65b056 100644 --- a/packages/edit-site/src/components/page/index.js +++ b/packages/edit-site/src/components/page/index.js @@ -1,12 +1,24 @@ /** - * Internal dependencies + * External dependencies */ +import classnames from 'classnames'; +/** + * Internal dependencies + */ import Header from './header'; -export default function Page( { title, subTitle, actions, children } ) { +export default function Page( { + title, + subTitle, + actions, + children, + className, +} ) { + const classes = classnames( 'edit-site-page', className ); + return ( -
+
{ title && (