@wordpress/edit-site 5.26.0 → 5.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/actions/index.js +139 -36
- package/build/components/actions/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js +1 -1
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/font-families.js +3 -2
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-family-item.js +3 -4
- package/build/components/global-styles/font-family-item.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +80 -41
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +49 -22
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/fonts-grid.js +4 -1
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +4 -4
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +16 -8
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-card.js +1 -1
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/local-fonts.js +13 -4
- package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/resolvers.js +49 -20
- package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
- package/build/components/global-styles/font-library-modal/tab-panel-layout.js +6 -2
- package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +103 -17
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build/components/global-styles/screen-block.js +10 -0
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -1
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/layout/hooks.js +6 -5
- package/build/components/layout/hooks.js.map +1 -1
- package/build/components/layout/index.js +19 -28
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +135 -0
- package/build/components/layout/router.js.map +1 -0
- package/build/components/page-pages/index.js +92 -69
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/dataviews-pattern-actions.js +11 -6
- package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build/components/page-patterns/index.js +295 -15
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +51 -23
- package/build/components/page-templates-template-parts/actions.js.map +1 -0
- package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
- package/build/components/page-templates-template-parts/index.js +395 -0
- package/build/components/page-templates-template-parts/index.js.map +1 -0
- package/build/components/preferences-modal/index.js +9 -134
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/revisions/index.js +1 -1
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/save-button/index.js +4 -2
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-panel/index.js +6 -5
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar/index.js +3 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js +3 -1
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +4 -2
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +2 -2
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +8 -7
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +2 -10
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +26 -3
- package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js +63 -8
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.js +76 -0
- package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/site-hub/index.js +3 -1
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -12
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +33 -5
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +13 -6
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +7 -6
- package/build/hooks/template-part-edit.js.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/store/actions.js +11 -29
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +85 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/selectors.js +2 -2
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-is-list-page.js +1 -1
- package/build/utils/get-is-list-page.js.map +1 -1
- package/build/utils/use-actual-current-theme.js +32 -0
- package/build/utils/use-actual-current-theme.js.map +1 -0
- package/build-module/components/actions/index.js +139 -36
- package/build-module/components/actions/index.js.map +1 -1
- package/build-module/components/editor-canvas-container/index.js +1 -1
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +3 -2
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-family-item.js +4 -5
- package/build-module/components/global-styles/font-family-item.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +82 -42
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +49 -22
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js +4 -1
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +4 -4
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +16 -8
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/local-fonts.js +13 -4
- package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/resolvers.js +45 -18
- package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +6 -2
- package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +99 -16
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +10 -0
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +4 -1
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/layout/hooks.js +6 -5
- package/build-module/components/layout/hooks.js.map +1 -1
- package/build-module/components/layout/index.js +19 -28
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +127 -0
- package/build-module/components/layout/router.js.map +1 -0
- package/build-module/components/page-pages/index.js +91 -70
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -6
- package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build-module/components/page-patterns/index.js +296 -16
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +52 -24
- package/build-module/components/page-templates-template-parts/actions.js.map +1 -0
- package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
- package/build-module/components/page-templates-template-parts/index.js +385 -0
- package/build-module/components/page-templates-template-parts/index.js.map +1 -0
- package/build-module/components/preferences-modal/index.js +12 -136
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/revisions/index.js +1 -1
- package/build-module/components/revisions/index.js.map +1 -1
- package/build-module/components/save-button/index.js +4 -2
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +7 -6
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +3 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js +3 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +4 -2
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +2 -2
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +8 -7
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -10
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +27 -4
- package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js +64 -9
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +68 -0
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +3 -1
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -11
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +33 -5
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +13 -6
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +7 -6
- package/build-module/hooks/template-part-edit.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +13 -30
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +83 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +2 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-is-list-page.js +1 -1
- package/build-module/utils/get-is-list-page.js.map +1 -1
- package/build-module/utils/use-actual-current-theme.js +24 -0
- package/build-module/utils/use-actual-current-theme.js.map +1 -0
- package/build-style/style-rtl.css +316 -215
- package/build-style/style.css +316 -215
- package/package.json +42 -42
- package/src/components/actions/index.js +236 -84
- package/src/components/editor-canvas-container/index.js +1 -1
- package/src/components/global-styles/font-families.js +14 -8
- package/src/components/global-styles/font-family-item.js +7 -4
- package/src/components/global-styles/font-library-modal/context.js +156 -50
- package/src/components/global-styles/font-library-modal/font-collection.js +56 -21
- package/src/components/global-styles/font-library-modal/fonts-grid.js +6 -2
- package/src/components/global-styles/font-library-modal/index.js +4 -4
- package/src/components/global-styles/font-library-modal/installed-fonts.js +18 -8
- package/src/components/global-styles/font-library-modal/library-font-card.js +2 -1
- package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -9
- package/src/components/global-styles/font-library-modal/local-fonts.js +14 -4
- package/src/components/global-styles/font-library-modal/resolvers.js +50 -17
- package/src/components/global-styles/font-library-modal/style.scss +23 -35
- package/src/components/global-styles/font-library-modal/tab-panel-layout.js +30 -26
- package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +19 -2
- package/src/components/global-styles/font-library-modal/utils/index.js +136 -29
- package/src/components/global-styles/font-library-modal/utils/preview-styles.js +7 -3
- package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +40 -10
- package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +5 -5
- package/src/components/global-styles/screen-block.js +10 -0
- package/src/components/global-styles/screen-typography.js +9 -3
- package/src/components/global-styles/style.scss +4 -0
- package/src/components/header-edit-mode/style.scss +15 -5
- package/src/components/layout/hooks.js +6 -5
- package/src/components/layout/index.js +80 -96
- package/src/components/layout/router.js +121 -0
- package/src/components/layout/style.scss +13 -16
- package/src/components/page/style.scss +1 -8
- package/src/components/page-pages/index.js +142 -148
- package/src/components/page-pages/style.scss +41 -2
- package/src/components/page-patterns/dataviews-pattern-actions.js +11 -6
- package/src/components/page-patterns/index.js +392 -14
- package/src/components/page-patterns/style.scss +36 -2
- package/src/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +90 -37
- package/src/components/{page-templates → page-templates-template-parts}/index.js +198 -169
- package/src/components/page-templates-template-parts/style.scss +44 -0
- package/src/components/preferences-modal/index.js +8 -211
- package/src/components/revisions/index.js +1 -1
- package/src/components/save-button/index.js +7 -4
- package/src/components/save-panel/index.js +13 -12
- package/src/components/sidebar/index.js +4 -5
- package/src/components/sidebar-dataviews/dataview-item.js +2 -1
- package/src/components/sidebar-dataviews/default-views.js +4 -2
- package/src/components/sidebar-dataviews/index.js +8 -6
- package/src/components/sidebar-navigation-item/style.scss +1 -1
- package/src/components/sidebar-navigation-screen/index.js +19 -10
- package/src/components/sidebar-navigation-screen-pages/index.js +2 -10
- package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +32 -6
- package/src/components/sidebar-navigation-screen-templates/index.js +85 -28
- package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
- package/src/components/sidebar-navigation-screen-templates-browse/content.js +73 -0
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -1
- package/src/components/site-hub/index.js +4 -1
- package/src/components/site-hub/style.scss +1 -12
- package/src/components/site-icon/style.scss +1 -1
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +40 -10
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +32 -0
- package/src/hooks/commands/use-edit-mode-commands.js +50 -3
- package/src/hooks/push-changes-to-global-styles/index.js +29 -23
- package/src/hooks/template-part-edit.js +12 -12
- package/src/index.js +1 -1
- package/src/store/actions.js +17 -51
- package/src/store/private-actions.js +133 -0
- package/src/store/selectors.js +2 -4
- package/src/style.scss +2 -1
- package/src/utils/get-is-list-page.js +3 -2
- package/src/utils/use-actual-current-theme.js +27 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
- package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -71
- package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
- package/build/components/page-main/index.js +0 -44
- package/build/components/page-main/index.js.map +0 -1
- package/build/components/page-patterns/dataviews-patterns.js +0 -307
- package/build/components/page-patterns/dataviews-patterns.js.map +0 -1
- package/build/components/page-template-parts/add-new-template-part.js.map +0 -1
- package/build/components/page-template-parts/index.js +0 -81
- package/build/components/page-template-parts/index.js.map +0 -1
- package/build/components/page-templates/index.js +0 -352
- package/build/components/page-templates/index.js.map +0 -1
- package/build/components/page-templates/template-actions.js.map +0 -1
- package/build/components/post-preview/index.js +0 -29
- package/build/components/post-preview/index.js.map +0 -1
- package/build/components/preferences-modal/enable-feature.js +0 -36
- package/build/components/preferences-modal/enable-feature.js.map +0 -1
- package/build/components/preferences-modal/enable-panel-option.js +0 -33
- package/build/components/preferences-modal/enable-panel-option.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -52
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -63
- package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
- package/build-module/components/page-main/index.js +0 -36
- package/build-module/components/page-main/index.js.map +0 -1
- package/build-module/components/page-patterns/dataviews-patterns.js +0 -299
- package/build-module/components/page-patterns/dataviews-patterns.js.map +0 -1
- package/build-module/components/page-template-parts/add-new-template-part.js.map +0 -1
- package/build-module/components/page-template-parts/index.js +0 -73
- package/build-module/components/page-template-parts/index.js.map +0 -1
- package/build-module/components/page-templates/index.js +0 -344
- package/build-module/components/page-templates/index.js.map +0 -1
- package/build-module/components/page-templates/template-actions.js.map +0 -1
- package/build-module/components/post-preview/index.js +0 -21
- package/build-module/components/post-preview/index.js.map +0 -1
- package/build-module/components/preferences-modal/enable-feature.js +0 -29
- package/build-module/components/preferences-modal/enable-feature.js.map +0 -1
- package/build-module/components/preferences-modal/enable-panel-option.js +0 -26
- package/build-module/components/preferences-modal/enable-panel-option.js.map +0 -1
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
- package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -62
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +0 -271
- package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +0 -58
- package/src/components/page-main/index.js +0 -38
- package/src/components/page-patterns/dataviews-patterns.js +0 -380
- package/src/components/page-template-parts/index.js +0 -99
- package/src/components/page-templates/style.scss +0 -13
- package/src/components/post-preview/index.js +0 -16
- package/src/components/preferences-modal/enable-feature.js +0 -31
- package/src/components/preferences-modal/enable-panel-option.js +0 -23
- /package/build/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
- /package/build-module/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
- /package/src/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
|
@@ -9,13 +9,15 @@ import {
|
|
|
9
9
|
useEntityRecords,
|
|
10
10
|
store as coreStore,
|
|
11
11
|
} from '@wordpress/core-data';
|
|
12
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Internal dependencies
|
|
15
16
|
*/
|
|
16
17
|
import {
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
fetchGetFontFamilyBySlug,
|
|
19
|
+
fetchInstallFontFamily,
|
|
20
|
+
fetchUninstallFontFamily,
|
|
19
21
|
fetchFontCollections,
|
|
20
22
|
fetchFontCollection,
|
|
21
23
|
} from './resolvers';
|
|
@@ -26,10 +28,12 @@ import {
|
|
|
26
28
|
mergeFontFamilies,
|
|
27
29
|
loadFontFaceInBrowser,
|
|
28
30
|
getDisplaySrcFromFontFace,
|
|
29
|
-
|
|
31
|
+
makeFontFacesFormData,
|
|
32
|
+
makeFontFamilyFormData,
|
|
33
|
+
batchInstallFontFaces,
|
|
34
|
+
checkFontFaceInstalled,
|
|
30
35
|
} from './utils';
|
|
31
36
|
import { toggleFont } from './utils/toggleFont';
|
|
32
|
-
import getIntersectingFontFaces from './utils/get-intersecting-font-faces';
|
|
33
37
|
|
|
34
38
|
export const FontLibraryContext = createContext( {} );
|
|
35
39
|
|
|
@@ -60,12 +64,22 @@ function FontLibraryProvider( { children } ) {
|
|
|
60
64
|
records: libraryPosts = [],
|
|
61
65
|
isResolving: isResolvingLibrary,
|
|
62
66
|
hasResolved: hasResolvedLibrary,
|
|
63
|
-
} = useEntityRecords( 'postType', 'wp_font_family', {
|
|
67
|
+
} = useEntityRecords( 'postType', 'wp_font_family', {
|
|
68
|
+
refreshKey,
|
|
69
|
+
_embed: true,
|
|
70
|
+
} );
|
|
64
71
|
|
|
65
72
|
const libraryFonts =
|
|
66
|
-
( libraryPosts || [] ).map( (
|
|
67
|
-
|
|
68
|
-
|
|
73
|
+
( libraryPosts || [] ).map( ( fontFamilyPost ) => {
|
|
74
|
+
return {
|
|
75
|
+
id: fontFamilyPost.id,
|
|
76
|
+
...fontFamilyPost.font_family_settings,
|
|
77
|
+
fontFace:
|
|
78
|
+
fontFamilyPost?._embedded?.font_faces.map(
|
|
79
|
+
( face ) => face.font_face_settings
|
|
80
|
+
) || [],
|
|
81
|
+
};
|
|
82
|
+
} ) || [];
|
|
69
83
|
|
|
70
84
|
// Global Styles (settings) font families
|
|
71
85
|
const [ fontFamilies, setFontFamilies ] = useGlobalSetting(
|
|
@@ -157,11 +171,12 @@ function FontLibraryProvider( { children } ) {
|
|
|
157
171
|
|
|
158
172
|
const getAvailableFontsOutline = ( availableFontFamilies ) => {
|
|
159
173
|
const outline = availableFontFamilies.reduce( ( acc, font ) => {
|
|
160
|
-
const availableFontFaces =
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
174
|
+
const availableFontFaces =
|
|
175
|
+
font?.fontFace && font.fontFace?.length > 0
|
|
176
|
+
? font?.fontFace.map(
|
|
177
|
+
( face ) => `${ face.fontStyle + face.fontWeight }`
|
|
178
|
+
)
|
|
179
|
+
: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400
|
|
165
180
|
|
|
166
181
|
acc[ font.slug ] = availableFontFaces;
|
|
167
182
|
return acc;
|
|
@@ -192,45 +207,133 @@ function FontLibraryProvider( { children } ) {
|
|
|
192
207
|
return getActivatedFontsOutline( source )[ slug ] || [];
|
|
193
208
|
};
|
|
194
209
|
|
|
195
|
-
async function installFont(
|
|
210
|
+
async function installFont( fontFamilyToInstall ) {
|
|
196
211
|
setIsInstalling( true );
|
|
197
212
|
try {
|
|
198
|
-
//
|
|
199
|
-
|
|
213
|
+
// Get the font family if it already exists.
|
|
214
|
+
let installedFontFamily = await fetchGetFontFamilyBySlug(
|
|
215
|
+
fontFamilyToInstall.slug
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
// Otherwise create it.
|
|
219
|
+
if ( ! installedFontFamily ) {
|
|
220
|
+
// Prepare font family form data to install.
|
|
221
|
+
installedFontFamily = await fetchInstallFontFamily(
|
|
222
|
+
makeFontFamilyFormData( fontFamilyToInstall )
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Collect font faces that have already been installed (to be activated later)
|
|
227
|
+
const alreadyInstalledFontFaces =
|
|
228
|
+
installedFontFamily.fontFace && fontFamilyToInstall.fontFace
|
|
229
|
+
? installedFontFamily.fontFace.filter(
|
|
230
|
+
( fontFaceToInstall ) =>
|
|
231
|
+
checkFontFaceInstalled(
|
|
232
|
+
fontFaceToInstall,
|
|
233
|
+
fontFamilyToInstall.fontFace
|
|
234
|
+
)
|
|
235
|
+
)
|
|
236
|
+
: [];
|
|
237
|
+
|
|
238
|
+
// Filter out Font Faces that have already been installed (so that they are not re-installed)
|
|
239
|
+
if (
|
|
240
|
+
installedFontFamily.fontFace &&
|
|
241
|
+
fontFamilyToInstall.fontFace
|
|
242
|
+
) {
|
|
243
|
+
fontFamilyToInstall.fontFace =
|
|
244
|
+
fontFamilyToInstall.fontFace.filter(
|
|
245
|
+
( fontFaceToInstall ) =>
|
|
246
|
+
! checkFontFaceInstalled(
|
|
247
|
+
fontFaceToInstall,
|
|
248
|
+
installedFontFamily.fontFace
|
|
249
|
+
)
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
200
253
|
// Install the fonts (upload the font files to the server and create the post in the database).
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
254
|
+
let sucessfullyInstalledFontFaces = [];
|
|
255
|
+
let unsucessfullyInstalledFontFaces = [];
|
|
256
|
+
if ( fontFamilyToInstall?.fontFace?.length > 0 ) {
|
|
257
|
+
const response = await batchInstallFontFaces(
|
|
258
|
+
installedFontFamily.id,
|
|
259
|
+
makeFontFacesFormData( fontFamilyToInstall )
|
|
260
|
+
);
|
|
261
|
+
sucessfullyInstalledFontFaces = response?.successes;
|
|
262
|
+
unsucessfullyInstalledFontFaces = response?.errors;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
const detailedErrorMessage = unsucessfullyInstalledFontFaces.reduce(
|
|
266
|
+
( errorMessageCollection, error ) => {
|
|
267
|
+
return `${ errorMessageCollection } ${ error.message }`;
|
|
268
|
+
},
|
|
269
|
+
''
|
|
208
270
|
);
|
|
209
|
-
|
|
210
|
-
|
|
271
|
+
|
|
272
|
+
// If there were no successes and nothing already installed then we don't need to activate anything and can bounce now.
|
|
273
|
+
if (
|
|
274
|
+
fontFamilyToInstall?.fontFace?.length > 0 &&
|
|
275
|
+
sucessfullyInstalledFontFaces.length === 0 &&
|
|
276
|
+
alreadyInstalledFontFaces.length === 0
|
|
277
|
+
) {
|
|
278
|
+
throw new Error(
|
|
279
|
+
sprintf(
|
|
280
|
+
/* translators: %s: Specific error message returned from server. */
|
|
281
|
+
__( 'No font faces were installed. %s' ),
|
|
282
|
+
detailedErrorMessage
|
|
283
|
+
)
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Use the sucessfully installed font faces
|
|
288
|
+
// As well as any font faces that were already installed (those will be activated)
|
|
289
|
+
if (
|
|
290
|
+
sucessfullyInstalledFontFaces?.length > 0 ||
|
|
291
|
+
alreadyInstalledFontFaces?.length > 0
|
|
292
|
+
) {
|
|
293
|
+
fontFamilyToInstall.fontFace = [
|
|
294
|
+
...sucessfullyInstalledFontFaces,
|
|
295
|
+
...alreadyInstalledFontFaces,
|
|
296
|
+
];
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Activate the font family (add the font family to the global styles).
|
|
300
|
+
activateCustomFontFamilies( [ fontFamilyToInstall ] );
|
|
301
|
+
|
|
211
302
|
// Save the global styles to the database.
|
|
212
303
|
saveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [
|
|
213
304
|
'settings.typography.fontFamilies',
|
|
214
305
|
] );
|
|
306
|
+
|
|
215
307
|
refreshLibrary();
|
|
216
|
-
setIsInstalling( false );
|
|
217
308
|
|
|
218
|
-
|
|
219
|
-
|
|
309
|
+
if ( unsucessfullyInstalledFontFaces.length > 0 ) {
|
|
310
|
+
throw new Error(
|
|
311
|
+
sprintf(
|
|
312
|
+
/* translators: %s: Specific error message returned from server. */
|
|
313
|
+
__(
|
|
314
|
+
'Some font faces were installed. There were some errors. %s'
|
|
315
|
+
),
|
|
316
|
+
detailedErrorMessage
|
|
317
|
+
)
|
|
318
|
+
);
|
|
319
|
+
}
|
|
320
|
+
} finally {
|
|
220
321
|
setIsInstalling( false );
|
|
221
|
-
return {
|
|
222
|
-
errors: [ error ],
|
|
223
|
-
};
|
|
224
322
|
}
|
|
225
323
|
}
|
|
226
324
|
|
|
227
|
-
async function
|
|
325
|
+
async function uninstallFontFamily( fontFamilyToUninstall ) {
|
|
228
326
|
try {
|
|
229
|
-
// Uninstall the font
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
327
|
+
// Uninstall the font family.
|
|
328
|
+
// (Removes the font files from the server and the posts from the database).
|
|
329
|
+
const uninstalledFontFamily = await fetchUninstallFontFamily(
|
|
330
|
+
fontFamilyToUninstall.id
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
// Deactivate the font family if delete request is successful
|
|
334
|
+
// (Removes the font family from the global styles).
|
|
335
|
+
if ( uninstalledFontFamily.deleted ) {
|
|
336
|
+
deactivateFontFamily( fontFamilyToUninstall );
|
|
234
337
|
// Save the global styles to the database.
|
|
235
338
|
await saveSpecifiedEntityEdits(
|
|
236
339
|
'root',
|
|
@@ -239,15 +342,18 @@ function FontLibraryProvider( { children } ) {
|
|
|
239
342
|
[ 'settings.typography.fontFamilies' ]
|
|
240
343
|
);
|
|
241
344
|
}
|
|
242
|
-
|
|
345
|
+
|
|
346
|
+
// Refresh the library (the library font families from database).
|
|
243
347
|
refreshLibrary();
|
|
244
|
-
|
|
348
|
+
|
|
349
|
+
return uninstalledFontFamily;
|
|
245
350
|
} catch ( error ) {
|
|
246
351
|
// eslint-disable-next-line no-console
|
|
247
|
-
console.error(
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
352
|
+
console.error(
|
|
353
|
+
`There was an error uninstalling the font family:`,
|
|
354
|
+
error
|
|
355
|
+
);
|
|
356
|
+
throw error;
|
|
251
357
|
}
|
|
252
358
|
}
|
|
253
359
|
|
|
@@ -322,16 +428,16 @@ function FontLibraryProvider( { children } ) {
|
|
|
322
428
|
const response = await fetchFontCollections();
|
|
323
429
|
setFontCollections( response );
|
|
324
430
|
};
|
|
325
|
-
const getFontCollection = async (
|
|
431
|
+
const getFontCollection = async ( slug ) => {
|
|
326
432
|
try {
|
|
327
433
|
const hasData = !! collections.find(
|
|
328
|
-
( collection ) => collection.
|
|
329
|
-
)?.
|
|
434
|
+
( collection ) => collection.slug === slug
|
|
435
|
+
)?.font_families;
|
|
330
436
|
if ( hasData ) return;
|
|
331
|
-
const response = await fetchFontCollection(
|
|
437
|
+
const response = await fetchFontCollection( slug );
|
|
332
438
|
const updatedCollections = collections.map( ( collection ) =>
|
|
333
|
-
collection.
|
|
334
|
-
? { ...collection,
|
|
439
|
+
collection.slug === slug
|
|
440
|
+
? { ...collection, ...response }
|
|
335
441
|
: collection
|
|
336
442
|
);
|
|
337
443
|
setFontCollections( updatedCollections );
|
|
@@ -359,7 +465,7 @@ function FontLibraryProvider( { children } ) {
|
|
|
359
465
|
getFontFacesActivated,
|
|
360
466
|
loadFontFaceAsset,
|
|
361
467
|
installFont,
|
|
362
|
-
|
|
468
|
+
uninstallFontFamily,
|
|
363
469
|
toggleActivateFont,
|
|
364
470
|
getAvailableFontsOutline,
|
|
365
471
|
modalTabOpen,
|
|
@@ -30,14 +30,14 @@ import CollectionFontDetails from './collection-font-details';
|
|
|
30
30
|
import { toggleFont } from './utils/toggleFont';
|
|
31
31
|
import { getFontsOutline } from './utils/fonts-outline';
|
|
32
32
|
import GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';
|
|
33
|
-
import {
|
|
33
|
+
import { downloadFontFaceAsset } from './utils';
|
|
34
34
|
|
|
35
35
|
const DEFAULT_CATEGORY = {
|
|
36
|
-
|
|
36
|
+
slug: 'all',
|
|
37
37
|
name: __( 'All' ),
|
|
38
38
|
};
|
|
39
|
-
function FontCollection( {
|
|
40
|
-
const requiresPermission =
|
|
39
|
+
function FontCollection( { slug } ) {
|
|
40
|
+
const requiresPermission = slug === 'default-font-collection';
|
|
41
41
|
|
|
42
42
|
const getGoogleFontsPermissionFromStorage = () => {
|
|
43
43
|
return (
|
|
@@ -57,7 +57,7 @@ function FontCollection( { id } ) {
|
|
|
57
57
|
const { collections, getFontCollection, installFont } =
|
|
58
58
|
useContext( FontLibraryContext );
|
|
59
59
|
const selectedCollection = collections.find(
|
|
60
|
-
( collection ) => collection.
|
|
60
|
+
( collection ) => collection.slug === slug
|
|
61
61
|
);
|
|
62
62
|
|
|
63
63
|
useEffect( () => {
|
|
@@ -69,12 +69,12 @@ function FontCollection( { id } ) {
|
|
|
69
69
|
handleStorage();
|
|
70
70
|
window.addEventListener( 'storage', handleStorage );
|
|
71
71
|
return () => window.removeEventListener( 'storage', handleStorage );
|
|
72
|
-
}, [
|
|
72
|
+
}, [ slug, requiresPermission ] );
|
|
73
73
|
|
|
74
74
|
useEffect( () => {
|
|
75
75
|
const fetchFontCollection = async () => {
|
|
76
76
|
try {
|
|
77
|
-
await getFontCollection(
|
|
77
|
+
await getFontCollection( slug );
|
|
78
78
|
resetFilters();
|
|
79
79
|
} catch ( e ) {
|
|
80
80
|
setNotice( {
|
|
@@ -85,12 +85,12 @@ function FontCollection( { id } ) {
|
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
87
|
fetchFontCollection();
|
|
88
|
-
}, [
|
|
88
|
+
}, [ slug, getFontCollection ] );
|
|
89
89
|
|
|
90
90
|
useEffect( () => {
|
|
91
91
|
setSelectedFont( null );
|
|
92
92
|
setNotice( null );
|
|
93
|
-
}, [
|
|
93
|
+
}, [ slug ] );
|
|
94
94
|
|
|
95
95
|
useEffect( () => {
|
|
96
96
|
// If the selected fonts change, reset the selected fonts to install
|
|
@@ -108,10 +108,10 @@ function FontCollection( { id } ) {
|
|
|
108
108
|
}, [ notice ] );
|
|
109
109
|
|
|
110
110
|
const collectionFonts = useMemo(
|
|
111
|
-
() => selectedCollection?.
|
|
111
|
+
() => selectedCollection?.font_families ?? [],
|
|
112
112
|
[ selectedCollection ]
|
|
113
113
|
);
|
|
114
|
-
const collectionCategories = selectedCollection?.
|
|
114
|
+
const collectionCategories = selectedCollection?.categories ?? [];
|
|
115
115
|
|
|
116
116
|
const categories = [ DEFAULT_CATEGORY, ...collectionCategories ];
|
|
117
117
|
|
|
@@ -154,9 +154,44 @@ function FontCollection( { id } ) {
|
|
|
154
154
|
};
|
|
155
155
|
|
|
156
156
|
const handleInstall = async () => {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
const fontFamily = fontsToInstall[ 0 ];
|
|
158
|
+
|
|
159
|
+
try {
|
|
160
|
+
if ( fontFamily?.fontFace ) {
|
|
161
|
+
await Promise.all(
|
|
162
|
+
fontFamily.fontFace.map( async ( fontFace ) => {
|
|
163
|
+
if ( fontFace.src ) {
|
|
164
|
+
fontFace.file = await downloadFontFaceAsset(
|
|
165
|
+
fontFace.src
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
} )
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
} catch ( error ) {
|
|
172
|
+
// If any of the fonts fail to download,
|
|
173
|
+
// show an error notice and stop the request from being sent.
|
|
174
|
+
setNotice( {
|
|
175
|
+
type: 'error',
|
|
176
|
+
message: __(
|
|
177
|
+
'Error installing the fonts, could not be downloaded.'
|
|
178
|
+
),
|
|
179
|
+
} );
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
try {
|
|
184
|
+
await installFont( fontFamily );
|
|
185
|
+
setNotice( {
|
|
186
|
+
type: 'success',
|
|
187
|
+
message: __( 'Fonts were installed successfully.' ),
|
|
188
|
+
} );
|
|
189
|
+
} catch ( error ) {
|
|
190
|
+
setNotice( {
|
|
191
|
+
type: 'error',
|
|
192
|
+
message: error.message,
|
|
193
|
+
} );
|
|
194
|
+
}
|
|
160
195
|
resetFontsToInstall();
|
|
161
196
|
};
|
|
162
197
|
|
|
@@ -228,8 +263,8 @@ function FontCollection( { id } ) {
|
|
|
228
263
|
{ categories &&
|
|
229
264
|
categories.map( ( category ) => (
|
|
230
265
|
<option
|
|
231
|
-
value={ category.
|
|
232
|
-
key={ category.
|
|
266
|
+
value={ category.slug }
|
|
267
|
+
key={ category.slug }
|
|
233
268
|
>
|
|
234
269
|
{ category.name }
|
|
235
270
|
</option>
|
|
@@ -241,11 +276,11 @@ function FontCollection( { id } ) {
|
|
|
241
276
|
|
|
242
277
|
<Spacer margin={ 4 } />
|
|
243
278
|
{ ! renderConfirmDialog &&
|
|
244
|
-
! selectedCollection?.
|
|
279
|
+
! selectedCollection?.font_families &&
|
|
245
280
|
! notice && <Spinner /> }
|
|
246
281
|
|
|
247
282
|
{ ! renderConfirmDialog &&
|
|
248
|
-
!! selectedCollection?.
|
|
283
|
+
!! selectedCollection?.font_families?.length &&
|
|
249
284
|
! fonts.length && (
|
|
250
285
|
<Text>
|
|
251
286
|
{ __(
|
|
@@ -266,10 +301,10 @@ function FontCollection( { id } ) {
|
|
|
266
301
|
<FontsGrid>
|
|
267
302
|
{ fonts.map( ( font ) => (
|
|
268
303
|
<FontCard
|
|
269
|
-
key={ font.slug }
|
|
270
|
-
font={ font }
|
|
304
|
+
key={ font.font_family_settings.slug }
|
|
305
|
+
font={ font.font_family_settings }
|
|
271
306
|
onClick={ () => {
|
|
272
|
-
setSelectedFont( font );
|
|
307
|
+
setSelectedFont( font.font_family_settings );
|
|
273
308
|
} }
|
|
274
309
|
/>
|
|
275
310
|
) ) }
|
|
@@ -42,9 +42,13 @@ function FontsGrid( { title, children, pageSize = 32 } ) {
|
|
|
42
42
|
<div className="font-library-modal__fonts-grid__main">
|
|
43
43
|
{ items.map( ( child, i ) => {
|
|
44
44
|
if ( i === itemsLimit - 1 ) {
|
|
45
|
-
return
|
|
45
|
+
return (
|
|
46
|
+
<div key={ child.key } ref={ setLastItem }>
|
|
47
|
+
{ child }
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
46
50
|
}
|
|
47
|
-
return child
|
|
51
|
+
return <div key={ child.key }>{ child }</div>;
|
|
48
52
|
} ) }
|
|
49
53
|
</div>
|
|
50
54
|
</VStack>
|
|
@@ -31,10 +31,10 @@ const DEFAULT_TABS = [
|
|
|
31
31
|
];
|
|
32
32
|
|
|
33
33
|
const tabsFromCollections = ( collections ) =>
|
|
34
|
-
collections.map( ( {
|
|
35
|
-
id,
|
|
34
|
+
collections.map( ( { slug, name } ) => ( {
|
|
35
|
+
id: slug,
|
|
36
36
|
title:
|
|
37
|
-
collections.length === 1 &&
|
|
37
|
+
collections.length === 1 && slug === 'default-font-collection'
|
|
38
38
|
? __( 'Install Fonts' )
|
|
39
39
|
: name,
|
|
40
40
|
} ) );
|
|
@@ -76,7 +76,7 @@ function FontLibraryModal( {
|
|
|
76
76
|
contents = <InstalledFonts />;
|
|
77
77
|
break;
|
|
78
78
|
default:
|
|
79
|
-
contents = <FontCollection
|
|
79
|
+
contents = <FontCollection slug={ id } />;
|
|
80
80
|
}
|
|
81
81
|
return (
|
|
82
82
|
<Tabs.TabPanel
|
|
@@ -22,7 +22,6 @@ import FontsGrid from './fonts-grid';
|
|
|
22
22
|
import LibraryFontDetails from './library-font-details';
|
|
23
23
|
import LibraryFontCard from './library-font-card';
|
|
24
24
|
import ConfirmDeleteDialog from './confirm-delete-dialog';
|
|
25
|
-
import { getNoticeFromUninstallResponse } from './utils/get-notice-from-response';
|
|
26
25
|
import { unlock } from '../../../lock-unlock';
|
|
27
26
|
const { ProgressBar } = unlock( componentsPrivateApis );
|
|
28
27
|
|
|
@@ -33,7 +32,7 @@ function InstalledFonts() {
|
|
|
33
32
|
baseThemeFonts,
|
|
34
33
|
handleSetLibraryFontSelected,
|
|
35
34
|
refreshLibrary,
|
|
36
|
-
|
|
35
|
+
uninstallFontFamily,
|
|
37
36
|
isResolvingLibrary,
|
|
38
37
|
} = useContext( FontLibraryContext );
|
|
39
38
|
const [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );
|
|
@@ -49,14 +48,24 @@ function InstalledFonts() {
|
|
|
49
48
|
const [ notice, setNotice ] = useState( null );
|
|
50
49
|
|
|
51
50
|
const handleConfirmUninstall = async () => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
try {
|
|
52
|
+
await uninstallFontFamily( libraryFontSelected );
|
|
53
|
+
setNotice( {
|
|
54
|
+
type: 'success',
|
|
55
|
+
message: __( 'Font family uninstalled successfully.' ),
|
|
56
|
+
} );
|
|
57
|
+
|
|
58
|
+
// If the font was succesfully uninstalled it is unselected.
|
|
57
59
|
handleUnselectFont();
|
|
60
|
+
setIsConfirmDeleteOpen( false );
|
|
61
|
+
} catch ( error ) {
|
|
62
|
+
setNotice( {
|
|
63
|
+
type: 'error',
|
|
64
|
+
message:
|
|
65
|
+
__( 'There was an error uninstalling the font family. ' ) +
|
|
66
|
+
error.message,
|
|
67
|
+
} );
|
|
58
68
|
}
|
|
59
|
-
setIsConfirmDeleteOpen( false );
|
|
60
69
|
};
|
|
61
70
|
|
|
62
71
|
const handleUninstallClick = async () => {
|
|
@@ -77,6 +86,7 @@ function InstalledFonts() {
|
|
|
77
86
|
!! libraryFontSelected && libraryFontSelected?.source !== 'theme';
|
|
78
87
|
|
|
79
88
|
useEffect( () => {
|
|
89
|
+
handleSelectFont( libraryFontSelected );
|
|
80
90
|
refreshLibrary();
|
|
81
91
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
92
|
}, [] );
|
|
@@ -13,7 +13,8 @@ import { FontLibraryContext } from './context';
|
|
|
13
13
|
function LibraryFontCard( { font, ...props } ) {
|
|
14
14
|
const { getFontFacesActivated } = useContext( FontLibraryContext );
|
|
15
15
|
|
|
16
|
-
const variantsInstalled =
|
|
16
|
+
const variantsInstalled =
|
|
17
|
+
font?.fontFace?.length > 0 ? font.fontFace.length : 1;
|
|
17
18
|
const variantsActive = getFontFacesActivated(
|
|
18
19
|
font.slug,
|
|
19
20
|
font.source
|
|
@@ -20,17 +20,18 @@ function LibraryFontVariant( { face, font } ) {
|
|
|
20
20
|
const { isFontActivated, toggleActivateFont } =
|
|
21
21
|
useContext( FontLibraryContext );
|
|
22
22
|
|
|
23
|
-
const isIstalled =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
const isIstalled =
|
|
24
|
+
font?.fontFace?.length > 0
|
|
25
|
+
? isFontActivated(
|
|
26
|
+
font.slug,
|
|
27
|
+
face.fontStyle,
|
|
28
|
+
face.fontWeight,
|
|
29
|
+
font.source
|
|
30
|
+
)
|
|
31
|
+
: isFontActivated( font.slug, null, null, font.source );
|
|
31
32
|
|
|
32
33
|
const handleToggleActivation = () => {
|
|
33
|
-
if ( font?.fontFace ) {
|
|
34
|
+
if ( font?.fontFace?.length > 0 ) {
|
|
34
35
|
toggleActivateFont( font, face );
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
@@ -23,7 +23,6 @@ import { FontLibraryContext } from './context';
|
|
|
23
23
|
import { Font } from '../../../../lib/lib-font.browser';
|
|
24
24
|
import makeFamiliesFromFaces from './utils/make-families-from-faces';
|
|
25
25
|
import { loadFontFaceInBrowser } from './utils';
|
|
26
|
-
import { getNoticeFromInstallResponse } from './utils/get-notice-from-response';
|
|
27
26
|
import { unlock } from '../../../lock-unlock';
|
|
28
27
|
|
|
29
28
|
const { ProgressBar } = unlock( componentsPrivateApis );
|
|
@@ -161,12 +160,23 @@ function LocalFonts() {
|
|
|
161
160
|
'Variants from only one font family can be uploaded at a time.'
|
|
162
161
|
),
|
|
163
162
|
} );
|
|
163
|
+
setIsUploading( false );
|
|
164
164
|
return;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
167
|
+
try {
|
|
168
|
+
await installFont( fontFamilies[ 0 ] );
|
|
169
|
+
setNotice( {
|
|
170
|
+
type: 'success',
|
|
171
|
+
message: __( 'Fonts were installed successfully.' ),
|
|
172
|
+
} );
|
|
173
|
+
} catch ( error ) {
|
|
174
|
+
setNotice( {
|
|
175
|
+
type: 'error',
|
|
176
|
+
message: error.message,
|
|
177
|
+
} );
|
|
178
|
+
}
|
|
179
|
+
|
|
170
180
|
setIsUploading( false );
|
|
171
181
|
};
|
|
172
182
|
|