# betterdocs/4.9.5/react-src/gutenberg/util/index.js

BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ &amp; Chatbot, version 4.9.5. 46 lines.

- Page: https://pluginprobe.com/plugins/betterdocs/4.9.5/code/react-src/gutenberg/util/index.js
- Raw: https://pluginprobe.com/plugins/betterdocs/4.9.5/raw/react-src/gutenberg/util/index.js
- Modified: 2026-10-12T10:07:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/betterdocs/4.9.5/code/react-src/gutenberg/util/index.js#L10-L20`.

```javascript
import { createHigherOrderComponent } from "@wordpress/compose";
import { useEffect } from "@wordpress/element";
import WebFont from "webfontloader";
import { addFilter } from "@wordpress/hooks";

const withAdvancedControls = createHigherOrderComponent((BlockEdit) => {

    return (props) => {
        const { attributes } = props;

        // typography
        useEffect(() => {
            let googleFontFamily = [];
            for (var key in attributes) {
                if (/^(\w+)FontFamily/.test(key)) {
                    if (attributes[key] !== "Default") {
                        googleFontFamily.push(
                            attributes[key] +
                            ":100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic"
                        );
                    }
                }
            }

            if (googleFontFamily.length > 0) {
                let webFontConfig = {
                    google: {
                        families: googleFontFamily,
                    },
                    context: frames["editor-canvas"],
                };
                WebFont.load(webFontConfig);
            }
        }, [attributes]);

        return <BlockEdit {...props} />;

    };
}, "withAdvancedControls");

/**
 * Filter for modification of Edit Function
 */
addFilter("editor.BlockEdit", "betterdocs/global", withAdvancedControls);


```
