@wordpress/edit-site 5.28.10 → 5.28.12
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/build/components/global-styles/font-library-modal/installed-fonts.js +1 -3
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +14 -5
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +1 -3
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +14 -5
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-style/style-rtl.css +2 -0
- package/build-style/style.css +2 -0
- package/package.json +10 -10
- package/src/components/global-styles/font-library-modal/installed-fonts.js +0 -1
- package/src/components/global-styles/font-library-modal/style.scss +6 -0
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +50 -35
|
@@ -121,9 +121,7 @@ function InstalledFonts() {
|
|
|
121
121
|
onClick: () => {
|
|
122
122
|
handleSetLibraryFontSelected(font);
|
|
123
123
|
}
|
|
124
|
-
}))), (0, _react.createElement)(_components.
|
|
125
|
-
margin: 16
|
|
126
|
-
})), (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
|
|
124
|
+
})))), (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
|
|
127
125
|
path: "/fontFamily"
|
|
128
126
|
}, (0, _react.createElement)(ConfirmDeleteDialog, {
|
|
129
127
|
font: libraryFontSelected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_lockUnlock","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","fontFamilies","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","customFontFamilyId","source","id","canUserDelete","useSelect","select","canUser","coreStore","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","slug","sprintf","__","useEffect","_react","createElement","className","__experimentalHStack","align","__experimentalSpacer","Spinner","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","Fragment","margin","Notice","status","type","onRemove","message","__experimentalText","map","default","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","isSmall","__experimentalHeading","level","size","name","__experimentalVStack","spacing","face","i","Button","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<HStack align=\"center\">\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t<Spinner />\n\t\t\t\t\t<Spacer />\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath={ libraryFontSelected ? '/fontFamily' : '/' }\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getFontFacesToDisplay( libraryFontSelected ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t>\n\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_lockUnlock","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","fontFamilies","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","customFontFamilyId","source","id","canUserDelete","useSelect","select","canUser","coreStore","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","slug","sprintf","__","useEffect","_react","createElement","className","__experimentalHStack","align","__experimentalSpacer","Spinner","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","Fragment","margin","Notice","status","type","onRemove","message","__experimentalText","map","default","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","isSmall","__experimentalHeading","level","size","name","__experimentalVStack","spacing","face","i","Button","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<HStack align=\"center\">\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t<Spinner />\n\t\t\t\t\t<Spacer />\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath={ libraryFontSelected ? '/fontFamily' : '/' }\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getFontFacesToDisplay( libraryFontSelected ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t>\n\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ function useResolveEditedEntityAndContext({
|
|
|
31
31
|
const {
|
|
32
32
|
hasLoadedAllDependencies,
|
|
33
33
|
homepageId,
|
|
34
|
+
postsPageId,
|
|
34
35
|
url,
|
|
35
36
|
frontPageTemplateId
|
|
36
37
|
} = (0, _data.useSelect)(select => {
|
|
@@ -44,16 +45,20 @@ function useResolveEditedEntityAndContext({
|
|
|
44
45
|
const templates = getEntityRecords('postType', _constants.TEMPLATE_POST_TYPE, {
|
|
45
46
|
per_page: -1
|
|
46
47
|
});
|
|
47
|
-
|
|
48
|
+
const _homepageId = siteData?.show_on_front === 'page' && ['number', 'string'].includes(typeof siteData.page_on_front) && !!+siteData.page_on_front // We also need to check if it's not zero(`0`).
|
|
49
|
+
? siteData.page_on_front.toString() : null;
|
|
50
|
+
const _postsPageId = siteData?.show_on_front === 'page' && ['number', 'string'].includes(typeof siteData.page_for_posts) ? siteData.page_for_posts.toString() : null;
|
|
51
|
+
let _frontPageTemplateId;
|
|
48
52
|
if (templates) {
|
|
49
53
|
const frontPageTemplate = templates.find(t => t.slug === 'front-page');
|
|
50
|
-
|
|
54
|
+
_frontPageTemplateId = frontPageTemplate ? frontPageTemplate.id : false;
|
|
51
55
|
}
|
|
52
56
|
return {
|
|
53
57
|
hasLoadedAllDependencies: !!base && !!siteData,
|
|
54
|
-
homepageId:
|
|
58
|
+
homepageId: _homepageId,
|
|
59
|
+
postsPageId: _postsPageId,
|
|
55
60
|
url: base?.home,
|
|
56
|
-
frontPageTemplateId:
|
|
61
|
+
frontPageTemplateId: _frontPageTemplateId
|
|
57
62
|
};
|
|
58
63
|
}, []);
|
|
59
64
|
|
|
@@ -91,6 +96,10 @@ function useResolveEditedEntityAndContext({
|
|
|
91
96
|
if (!editedEntity) {
|
|
92
97
|
return undefined;
|
|
93
98
|
}
|
|
99
|
+
// Check if the current page is the posts page.
|
|
100
|
+
if (postTypeToResolve === 'page' && postsPageId === postIdToResolve) {
|
|
101
|
+
return __experimentalGetTemplateForLink(editedEntity.link)?.id;
|
|
102
|
+
}
|
|
94
103
|
// First see if the post/page has an assigned template and fetch it.
|
|
95
104
|
const currentTemplateSlug = editedEntity.template;
|
|
96
105
|
if (currentTemplateSlug) {
|
|
@@ -142,7 +151,7 @@ function useResolveEditedEntityAndContext({
|
|
|
142
151
|
const template = __experimentalGetTemplateForLink(url);
|
|
143
152
|
return template?.id;
|
|
144
153
|
}
|
|
145
|
-
}, [homepageId, hasLoadedAllDependencies, url, postId, postType, path, frontPageTemplateId]);
|
|
154
|
+
}, [homepageId, postsPageId, hasLoadedAllDependencies, url, postId, postType, path, frontPageTemplateId]);
|
|
146
155
|
const context = (0, _element.useMemo)(() => {
|
|
147
156
|
if (postTypesWithoutParentTemplate.includes(postType)) {
|
|
148
157
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_coreData","_router","_store","_lockUnlock","_constants","useLocation","unlock","routerPrivateApis","postTypesWithoutParentTemplate","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","user","useResolveEditedEntityAndContext","path","postId","postType","hasLoadedAllDependencies","homepageId","url","frontPageTemplateId","useSelect","select","getSite","getUnstableBase","getEntityRecords","coreDataStore","siteData","base","templates","per_page","_frontPateTemplateId","frontPageTemplate","find","t","slug","id","show_on_front","includes","page_on_front","toString","home","resolvedTemplateId","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","template","currentTemplate","slugToCheck","context","useMemo","isReady","useInitEditedEntityFromURL","params","setEditedEntity","useDispatch","editSiteStore","useEffect"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { path, postId, postType } ) {\n\tconst { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst siteData = getSite();\n\t\t\tconst base = getUnstableBase();\n\t\t\tconst templates = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t);\n\t\t\tlet _frontPateTemplateId;\n\t\t\tif ( templates ) {\n\t\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t\t);\n\t\t\t\t_frontPateTemplateId = frontPageTemplate\n\t\t\t\t\t? frontPageTemplate.id\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\t\thomepageId:\n\t\t\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t\t\t[ 'number', 'string' ].includes(\n\t\t\t\t\t\ttypeof siteData.page_on_front\n\t\t\t\t\t)\n\t\t\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t\t\t: null,\n\t\t\t\turl: base?.home,\n\t\t\t\tfrontPageTemplateId: _frontPateTemplateId,\n\t\t\t};\n\t\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\tlet slugToCheck;\n\t\t\t\t// In `draft` status we might not have a slug available, so we use the `single`\n\t\t\t\t// post type templates slug(ex page, single-post, single-product etc..).\n\t\t\t\t// Pages do not need the `single` prefix in the slug to be prioritized\n\t\t\t\t// through template hierarchy.\n\t\t\t\tif ( editedEntity.slug ) {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? `${ postTypeToResolve }-${ editedEntity.slug }`\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }-${ editedEntity.slug }`;\n\t\t\t\t} else {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? 'page'\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }`;\n\t\t\t\t}\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: slugToCheck,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// Some URLs in list views are different\n\t\t\tif ( path === '/pages' && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tpath,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\t// Some URLs in list views are different\n\t\tif ( path === '/pages' && postId ) {\n\t\t\treturn { postType: 'page', postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId, path ] );\n\n\tif ( path === '/wp_template/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template', postId, context };\n\t}\n\n\tif ( path === '/wp_template_part/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template_part', postId, context };\n\t}\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAbA;AACA;AACA;;AAMA;AACA;AACA;;AAUA,MAAM;EAAEO;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEnD,MAAMC,8BAA8B,GAAG,CACtCC,6BAAkB,EAClBC,kCAAuB,EACvBC,+BAAoB,EACpBC,wBAAa,CAACC,IAAI,CAClB;AAED,SAASC,gCAAgCA,CAAE;EAAEC,IAAI;EAAEC,MAAM;EAAEC;AAAS,CAAC,EAAG;EACvE,MAAM;IAAEC,wBAAwB;IAAEC,UAAU;IAAEC,GAAG;IAAEC;EAAoB,CAAC,GACvE,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxB,MAAM;MAAEC,OAAO;MAAEC,eAAe;MAAEC;IAAiB,CAAC,GACnDH,MAAM,CAAEI,eAAc,CAAC;IACxB,MAAMC,QAAQ,GAAGJ,OAAO,CAAC,CAAC;IAC1B,MAAMK,IAAI,GAAGJ,eAAe,CAAC,CAAC;IAC9B,MAAMK,SAAS,GAAGJ,gBAAgB,CACjC,UAAU,EACVjB,6BAAkB,EAClB;MACCsB,QAAQ,EAAE,CAAC;IACZ,CACD,CAAC;IACD,IAAIC,oBAAoB;IACxB,IAAKF,SAAS,EAAG;MAChB,MAAMG,iBAAiB,GAAGH,SAAS,CAACI,IAAI,CACrCC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAK,YACrB,CAAC;MACDJ,oBAAoB,GAAGC,iBAAiB,GACrCA,iBAAiB,CAACI,EAAE,GACpB,KAAK;IACT;IAEA,OAAO;MACNnB,wBAAwB,EAAE,CAAC,CAAEW,IAAI,IAAI,CAAC,CAAED,QAAQ;MAChDT,UAAU,EACTS,QAAQ,EAAEU,aAAa,KAAK,MAAM,IAClC,CAAE,QAAQ,EAAE,QAAQ,CAAE,CAACC,QAAQ,CAC9B,OAAOX,QAAQ,CAACY,aACjB,CAAC,GACEZ,QAAQ,CAACY,aAAa,CAACC,QAAQ,CAAC,CAAC,GACjC,IAAI;MACRrB,GAAG,EAAES,IAAI,EAAEa,IAAI;MACfrB,mBAAmB,EAAEW;IACtB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;;EAER;AACD;AACA;AACA;AACA;AACA;EACC,MAAMW,kBAAkB,GAAG,IAAArB,eAAS,EACjCC,MAAM,IAAM;IACb;IACA;IACA,IAAKf,8BAA8B,CAAC+B,QAAQ,CAAEtB,QAAS,CAAC,EAAG;MAC1D,OAAO2B,SAAS;IACjB;IAEA,MAAM;MACLC,qBAAqB;MACrBnB,gBAAgB;MAChBoB,oBAAoB;MACpBC;IACD,CAAC,GAAGxB,MAAM,CAAEI,eAAc,CAAC;IAE3B,SAASqB,+BAA+BA,CACvCC,iBAAiB,EACjBC,eAAe,EACd;MACD;MACA,IACCD,iBAAiB,KAAK,MAAM,IAC5B9B,UAAU,KAAK+B,eAAe,EAC7B;QACD;QACA;QACA,IAAK7B,mBAAmB,KAAKuB,SAAS,EAAG;UACxC,OAAOA,SAAS;QACjB;QAEA,IAAK,CAAC,CAAEvB,mBAAmB,EAAG;UAC7B,OAAOA,mBAAmB;QAC3B;MACD;MAEA,MAAM8B,YAAY,GAAGN,qBAAqB,CACzC,UAAU,EACVI,iBAAiB,EACjBC,eACD,CAAC;MACD,IAAK,CAAEC,YAAY,EAAG;QACrB,OAAOP,SAAS;MACjB;MACA;MACA,MAAMQ,mBAAmB,GAAGD,YAAY,CAACE,QAAQ;MACjD,IAAKD,mBAAmB,EAAG;QAC1B,MAAME,eAAe,GAAG5B,gBAAgB,CACvC,UAAU,EACVjB,6BAAkB,EAClB;UACCsB,QAAQ,EAAE,CAAC;QACZ,CACD,CAAC,EAAEG,IAAI,CAAE,CAAE;UAAEE;QAAK,CAAC,KAAMA,IAAI,KAAKgB,mBAAoB,CAAC;QACvD,IAAKE,eAAe,EAAG;UACtB,OAAOA,eAAe,CAACjB,EAAE;QAC1B;MACD;MACA;MACA,IAAIkB,WAAW;MACf;MACA;MACA;MACA;MACA,IAAKJ,YAAY,CAACf,IAAI,EAAG;QACxBmB,WAAW,GACVN,iBAAiB,KAAK,MAAM,GACxB,GAAGA,iBAAmB,IAAIE,YAAY,CAACf,IAAM,EAAC,GAC9C,UAAUa,iBAAmB,IAAIE,YAAY,CAACf,IAAM,EAAC;MAC3D,CAAC,MAAM;QACNmB,WAAW,GACVN,iBAAiB,KAAK,MAAM,GACzB,MAAM,GACL,UAAUA,iBAAmB,EAAC;MACpC;MACA,OAAOH,oBAAoB,CAAE;QAC5BV,IAAI,EAAEmB;MACP,CAAE,CAAC;IACJ;IAEA,IAAK,CAAErC,wBAAwB,EAAG;MACjC,OAAO0B,SAAS;IACjB;;IAEA;IACA,IAAK3B,QAAQ,IAAID,MAAM,EAAG;MACzB,OAAOgC,+BAA+B,CAAE/B,QAAQ,EAAED,MAAO,CAAC;IAC3D;;IAEA;IACA,IAAKD,IAAI,KAAK,QAAQ,IAAIC,MAAM,EAAG;MAClC,OAAOgC,+BAA+B,CAAE,MAAM,EAAEhC,MAAO,CAAC;IACzD;;IAEA;IACA,IAAKG,UAAU,EAAG;MACjB,OAAO6B,+BAA+B,CAAE,MAAM,EAAE7B,UAAW,CAAC;IAC7D;;IAEA;IACA,IAAKC,GAAG,EAAG;MACV,MAAMiC,QAAQ,GAAGN,gCAAgC,CAAE3B,GAAI,CAAC;MACxD,OAAOiC,QAAQ,EAAEhB,EAAE;IACpB;EACD,CAAC,EACD,CACClB,UAAU,EACVD,wBAAwB,EACxBE,GAAG,EACHJ,MAAM,EACNC,QAAQ,EACRF,IAAI,EACJM,mBAAmB,CAErB,CAAC;EAED,MAAMmC,OAAO,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC9B,IAAKjD,8BAA8B,CAAC+B,QAAQ,CAAEtB,QAAS,CAAC,EAAG;MAC1D,OAAO,CAAC,CAAC;IACV;IAEA,IAAKA,QAAQ,IAAID,MAAM,EAAG;MACzB,OAAO;QAAEC,QAAQ;QAAED;MAAO,CAAC;IAC5B;;IAEA;IACA,IAAKD,IAAI,KAAK,QAAQ,IAAIC,MAAM,EAAG;MAClC,OAAO;QAAEC,QAAQ,EAAE,MAAM;QAAED;MAAO,CAAC;IACpC;IAEA,IAAKG,UAAU,EAAG;MACjB,OAAO;QAAEF,QAAQ,EAAE,MAAM;QAAED,MAAM,EAAEG;MAAW,CAAC;IAChD;IAEA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAEA,UAAU,EAAEF,QAAQ,EAAED,MAAM,EAAED,IAAI,CAAG,CAAC;EAE3C,IAAKA,IAAI,KAAK,kBAAkB,IAAIC,MAAM,EAAG;IAC5C,OAAO;MAAE0C,OAAO,EAAE,IAAI;MAAEzC,QAAQ,EAAE,aAAa;MAAED,MAAM;MAAEwC;IAAQ,CAAC;EACnE;EAEA,IAAKzC,IAAI,KAAK,uBAAuB,IAAIC,MAAM,EAAG;IACjD,OAAO;MAAE0C,OAAO,EAAE,IAAI;MAAEzC,QAAQ,EAAE,kBAAkB;MAAED,MAAM;MAAEwC;IAAQ,CAAC;EACxE;EAEA,IAAKhD,8BAA8B,CAAC+B,QAAQ,CAAEtB,QAAS,CAAC,EAAG;IAC1D,OAAO;MAAEyC,OAAO,EAAE,IAAI;MAAEzC,QAAQ;MAAED,MAAM;MAAEwC;IAAQ,CAAC;EACpD;EAEA,IAAKtC,wBAAwB,EAAG;IAC/B,OAAO;MACNwC,OAAO,EAAEf,kBAAkB,KAAKC,SAAS;MACzC3B,QAAQ,EAAER,6BAAkB;MAC5BO,MAAM,EAAE2B,kBAAkB;MAC1Ba;IACD,CAAC;EACF;EAEA,OAAO;IAAEE,OAAO,EAAE;EAAM,CAAC;AAC1B;AAEe,SAASC,0BAA0BA,CAAA,EAAG;EACpD,MAAM;IAAEC,MAAM,GAAG,CAAC;EAAE,CAAC,GAAGvD,WAAW,CAAC,CAAC;EACrC,MAAM;IAAEY,QAAQ;IAAED,MAAM;IAAEwC,OAAO;IAAEE;EAAQ,CAAC,GAC3C5C,gCAAgC,CAAE8C,MAAO,CAAC;EAE3C,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAc,CAAC;EAExD,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAKN,OAAO,EAAG;MACdG,eAAe,CAAE5C,QAAQ,EAAED,MAAM,EAAEwC,OAAQ,CAAC;IAC7C;EACD,CAAC,EAAE,CAAEE,OAAO,EAAEzC,QAAQ,EAAED,MAAM,EAAEwC,OAAO,EAAEK,eAAe,CAAG,CAAC;AAC7D"}
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_coreData","_router","_store","_lockUnlock","_constants","useLocation","unlock","routerPrivateApis","postTypesWithoutParentTemplate","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","user","useResolveEditedEntityAndContext","path","postId","postType","hasLoadedAllDependencies","homepageId","postsPageId","url","frontPageTemplateId","useSelect","select","getSite","getUnstableBase","getEntityRecords","coreDataStore","siteData","base","templates","per_page","_homepageId","show_on_front","includes","page_on_front","toString","_postsPageId","page_for_posts","_frontPageTemplateId","frontPageTemplate","find","t","slug","id","home","resolvedTemplateId","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","link","currentTemplateSlug","template","currentTemplate","slugToCheck","context","useMemo","isReady","useInitEditedEntityFromURL","params","setEditedEntity","useDispatch","editSiteStore","useEffect"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { path, postId, postType } ) {\n\tconst {\n\t\thasLoadedAllDependencies,\n\t\thomepageId,\n\t\tpostsPageId,\n\t\turl,\n\t\tfrontPageTemplateId,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\tselect( coreDataStore );\n\t\tconst siteData = getSite();\n\t\tconst base = getUnstableBase();\n\t\tconst templates = getEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\t\tconst _homepageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_on_front ) &&\n\t\t\t!! +siteData.page_on_front // We also need to check if it's not zero(`0`).\n\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t: null;\n\t\tconst _postsPageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_for_posts )\n\t\t\t\t? siteData.page_for_posts.toString()\n\t\t\t\t: null;\n\t\tlet _frontPageTemplateId;\n\t\tif ( templates ) {\n\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t);\n\t\t\t_frontPageTemplateId = frontPageTemplate\n\t\t\t\t? frontPageTemplate.id\n\t\t\t\t: false;\n\t\t}\n\t\treturn {\n\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\thomepageId: _homepageId,\n\t\t\tpostsPageId: _postsPageId,\n\t\t\turl: base?.home,\n\t\t\tfrontPageTemplateId: _frontPageTemplateId,\n\t\t};\n\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// Check if the current page is the posts page.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\tpostsPageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\treturn __experimentalGetTemplateForLink( editedEntity.link )\n\t\t\t\t\t\t?.id;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\tlet slugToCheck;\n\t\t\t\t// In `draft` status we might not have a slug available, so we use the `single`\n\t\t\t\t// post type templates slug(ex page, single-post, single-product etc..).\n\t\t\t\t// Pages do not need the `single` prefix in the slug to be prioritized\n\t\t\t\t// through template hierarchy.\n\t\t\t\tif ( editedEntity.slug ) {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? `${ postTypeToResolve }-${ editedEntity.slug }`\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }-${ editedEntity.slug }`;\n\t\t\t\t} else {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? 'page'\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }`;\n\t\t\t\t}\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: slugToCheck,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// Some URLs in list views are different\n\t\t\tif ( path === '/pages' && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\tpostsPageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tpath,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\t// Some URLs in list views are different\n\t\tif ( path === '/pages' && postId ) {\n\t\t\treturn { postType: 'page', postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId, path ] );\n\n\tif ( path === '/wp_template/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template', postId, context };\n\t}\n\n\tif ( path === '/wp_template_part/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template_part', postId, context };\n\t}\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],"mappings":"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"}
|
|
@@ -113,9 +113,7 @@ function InstalledFonts() {
|
|
|
113
113
|
onClick: () => {
|
|
114
114
|
handleSetLibraryFontSelected(font);
|
|
115
115
|
}
|
|
116
|
-
}))), createElement(
|
|
117
|
-
margin: 16
|
|
118
|
-
})), createElement(NavigatorScreen, {
|
|
116
|
+
})))), createElement(NavigatorScreen, {
|
|
119
117
|
path: "/fontFamily"
|
|
120
118
|
}, createElement(ConfirmDeleteDialog, {
|
|
121
119
|
font: libraryFontSelected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","Spinner","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","useEffect","useState","__","sprintf","chevronLeft","unlock","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","fontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","customFontFamilyId","source","id","canUserDelete","select","canUser","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","slug","createElement","className","align","initialPath","path","Fragment","margin","status","type","onRemove","message","map","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","isSmall","level","size","name","spacing","face","i","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<HStack align=\"center\">\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t<Spinner />\n\t\t\t\t\t<Spacer />\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath={ libraryFontSelected ? '/fontFamily' : '/' }\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getFontFacesToDisplay( libraryFontSelected ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t>\n\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","Spinner","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","useEffect","useState","__","sprintf","chevronLeft","unlock","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","fontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","customFontFamilyId","source","id","canUserDelete","select","canUser","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","slug","createElement","className","align","initialPath","path","Fragment","margin","status","type","onRemove","message","map","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","isSmall","level","size","name","spacing","face","i","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<HStack align=\"center\">\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t<Spinner />\n\t\t\t\t\t<Spacer />\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath={ libraryFontSelected ? '/fontFamily' : '/' }\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getFontFacesToDisplay( libraryFontSelected ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t>\n\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ function useResolveEditedEntityAndContext({
|
|
|
24
24
|
const {
|
|
25
25
|
hasLoadedAllDependencies,
|
|
26
26
|
homepageId,
|
|
27
|
+
postsPageId,
|
|
27
28
|
url,
|
|
28
29
|
frontPageTemplateId
|
|
29
30
|
} = useSelect(select => {
|
|
@@ -37,16 +38,20 @@ function useResolveEditedEntityAndContext({
|
|
|
37
38
|
const templates = getEntityRecords('postType', TEMPLATE_POST_TYPE, {
|
|
38
39
|
per_page: -1
|
|
39
40
|
});
|
|
40
|
-
|
|
41
|
+
const _homepageId = siteData?.show_on_front === 'page' && ['number', 'string'].includes(typeof siteData.page_on_front) && !!+siteData.page_on_front // We also need to check if it's not zero(`0`).
|
|
42
|
+
? siteData.page_on_front.toString() : null;
|
|
43
|
+
const _postsPageId = siteData?.show_on_front === 'page' && ['number', 'string'].includes(typeof siteData.page_for_posts) ? siteData.page_for_posts.toString() : null;
|
|
44
|
+
let _frontPageTemplateId;
|
|
41
45
|
if (templates) {
|
|
42
46
|
const frontPageTemplate = templates.find(t => t.slug === 'front-page');
|
|
43
|
-
|
|
47
|
+
_frontPageTemplateId = frontPageTemplate ? frontPageTemplate.id : false;
|
|
44
48
|
}
|
|
45
49
|
return {
|
|
46
50
|
hasLoadedAllDependencies: !!base && !!siteData,
|
|
47
|
-
homepageId:
|
|
51
|
+
homepageId: _homepageId,
|
|
52
|
+
postsPageId: _postsPageId,
|
|
48
53
|
url: base?.home,
|
|
49
|
-
frontPageTemplateId:
|
|
54
|
+
frontPageTemplateId: _frontPageTemplateId
|
|
50
55
|
};
|
|
51
56
|
}, []);
|
|
52
57
|
|
|
@@ -84,6 +89,10 @@ function useResolveEditedEntityAndContext({
|
|
|
84
89
|
if (!editedEntity) {
|
|
85
90
|
return undefined;
|
|
86
91
|
}
|
|
92
|
+
// Check if the current page is the posts page.
|
|
93
|
+
if (postTypeToResolve === 'page' && postsPageId === postIdToResolve) {
|
|
94
|
+
return __experimentalGetTemplateForLink(editedEntity.link)?.id;
|
|
95
|
+
}
|
|
87
96
|
// First see if the post/page has an assigned template and fetch it.
|
|
88
97
|
const currentTemplateSlug = editedEntity.template;
|
|
89
98
|
if (currentTemplateSlug) {
|
|
@@ -135,7 +144,7 @@ function useResolveEditedEntityAndContext({
|
|
|
135
144
|
const template = __experimentalGetTemplateForLink(url);
|
|
136
145
|
return template?.id;
|
|
137
146
|
}
|
|
138
|
-
}, [homepageId, hasLoadedAllDependencies, url, postId, postType, path, frontPageTemplateId]);
|
|
147
|
+
}, [homepageId, postsPageId, hasLoadedAllDependencies, url, postId, postType, path, frontPageTemplateId]);
|
|
139
148
|
const context = useMemo(() => {
|
|
140
149
|
if (postTypesWithoutParentTemplate.includes(postType)) {
|
|
141
150
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useSelect","useDispatch","store","coreDataStore","privateApis","routerPrivateApis","editSiteStore","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","useLocation","postTypesWithoutParentTemplate","user","useResolveEditedEntityAndContext","path","postId","postType","hasLoadedAllDependencies","homepageId","url","frontPageTemplateId","select","getSite","getUnstableBase","getEntityRecords","siteData","base","templates","per_page","_frontPateTemplateId","frontPageTemplate","find","t","slug","id","show_on_front","includes","page_on_front","toString","home","resolvedTemplateId","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","template","currentTemplate","slugToCheck","context","isReady","useInitEditedEntityFromURL","params","setEditedEntity"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { path, postId, postType } ) {\n\tconst { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst siteData = getSite();\n\t\t\tconst base = getUnstableBase();\n\t\t\tconst templates = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t);\n\t\t\tlet _frontPateTemplateId;\n\t\t\tif ( templates ) {\n\t\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t\t);\n\t\t\t\t_frontPateTemplateId = frontPageTemplate\n\t\t\t\t\t? frontPageTemplate.id\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\t\thomepageId:\n\t\t\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t\t\t[ 'number', 'string' ].includes(\n\t\t\t\t\t\ttypeof siteData.page_on_front\n\t\t\t\t\t)\n\t\t\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t\t\t: null,\n\t\t\t\turl: base?.home,\n\t\t\t\tfrontPageTemplateId: _frontPateTemplateId,\n\t\t\t};\n\t\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\tlet slugToCheck;\n\t\t\t\t// In `draft` status we might not have a slug available, so we use the `single`\n\t\t\t\t// post type templates slug(ex page, single-post, single-product etc..).\n\t\t\t\t// Pages do not need the `single` prefix in the slug to be prioritized\n\t\t\t\t// through template hierarchy.\n\t\t\t\tif ( editedEntity.slug ) {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? `${ postTypeToResolve }-${ editedEntity.slug }`\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }-${ editedEntity.slug }`;\n\t\t\t\t} else {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? 'page'\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }`;\n\t\t\t\t}\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: slugToCheck,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// Some URLs in list views are different\n\t\t\tif ( path === '/pages' && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tpath,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\t// Some URLs in list views are different\n\t\tif ( path === '/pages' && postId ) {\n\t\t\treturn { postType: 'page', postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId, path ] );\n\n\tif ( path === '/wp_template/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template', postId, context };\n\t}\n\n\tif ( path === '/wp_template_part/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template_part', postId, context };\n\t}\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useSelect","useDispatch","store","coreDataStore","privateApis","routerPrivateApis","editSiteStore","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","useLocation","postTypesWithoutParentTemplate","user","useResolveEditedEntityAndContext","path","postId","postType","hasLoadedAllDependencies","homepageId","postsPageId","url","frontPageTemplateId","select","getSite","getUnstableBase","getEntityRecords","siteData","base","templates","per_page","_homepageId","show_on_front","includes","page_on_front","toString","_postsPageId","page_for_posts","_frontPageTemplateId","frontPageTemplate","find","t","slug","id","home","resolvedTemplateId","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","link","currentTemplateSlug","template","currentTemplate","slugToCheck","context","isReady","useInitEditedEntityFromURL","params","setEditedEntity"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { path, postId, postType } ) {\n\tconst {\n\t\thasLoadedAllDependencies,\n\t\thomepageId,\n\t\tpostsPageId,\n\t\turl,\n\t\tfrontPageTemplateId,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\tselect( coreDataStore );\n\t\tconst siteData = getSite();\n\t\tconst base = getUnstableBase();\n\t\tconst templates = getEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\t\tconst _homepageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_on_front ) &&\n\t\t\t!! +siteData.page_on_front // We also need to check if it's not zero(`0`).\n\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t: null;\n\t\tconst _postsPageId =\n\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t[ 'number', 'string' ].includes( typeof siteData.page_for_posts )\n\t\t\t\t? siteData.page_for_posts.toString()\n\t\t\t\t: null;\n\t\tlet _frontPageTemplateId;\n\t\tif ( templates ) {\n\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t);\n\t\t\t_frontPageTemplateId = frontPageTemplate\n\t\t\t\t? frontPageTemplate.id\n\t\t\t\t: false;\n\t\t}\n\t\treturn {\n\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\thomepageId: _homepageId,\n\t\t\tpostsPageId: _postsPageId,\n\t\t\turl: base?.home,\n\t\t\tfrontPageTemplateId: _frontPageTemplateId,\n\t\t};\n\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// Check if the current page is the posts page.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\tpostsPageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\treturn __experimentalGetTemplateForLink( editedEntity.link )\n\t\t\t\t\t\t?.id;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\tlet slugToCheck;\n\t\t\t\t// In `draft` status we might not have a slug available, so we use the `single`\n\t\t\t\t// post type templates slug(ex page, single-post, single-product etc..).\n\t\t\t\t// Pages do not need the `single` prefix in the slug to be prioritized\n\t\t\t\t// through template hierarchy.\n\t\t\t\tif ( editedEntity.slug ) {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? `${ postTypeToResolve }-${ editedEntity.slug }`\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }-${ editedEntity.slug }`;\n\t\t\t\t} else {\n\t\t\t\t\tslugToCheck =\n\t\t\t\t\t\tpostTypeToResolve === 'page'\n\t\t\t\t\t\t\t? 'page'\n\t\t\t\t\t\t\t: `single-${ postTypeToResolve }`;\n\t\t\t\t}\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: slugToCheck,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// Some URLs in list views are different\n\t\t\tif ( path === '/pages' && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\tpostsPageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tpath,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\t// Some URLs in list views are different\n\t\tif ( path === '/pages' && postId ) {\n\t\t\treturn { postType: 'page', postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId, path ] );\n\n\tif ( path === '/wp_template/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template', postId, context };\n\t}\n\n\tif ( path === '/wp_template_part/all' && postId ) {\n\t\treturn { isReady: true, postType: 'wp_template_part', postId, context };\n\t}\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACvD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,aAAa,QAAQ,sBAAsB;AAC7D,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,aAAa;AACpD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SACCC,kBAAkB,EAClBC,uBAAuB,EACvBC,oBAAoB,EACpBC,aAAa,QACP,uBAAuB;AAE9B,MAAM;EAAEC;AAAY,CAAC,GAAGL,MAAM,CAAEF,iBAAkB,CAAC;AAEnD,MAAMQ,8BAA8B,GAAG,CACtCL,kBAAkB,EAClBC,uBAAuB,EACvBC,oBAAoB,EACpBC,aAAa,CAACG,IAAI,CAClB;AAED,SAASC,gCAAgCA,CAAE;EAAEC,IAAI;EAAEC,MAAM;EAAEC;AAAS,CAAC,EAAG;EACvE,MAAM;IACLC,wBAAwB;IACxBC,UAAU;IACVC,WAAW;IACXC,GAAG;IACHC;EACD,CAAC,GAAGvB,SAAS,CAAIwB,MAAM,IAAM;IAC5B,MAAM;MAAEC,OAAO;MAAEC,eAAe;MAAEC;IAAiB,CAAC,GACnDH,MAAM,CAAErB,aAAc,CAAC;IACxB,MAAMyB,QAAQ,GAAGH,OAAO,CAAC,CAAC;IAC1B,MAAMI,IAAI,GAAGH,eAAe,CAAC,CAAC;IAC9B,MAAMI,SAAS,GAAGH,gBAAgB,CAAE,UAAU,EAAEnB,kBAAkB,EAAE;MACnEuB,QAAQ,EAAE,CAAC;IACZ,CAAE,CAAC;IACH,MAAMC,WAAW,GAChBJ,QAAQ,EAAEK,aAAa,KAAK,MAAM,IAClC,CAAE,QAAQ,EAAE,QAAQ,CAAE,CAACC,QAAQ,CAAE,OAAON,QAAQ,CAACO,aAAc,CAAC,IAChE,CAAC,CAAE,CAACP,QAAQ,CAACO,aAAa,CAAC;IAAA,EACxBP,QAAQ,CAACO,aAAa,CAACC,QAAQ,CAAC,CAAC,GACjC,IAAI;IACR,MAAMC,YAAY,GACjBT,QAAQ,EAAEK,aAAa,KAAK,MAAM,IAClC,CAAE,QAAQ,EAAE,QAAQ,CAAE,CAACC,QAAQ,CAAE,OAAON,QAAQ,CAACU,cAAe,CAAC,GAC9DV,QAAQ,CAACU,cAAc,CAACF,QAAQ,CAAC,CAAC,GAClC,IAAI;IACR,IAAIG,oBAAoB;IACxB,IAAKT,SAAS,EAAG;MAChB,MAAMU,iBAAiB,GAAGV,SAAS,CAACW,IAAI,CACrCC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAK,YACrB,CAAC;MACDJ,oBAAoB,GAAGC,iBAAiB,GACrCA,iBAAiB,CAACI,EAAE,GACpB,KAAK;IACT;IACA,OAAO;MACNzB,wBAAwB,EAAE,CAAC,CAAEU,IAAI,IAAI,CAAC,CAAED,QAAQ;MAChDR,UAAU,EAAEY,WAAW;MACvBX,WAAW,EAAEgB,YAAY;MACzBf,GAAG,EAAEO,IAAI,EAAEgB,IAAI;MACftB,mBAAmB,EAAEgB;IACtB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;;EAEP;AACD;AACA;AACA;AACA;AACA;EACC,MAAMO,kBAAkB,GAAG9C,SAAS,CACjCwB,MAAM,IAAM;IACb;IACA;IACA,IAAKX,8BAA8B,CAACqB,QAAQ,CAAEhB,QAAS,CAAC,EAAG;MAC1D,OAAO6B,SAAS;IACjB;IAEA,MAAM;MACLC,qBAAqB;MACrBrB,gBAAgB;MAChBsB,oBAAoB;MACpBC;IACD,CAAC,GAAG1B,MAAM,CAAErB,aAAc,CAAC;IAE3B,SAASgD,+BAA+BA,CACvCC,iBAAiB,EACjBC,eAAe,EACd;MACD;MACA,IACCD,iBAAiB,KAAK,MAAM,IAC5BhC,UAAU,KAAKiC,eAAe,EAC7B;QACD;QACA;QACA,IAAK9B,mBAAmB,KAAKwB,SAAS,EAAG;UACxC,OAAOA,SAAS;QACjB;QAEA,IAAK,CAAC,CAAExB,mBAAmB,EAAG;UAC7B,OAAOA,mBAAmB;QAC3B;MACD;MAEA,MAAM+B,YAAY,GAAGN,qBAAqB,CACzC,UAAU,EACVI,iBAAiB,EACjBC,eACD,CAAC;MACD,IAAK,CAAEC,YAAY,EAAG;QACrB,OAAOP,SAAS;MACjB;MACA;MACA,IACCK,iBAAiB,KAAK,MAAM,IAC5B/B,WAAW,KAAKgC,eAAe,EAC9B;QACD,OAAOH,gCAAgC,CAAEI,YAAY,CAACC,IAAK,CAAC,EACzDX,EAAE;MACN;MACA;MACA,MAAMY,mBAAmB,GAAGF,YAAY,CAACG,QAAQ;MACjD,IAAKD,mBAAmB,EAAG;QAC1B,MAAME,eAAe,GAAG/B,gBAAgB,CACvC,UAAU,EACVnB,kBAAkB,EAClB;UACCuB,QAAQ,EAAE,CAAC;QACZ,CACD,CAAC,EAAEU,IAAI,CAAE,CAAE;UAAEE;QAAK,CAAC,KAAMA,IAAI,KAAKa,mBAAoB,CAAC;QACvD,IAAKE,eAAe,EAAG;UACtB,OAAOA,eAAe,CAACd,EAAE;QAC1B;MACD;MACA;MACA,IAAIe,WAAW;MACf;MACA;MACA;MACA;MACA,IAAKL,YAAY,CAACX,IAAI,EAAG;QACxBgB,WAAW,GACVP,iBAAiB,KAAK,MAAM,GACxB,GAAGA,iBAAmB,IAAIE,YAAY,CAACX,IAAM,EAAC,GAC9C,UAAUS,iBAAmB,IAAIE,YAAY,CAACX,IAAM,EAAC;MAC3D,CAAC,MAAM;QACNgB,WAAW,GACVP,iBAAiB,KAAK,MAAM,GACzB,MAAM,GACL,UAAUA,iBAAmB,EAAC;MACpC;MACA,OAAOH,oBAAoB,CAAE;QAC5BN,IAAI,EAAEgB;MACP,CAAE,CAAC;IACJ;IAEA,IAAK,CAAExC,wBAAwB,EAAG;MACjC,OAAO4B,SAAS;IACjB;;IAEA;IACA,IAAK7B,QAAQ,IAAID,MAAM,EAAG;MACzB,OAAOkC,+BAA+B,CAAEjC,QAAQ,EAAED,MAAO,CAAC;IAC3D;;IAEA;IACA,IAAKD,IAAI,KAAK,QAAQ,IAAIC,MAAM,EAAG;MAClC,OAAOkC,+BAA+B,CAAE,MAAM,EAAElC,MAAO,CAAC;IACzD;;IAEA;IACA,IAAKG,UAAU,EAAG;MACjB,OAAO+B,+BAA+B,CAAE,MAAM,EAAE/B,UAAW,CAAC;IAC7D;;IAEA;IACA,IAAKE,GAAG,EAAG;MACV,MAAMmC,QAAQ,GAAGP,gCAAgC,CAAE5B,GAAI,CAAC;MACxD,OAAOmC,QAAQ,EAAEb,EAAE;IACpB;EACD,CAAC,EACD,CACCxB,UAAU,EACVC,WAAW,EACXF,wBAAwB,EACxBG,GAAG,EACHL,MAAM,EACNC,QAAQ,EACRF,IAAI,EACJO,mBAAmB,CAErB,CAAC;EAED,MAAMqC,OAAO,GAAG7D,OAAO,CAAE,MAAM;IAC9B,IAAKc,8BAA8B,CAACqB,QAAQ,CAAEhB,QAAS,CAAC,EAAG;MAC1D,OAAO,CAAC,CAAC;IACV;IAEA,IAAKA,QAAQ,IAAID,MAAM,EAAG;MACzB,OAAO;QAAEC,QAAQ;QAAED;MAAO,CAAC;IAC5B;;IAEA;IACA,IAAKD,IAAI,KAAK,QAAQ,IAAIC,MAAM,EAAG;MAClC,OAAO;QAAEC,QAAQ,EAAE,MAAM;QAAED;MAAO,CAAC;IACpC;IAEA,IAAKG,UAAU,EAAG;MACjB,OAAO;QAAEF,QAAQ,EAAE,MAAM;QAAED,MAAM,EAAEG;MAAW,CAAC;IAChD;IAEA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAEA,UAAU,EAAEF,QAAQ,EAAED,MAAM,EAAED,IAAI,CAAG,CAAC;EAE3C,IAAKA,IAAI,KAAK,kBAAkB,IAAIC,MAAM,EAAG;IAC5C,OAAO;MAAE4C,OAAO,EAAE,IAAI;MAAE3C,QAAQ,EAAE,aAAa;MAAED,MAAM;MAAE2C;IAAQ,CAAC;EACnE;EAEA,IAAK5C,IAAI,KAAK,uBAAuB,IAAIC,MAAM,EAAG;IACjD,OAAO;MAAE4C,OAAO,EAAE,IAAI;MAAE3C,QAAQ,EAAE,kBAAkB;MAAED,MAAM;MAAE2C;IAAQ,CAAC;EACxE;EAEA,IAAK/C,8BAA8B,CAACqB,QAAQ,CAAEhB,QAAS,CAAC,EAAG;IAC1D,OAAO;MAAE2C,OAAO,EAAE,IAAI;MAAE3C,QAAQ;MAAED,MAAM;MAAE2C;IAAQ,CAAC;EACpD;EAEA,IAAKzC,wBAAwB,EAAG;IAC/B,OAAO;MACN0C,OAAO,EAAEf,kBAAkB,KAAKC,SAAS;MACzC7B,QAAQ,EAAEV,kBAAkB;MAC5BS,MAAM,EAAE6B,kBAAkB;MAC1Bc;IACD,CAAC;EACF;EAEA,OAAO;IAAEC,OAAO,EAAE;EAAM,CAAC;AAC1B;AAEA,eAAe,SAASC,0BAA0BA,CAAA,EAAG;EACpD,MAAM;IAAEC,MAAM,GAAG,CAAC;EAAE,CAAC,GAAGnD,WAAW,CAAC,CAAC;EACrC,MAAM;IAAEM,QAAQ;IAAED,MAAM;IAAE2C,OAAO;IAAEC;EAAQ,CAAC,GAC3C9C,gCAAgC,CAAEgD,MAAO,CAAC;EAE3C,MAAM;IAAEC;EAAgB,CAAC,GAAG/D,WAAW,CAAEK,aAAc,CAAC;EAExDR,SAAS,CAAE,MAAM;IAChB,IAAK+D,OAAO,EAAG;MACdG,eAAe,CAAE9C,QAAQ,EAAED,MAAM,EAAE2C,OAAQ,CAAC;IAC7C;EACD,CAAC,EAAE,CAAEC,OAAO,EAAE3C,QAAQ,EAAED,MAAM,EAAE2C,OAAO,EAAEI,eAAe,CAAG,CAAC;AAC7D"}
|
|
@@ -4307,6 +4307,7 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
|
|
|
4307
4307
|
}
|
|
4308
4308
|
.font-library-modal .components-modal__content {
|
|
4309
4309
|
padding-top: 0;
|
|
4310
|
+
margin-bottom: 70px;
|
|
4310
4311
|
}
|
|
4311
4312
|
.font-library-modal .font-library-modal__subtitle {
|
|
4312
4313
|
text-transform: uppercase;
|
|
@@ -4327,6 +4328,7 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
|
|
|
4327
4328
|
position: absolute;
|
|
4328
4329
|
bottom: 32px;
|
|
4329
4330
|
width: 100%;
|
|
4331
|
+
height: 70px;
|
|
4330
4332
|
background-color: #fff;
|
|
4331
4333
|
}
|
|
4332
4334
|
|
package/build-style/style.css
CHANGED
|
@@ -4308,6 +4308,7 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
|
|
|
4308
4308
|
}
|
|
4309
4309
|
.font-library-modal .components-modal__content {
|
|
4310
4310
|
padding-top: 0;
|
|
4311
|
+
margin-bottom: 70px;
|
|
4311
4312
|
}
|
|
4312
4313
|
.font-library-modal .font-library-modal__subtitle {
|
|
4313
4314
|
text-transform: uppercase;
|
|
@@ -4328,6 +4329,7 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
|
|
|
4328
4329
|
position: absolute;
|
|
4329
4330
|
bottom: 32px;
|
|
4330
4331
|
width: 100%;
|
|
4332
|
+
height: 70px;
|
|
4331
4333
|
background-color: #fff;
|
|
4332
4334
|
}
|
|
4333
4335
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/edit-site",
|
|
3
|
-
"version": "5.28.
|
|
3
|
+
"version": "5.28.12",
|
|
4
4
|
"description": "Edit Site Page module for WordPress.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
"@wordpress/a11y": "^3.51.1",
|
|
31
31
|
"@wordpress/api-fetch": "^6.48.1",
|
|
32
32
|
"@wordpress/blob": "^3.51.1",
|
|
33
|
-
"@wordpress/block-editor": "^12.19.
|
|
34
|
-
"@wordpress/block-library": "^8.28.
|
|
33
|
+
"@wordpress/block-editor": "^12.19.9",
|
|
34
|
+
"@wordpress/block-library": "^8.28.12",
|
|
35
35
|
"@wordpress/blocks": "^12.28.6",
|
|
36
36
|
"@wordpress/commands": "^0.22.6",
|
|
37
37
|
"@wordpress/components": "^26.0.6",
|
|
38
38
|
"@wordpress/compose": "^6.28.1",
|
|
39
|
-
"@wordpress/core-commands": "^0.20.
|
|
40
|
-
"@wordpress/core-data": "^6.28.
|
|
39
|
+
"@wordpress/core-commands": "^0.20.9",
|
|
40
|
+
"@wordpress/core-data": "^6.28.9",
|
|
41
41
|
"@wordpress/data": "^9.21.1",
|
|
42
42
|
"@wordpress/dataviews": "^0.5.7",
|
|
43
43
|
"@wordpress/date": "^4.51.1",
|
|
44
44
|
"@wordpress/deprecated": "^3.51.1",
|
|
45
45
|
"@wordpress/dom": "^3.51.1",
|
|
46
|
-
"@wordpress/editor": "^13.28.
|
|
46
|
+
"@wordpress/editor": "^13.28.9",
|
|
47
47
|
"@wordpress/element": "^5.28.1",
|
|
48
48
|
"@wordpress/escape-html": "^2.51.1",
|
|
49
49
|
"@wordpress/hooks": "^3.51.1",
|
|
@@ -55,17 +55,17 @@
|
|
|
55
55
|
"@wordpress/keycodes": "^3.51.1",
|
|
56
56
|
"@wordpress/media-utils": "^4.42.2",
|
|
57
57
|
"@wordpress/notices": "^4.19.1",
|
|
58
|
-
"@wordpress/patterns": "^1.12.
|
|
58
|
+
"@wordpress/patterns": "^1.12.9",
|
|
59
59
|
"@wordpress/plugins": "^6.19.6",
|
|
60
60
|
"@wordpress/preferences": "^3.28.6",
|
|
61
61
|
"@wordpress/primitives": "^3.49.1",
|
|
62
62
|
"@wordpress/private-apis": "^0.33.1",
|
|
63
|
-
"@wordpress/reusable-blocks": "^4.28.
|
|
63
|
+
"@wordpress/reusable-blocks": "^4.28.9",
|
|
64
64
|
"@wordpress/router": "^0.20.1",
|
|
65
65
|
"@wordpress/style-engine": "^1.34.1",
|
|
66
66
|
"@wordpress/url": "^3.52.1",
|
|
67
67
|
"@wordpress/viewport": "^5.28.1",
|
|
68
|
-
"@wordpress/widgets": "^3.28.
|
|
68
|
+
"@wordpress/widgets": "^3.28.9",
|
|
69
69
|
"@wordpress/wordcount": "^3.51.1",
|
|
70
70
|
"change-case": "^4.1.2",
|
|
71
71
|
"classnames": "^2.3.1",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "ec93880d20ad4ded2e6e669078bc14bd367326be"
|
|
89
89
|
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// Fixed height for the modal footer.
|
|
2
|
+
// Ensures that the footer is always visible when the modal content is scrollable.
|
|
3
|
+
$footer-height: 70px;
|
|
4
|
+
|
|
1
5
|
.font-library-modal {
|
|
2
6
|
// @todo: If a new prop is added to the Modal component that constrains
|
|
3
7
|
// the content width, we should use that prop instead of this style.
|
|
@@ -15,6 +19,7 @@
|
|
|
15
19
|
|
|
16
20
|
.components-modal__content {
|
|
17
21
|
padding-top: 0;
|
|
22
|
+
margin-bottom: $footer-height;
|
|
18
23
|
}
|
|
19
24
|
|
|
20
25
|
.font-library-modal__subtitle {
|
|
@@ -40,6 +45,7 @@
|
|
|
40
45
|
position: absolute;
|
|
41
46
|
bottom: $grid-unit-40;
|
|
42
47
|
width: 100%;
|
|
48
|
+
height: $footer-height;
|
|
43
49
|
background-color: $white;
|
|
44
50
|
}
|
|
45
51
|
}
|
|
@@ -28,42 +28,48 @@ const postTypesWithoutParentTemplate = [
|
|
|
28
28
|
];
|
|
29
29
|
|
|
30
30
|
function useResolveEditedEntityAndContext( { path, postId, postType } ) {
|
|
31
|
-
const {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
const {
|
|
32
|
+
hasLoadedAllDependencies,
|
|
33
|
+
homepageId,
|
|
34
|
+
postsPageId,
|
|
35
|
+
url,
|
|
36
|
+
frontPageTemplateId,
|
|
37
|
+
} = useSelect( ( select ) => {
|
|
38
|
+
const { getSite, getUnstableBase, getEntityRecords } =
|
|
39
|
+
select( coreDataStore );
|
|
40
|
+
const siteData = getSite();
|
|
41
|
+
const base = getUnstableBase();
|
|
42
|
+
const templates = getEntityRecords( 'postType', TEMPLATE_POST_TYPE, {
|
|
43
|
+
per_page: -1,
|
|
44
|
+
} );
|
|
45
|
+
const _homepageId =
|
|
46
|
+
siteData?.show_on_front === 'page' &&
|
|
47
|
+
[ 'number', 'string' ].includes( typeof siteData.page_on_front ) &&
|
|
48
|
+
!! +siteData.page_on_front // We also need to check if it's not zero(`0`).
|
|
49
|
+
? siteData.page_on_front.toString()
|
|
50
|
+
: null;
|
|
51
|
+
const _postsPageId =
|
|
52
|
+
siteData?.show_on_front === 'page' &&
|
|
53
|
+
[ 'number', 'string' ].includes( typeof siteData.page_for_posts )
|
|
54
|
+
? siteData.page_for_posts.toString()
|
|
55
|
+
: null;
|
|
56
|
+
let _frontPageTemplateId;
|
|
57
|
+
if ( templates ) {
|
|
58
|
+
const frontPageTemplate = templates.find(
|
|
59
|
+
( t ) => t.slug === 'front-page'
|
|
43
60
|
);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
homepageId:
|
|
57
|
-
siteData?.show_on_front === 'page' &&
|
|
58
|
-
[ 'number', 'string' ].includes(
|
|
59
|
-
typeof siteData.page_on_front
|
|
60
|
-
)
|
|
61
|
-
? siteData.page_on_front.toString()
|
|
62
|
-
: null,
|
|
63
|
-
url: base?.home,
|
|
64
|
-
frontPageTemplateId: _frontPateTemplateId,
|
|
65
|
-
};
|
|
66
|
-
}, [] );
|
|
61
|
+
_frontPageTemplateId = frontPageTemplate
|
|
62
|
+
? frontPageTemplate.id
|
|
63
|
+
: false;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
hasLoadedAllDependencies: !! base && !! siteData,
|
|
67
|
+
homepageId: _homepageId,
|
|
68
|
+
postsPageId: _postsPageId,
|
|
69
|
+
url: base?.home,
|
|
70
|
+
frontPageTemplateId: _frontPageTemplateId,
|
|
71
|
+
};
|
|
72
|
+
}, [] );
|
|
67
73
|
|
|
68
74
|
/**
|
|
69
75
|
* This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId
|
|
@@ -114,6 +120,14 @@ function useResolveEditedEntityAndContext( { path, postId, postType } ) {
|
|
|
114
120
|
if ( ! editedEntity ) {
|
|
115
121
|
return undefined;
|
|
116
122
|
}
|
|
123
|
+
// Check if the current page is the posts page.
|
|
124
|
+
if (
|
|
125
|
+
postTypeToResolve === 'page' &&
|
|
126
|
+
postsPageId === postIdToResolve
|
|
127
|
+
) {
|
|
128
|
+
return __experimentalGetTemplateForLink( editedEntity.link )
|
|
129
|
+
?.id;
|
|
130
|
+
}
|
|
117
131
|
// First see if the post/page has an assigned template and fetch it.
|
|
118
132
|
const currentTemplateSlug = editedEntity.template;
|
|
119
133
|
if ( currentTemplateSlug ) {
|
|
@@ -177,6 +191,7 @@ function useResolveEditedEntityAndContext( { path, postId, postType } ) {
|
|
|
177
191
|
},
|
|
178
192
|
[
|
|
179
193
|
homepageId,
|
|
194
|
+
postsPageId,
|
|
180
195
|
hasLoadedAllDependencies,
|
|
181
196
|
url,
|
|
182
197
|
postId,
|