# betterdocs/4.9.5/react-src/gutenberg/helpers/helper.js

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

- Page: https://pluginprobe.com/plugins/betterdocs/4.9.5/code/react-src/gutenberg/helpers/helper.js
- Raw: https://pluginprobe.com/plugins/betterdocs/4.9.5/raw/react-src/gutenberg/helpers/helper.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/helpers/helper.js#L10-L20`.

```javascript
export const getDeviceType = (key) => {
    let type = 'desktop';
    key = key.toLowerCase();

    switch (true) {
        case key.indexOf('desktop') > -1:
            type = 'desktop';
            break;
        case key.indexOf('mobile') > -1:
            type = 'mobile';
            break;
        case key.indexOf('tab') > -1:
            type = 'tab';
            break;
    }

    const isHover = key.indexOf('hover') > -1;
    if( isHover ) {
        type += 'Hover';
    }

    return type;
}



export const addProperty = (type, id, options = {}) => {
    let defultArgs = {};
    const { class: hasClass = false, attr = false, filter = false, args = {}, ...optionalArgs } = options;

    if( hasClass ) {
        defultArgs.classPrefix = `betterdocs-${id}-`;
    }
    if( attr ) {
        defultArgs.attrPrefix = id;
    }

    let controlArgs = {
        controlName: id,
        ...args
    }

    if( filter === 'number' ) {
        defultArgs.filter = (value, key, data) => (data[key] = +value.replace(/\D/g, ""));
    }

    return {
        id,
        type,
        class: hasClass,
        attr: attr,
        args: controlArgs,
        ...defultArgs,
        ...optionalArgs
    };
}

export const htmlToElem = (html) => wp.element.RawHTML({children: html});

```
