# tableberg/0.5.4/includes/assets/js/PreviewDeviceChangeObserver.js

Tableberg – Simple Gutenberg Table Block, version 0.5.4. 46 lines.

- Page: https://pluginprobe.com/plugins/tableberg/0.5.4/code/includes/assets/js/PreviewDeviceChangeObserver.js
- Raw: https://pluginprobe.com/plugins/tableberg/0.5.4/raw/includes/assets/js/PreviewDeviceChangeObserver.js
- Modified: 2024-07-09T04:39:40+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/tableberg/0.5.4/code/includes/assets/js/PreviewDeviceChangeObserver.js#L10-L20`.

```javascript
(() => {
    let lastDevice = null;

    function register() {
        if (lastDevice) {
            return;
        }

        const previewEl = document.querySelector(
            ".is-tablet-preview, .is-desktop-preview, .is-mobile-preview"
        );
        if (!previewEl) {
            return;
        }
        lastDevice = previewEl.className.match(/is-(\w*)-preview/)[1];
        const previewObserver = new MutationObserver((mutationList) => {
            for (let mutation of mutationList) {
                if (mutation.attributeName === "class") {
                    const currentPreview =
                        mutation.target.className.match(/is-(\w*)-preview/)[1];
                    if (!currentPreview) {
                        return;
                    }
                    lastDevice = currentPreview;
                    const event = new CustomEvent("TablebergPreviewDeviceChange", {
                        detail: {
                            currentPreview
                        }
                    });
                    document.dispatchEvent(event);
                    return;
                }
            }
        });

        previewObserver.observe(previewEl, {
            attributes: true,
            attributeFilter: ["class"],
            attributeOldValue: true,
        });
    }

    window.registerTablebergPreviewDeviceChangeObserver = register;
    window.tablebergGetLastDevice = () => lastDevice;
})();

```
