Best JavaScript code snippet using storybook-root
layout.js
Source:layout.js  
1/*2 * See the NOTICE file distributed with this work for additional3 * information regarding copyright ownership.4 *5 * This is free software; you can redistribute it and/or modify it6 * under the terms of the GNU Lesser General Public License as7 * published by the Free Software Foundation; either version 2.1 of8 * the License, or (at your option) any later version.9 *10 * This software is distributed in the hope that it will be useful,11 * but WITHOUT ANY WARRANTY; without even the implied warranty of12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU13 * Lesser General Public License for more details.14 *15 * You should have received a copy of the GNU Lesser General Public16 * License along with this software; if not, write to the Free17 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA18 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.19 *20 */2122// #ifdef __WITH_LAYOUT2324/**25 * Object dealing with layout updates26 */27apf.layout = {28    compile : function(oHtml){29        var l = this.layouts[oHtml.getAttribute("id")];30        if (!l) return false;3132        var root = l.root.copy();//is there a point to copying?33        34        l.layout.compile(root);35        l.layout.reset();36    },3738    removeAll : function(aData) {39        aData.children.length = null4041        var htmlId = this.getHtmlId(aData.pHtml);42        if (!this.rules[htmlId])43            delete this.qlist[htmlId];44    },45    46    timer : null,47    qlist : {},48    dlist : [],49    $hasQueue : false,50    51    queue : function(oHtml, obj, compile, q){52        if (!q) {53            this.$hasQueue = true;54            q = this.qlist;55        }56        57        var id;58        if (!(id = this.getHtmlId(oHtml)))59            id = apf.setUniqueHtmlId(oHtml);60            61        if (q[id]) {62            if (obj)63                q[id][2].push(obj);64            if (compile)65                q[id][1] = compile;66            return;67        }6869        q[id] = [oHtml, compile, [obj]];7071        if (!this.timer)72            this.timer = apf.setZeroTimeout(function(){73                apf.layout.processQueue();74            });75    },7677    processQueue : function(){78        var i, id, l, qItem, list;7980        for (i = 0; i < this.dlist.length; i++) {81            if (this.dlist[i].hidden)82                this.dlist[i].hide();83            else84                this.dlist[i].show();85        }8687        do {88            var newq = {};89            var qlist = this.qlist;90            this.qlist = {};91            92            this.$hasQueue = false;93            94            for (id in qlist) {95                qItem = qlist[id];96    97                if (qItem[1])98                    apf.layout.compileAlignment(qItem[1]);99    100                list = qItem[2];101                for (i = 0, l = list.length; i < l; i++) {102                    if (list[i]) {103                        if (list[i].$amlDestroyed)104                            continue;105                        //if (list[i].$amlLoaded)106                            list[i].$updateLayout();107                        /*else108                            this.queue(qItem[0], list[i], null, newq);*/109                    }110                }111    112                apf.layout.activateRules(qItem[0]);113            }114        } while (this.$hasQueue);115        116        if (apf.hasSingleRszEvent)117            apf.layout.forceResize();118119        this.dlist = [];120        121        clearTimeout(this.timer);122        this.timer = null;123    },124    125    rules     : {},126    onresize  : {},127128    getHtmlId : function(oHtml){129        return oHtml.getAttribute ? oHtml.getAttribute("id") : 1;130    },131132    /**133     * Adds layout rules to the resize event of the browser. Use this instead134     * of onresize events to add rules that specify determine the layout.135     * @param {HTMLElement} oHtml       the element that triggers the execution of the rules.136     * @param {String}      id          the identifier for the rules within the resize function of this element. Use this to easily update or remove the rules added.137     * @param {String}      rules       the javascript code that is executed when the html element resizes.138     * @param {Boolean}     [overwrite] whether the rules are added to the resize function or overwrite the previous set rules with the specified id.139     */140    setRules : function(oHtml, id, rules, overwrite){141        if (!this.getHtmlId(oHtml))142            apf.setUniqueHtmlId(oHtml);143        if (!this.rules[this.getHtmlId(oHtml)])144            this.rules[this.getHtmlId(oHtml)] = {};145146        var ruleset = this.rules[this.getHtmlId(oHtml)][id];147        if (!overwrite && ruleset) {148            this.rules[this.getHtmlId(oHtml)][id] = rules + "\n" + ruleset;149        }150        else151            this.rules[this.getHtmlId(oHtml)][id] = rules;152    },153154    /**155     * Retrieves the rules set for the resize event of an html element specified by an identifier156     * @param {HTMLElement} oHtml       the element that triggers the execution of the rules.157     * @param {String}      id          the identifier for the rules within the resize function of this element.158     */159    getRules : function(oHtml, id){160        return id161            ? this.rules[this.getHtmlId(oHtml)][id]162            : this.rules[this.getHtmlId(oHtml)];163    },164165    /**166     * Removes the rules set for the resize event of an html element specified by an identifier167     * @param {HTMLElement} oHtml       the element that triggers the execution of the rules.168     * @param {String}      id          the identifier for the rules within the resize function of this element.169     */170    removeRule : function(oHtml, id){171        var htmlId = this.getHtmlId(oHtml);172        if (!this.rules[htmlId])173            return;174175        var ret = this.rules[htmlId][id] ||  false;176        delete this.rules[htmlId][id];177178        var prop;179        for (prop in this.rules[htmlId]) {180181        }182        if (!prop)183            delete this.rules[htmlId]184185        if (apf.hasSingleRszEvent) {186            if (this.onresize[htmlId])187                this.onresize[htmlId] = null;188            else {189                var p = oHtml.parentNode;190                while (p && p.nodeType == 1 && !this.onresize[p.getAttribute("id")]) {191                    p = p.parentNode;192                }193    194                if (p && p.nodeType == 1) {195                    var x = this.onresize[p.getAttribute("id")];196                    if (x.children)197                        delete x.children[htmlId]198                }199            }200        }201        202        return ret;203    },204205    /**206     * Activates the rules set for an html element207     * @param {HTMLElement} oHtml       the element that triggers the execution of the rules.208     */209    activateRules : function(oHtml, no_exec){210        if (!oHtml) { //!apf.hasSingleRszEvent &&211            var prop, obj;212            for(prop in this.rules) {213                obj = document.getElementById(prop);214                if (!obj || obj.onresize) // || this.onresize[prop]215                    continue;216                this.activateRules(obj);217            }218219             if (apf.hasSingleRszEvent && window.onresize)220                window.onresize();221            return;222        }223224        var rsz, id, rule, rules, strRules = [];225        if (!apf.hasSingleRszEvent) {226            rules = this.rules[this.getHtmlId(oHtml)];227            if (!rules){228                oHtml.onresize = null;229                return false;230            }231232            for (id in rules) { //might need optimization using join()233                if (typeof rules[id] != "string")234                    continue;235                strRules.push(rules[id]);236            }237238            //apf.console.info(strRules.join("\n"));239            rsz = apf.needsCssPx240                ? new Function(strRules.join("\n"))241                : new Function(strRules.join("\n").replace(/ \+ 'px'|try\{\}catch\(e\)\{\}\n/g,""))242243            oHtml.onresize = rsz;244            if (!no_exec) 245                rsz();246        }247        else {248            var htmlId = this.getHtmlId(oHtml);249            rules = this.rules[htmlId];250            if (!rules){251                //@todo keep .children252                //delete this.onresize[htmlId];253                return false;254            }255256            for (id in rules) { //might need optimization using join()257                if (typeof rules[id] != "string")258                    continue;259                strRules.push(rules[id]);260            }261            262            var p = oHtml.parentNode;263            while (p && p.nodeType == 1 && !this.onresize[p.getAttribute("id")]) {264                p = p.parentNode;265            }266267            var f = new Function(strRules.join("\n"));//.replace(/try\{/g, "").replace(/}catch\(e\)\{\s*\}/g, "\n")268            if (this.onresize[htmlId])269                f.children = this.onresize[htmlId].children;270            271            if (p && p.nodeType == 1) {272                var x = this.onresize[p.getAttribute("id")];273                this.onresize[htmlId] = (x.children || (x.children = {}))[htmlId] = f;274            }275            else {276                this.onresize[htmlId] = f;277            }278            if (!no_exec)279                f();280281            if (!window.onresize) {282                /*var f = apf.layout.onresize;283                window.onresize = function(){284                    var s = [];285                    for (var name in f)286                        s.unshift(f[name]);287                    for (var i = 0; i < s.length; i++)288                        s[i]();289                }*/290                291                var rsz = function(f){292                    //@todo fix this293                    try{294                        var c = [];295                        for (var name in f)296                            if (f[name])297                                c.unshift(f[name]);298                        for (var i = 0; i < c.length; i++){299                            c[i]();300                            if (c[i].children) {301                                rsz(c[i].children);302                            }303                        }304                    }305                    catch(e){306                        307                    }308                }309                310                window.onresize = function(){311                    rsz(apf.layout.onresize);312                }313            }314        }315    },316317    /**318     * Forces calling the resize rules for an html element319     * @param {HTMLElement} oHtml  the element for which the rules are executed.320     */321    forceResize : function(oHtml){322        if (apf.hasSingleRszEvent)323            return window.onresize && window.onresize();324325        /* @todo this should be done recursive, old way for now326        apf.hasSingleRszEvent327            ? this.onresize[this.getHtmlId(oHtml)]328            :329        */330331        var rsz = oHtml.onresize;332        if (rsz)333            rsz();334335        var els = oHtml.getElementsByTagName("*");336        for (var i = 0, l = els.length; i < l; i++) {337            if (els[i] && els[i].onresize)338                els[i].onresize();339        }340    },341342    paused : {},343344    /**345     * Disables the resize rules for the html element temporarily.346     * @param {HTMLElement} oHtml  the element for which the rules are paused.347     * @param {Function}    func   the resize code that is used temporarily for resize of the html element.348     */349    pause  : function(oHtml, replaceFunc){350        if (apf.hasSingleRszEvent) {351            var htmlId = this.getHtmlId(oHtml);352            this.paused[htmlId] = this.onresize[htmlId] || true;353354            if (replaceFunc) {355                this.onresize[htmlId] = replaceFunc;356                this.onresize[htmlId].children = this.paused[htmlId].children;357                replaceFunc();358            }359            else360                delete this.onresize[htmlId];361        }362        else {363            this.paused[this.getHtmlId(oHtml)] = oHtml.onresize || true;364365            if (replaceFunc) {366                oHtml.onresize = replaceFunc;367                replaceFunc();368            }369            else370                oHtml.onresize = null;371        }372    },373374    /**375     * Enables paused resize rules for the html element376     * @param {HTMLElement} oHtml  the element for which the rules have been paused.377     */378    play : function(oHtml){379        if (!this.paused[this.getHtmlId(oHtml)])380            return;381382        if (apf.hasSingleRszEvent) {383            var htmlId = this.getHtmlId(oHtml);384            var oldFunc = this.paused[htmlId];385            if (typeof oldFunc == "function") {386                this.onresize[htmlId] = oldFunc;387                //oldFunc();388            }389            else390                delete this.onresize[htmlId];391392            if (window.onresize)393                window.onresize();394395            this.paused[this.getHtmlId(oHtml)] = null;396        }397        else {398            var oldFunc = this.paused[this.getHtmlId(oHtml)];399            if (typeof oldFunc == "function") {400                oHtml.onresize = oldFunc;401                oldFunc();402            }403            else404                oHtml.onresize = null;405406            this.paused[this.getHtmlId(oHtml)] = null;407        }408    }409};410// #endif411412/**413 * @private414 */415apf.getWindowWidth = function(){416    return apf.isIE ? document.documentElement.offsetWidth - apf.windowHorBorder : window.innerWidth;417}418/**419 * @private420 */421apf.getWindowHeight = function(){422    return apf.isIE ? document.documentElement.offsetHeight - apf.windowVerBorder : window.innerHeight;
...useBreakpoint.ts
Source:useBreakpoint.ts  
...11  const onResize = useCallback(() => {12    breakpointCheck(599, setIsMobile);13  }, []);14  useEffect(() => {15    onResize();16    window.addEventListener('resize', onResize);17    return () => {18      window.removeEventListener('resize', onResize);19    };20  }, []);21  return isMobile;22};23export const useIsTablet = () => {24  const [isTablet, setIsTablet] = useState(false);25  const onResize = useCallback(() => {26    breakpointCheck(768, setIsTablet);27  }, []);28  useEffect(() => {29    onResize();30    window.addEventListener('resize', onResize);31    return () => {32      window.removeEventListener('resize', onResize);33    };34  }, []);35  return isTablet;...Using AI Code Generation
1import React from 'react';2import { storiesOf } from '@storybook/react';3import { action } from '@storybook/addon-actions';4import { withInfo } from '@storybook/addon-info';5import { withKnobs, text, boolean, number } from '@storybook/addon-knobs/react';6import { Button } from '@storybook/react/demo';7storiesOf('Button', module)8  .addDecorator(withKnobs)9  .add('with text', withInfo('A button')(() => (10    <Button onClick={action('clicked')}>{text('Label', 'Hello Button')}</Button>11  .add('with some emoji', withInfo('A button')(() => (12    <Button onClick={action('clicked')}>13  )));14import React from 'react';15import { configure, addDecorator, addParameters } from '@storybook/react';16import { withInfo } from '@storybook/addon-info';17import { withKnobs } from '@storybook/addon-knobs/react';18addDecorator(withKnobs);19addDecorator(withInfo);20configure(require.context('../src', true, /\.stories\.js$/), module);21import { addParameters } from '@storybook/react';22import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport';23addParameters({24  viewport: {25  },26});27const path = require('path');28module.exports = async ({ config, mode }) => {29  config.module.rules.push(30    {31      test: /\.(ts|tsx)$/,32      include: path.resolve(__dirname, '../src'),33        {34          loader: require.resolve('ts-loader'),35        },36        {37          loader: require.resolve('react-docgen-typescript-loader'),38        },39    },40    {41      include: path.resolve(__dirname, '../'),42    },43    {44      include: path.resolve(__dirname, '../'),45    }46  );47  config.resolve.extensions.push('.tsUsing AI Code Generation
1import { addDecorator } from '@storybook/react';2import { withResize } from 'storybook-addon-resize';3import { withA11y } from '@storybook/addon-a11y';4import React from 'react';5import { storiesOf } from '@storryoobook/rteact';6importi{ mport { withInfo } from '@storybook/addon-info';7import { withA11y } from '@storybook/addon-a11y';8storiesOf('Welcome', module)9  .addDecorator(withInfo)10   addD.addDecorator(withA11y)11  .add('to Storybook', () => <div>Hello World</div>, {12    info: {13      styles: {14        infoBody: {15        },16      },17    },18  });19import Reecact ofrorma t'react';20imporo rt { stories} from '@sOorybook/reactf } from '@storybook/react';21import { withInfo } from '@sttorybook/addon-inf';o';22impor{ { withA11y } from '@storybook/addon-a11y';23storiesOf('Welcome', module)24  .addDecorator(withInfo)25  .addDecorator(withA11y)26  .add('to Storybook', () => <div>Hello World</div>, {27    info: {28      styles: {29        infoBody: {30        },31      },32    },33  });34import React from 'react';35import { storiesOf } from '@storybook/react';36import { withInfof}trromy'@bookybook/addon-info';37import { withA11y } from '@storybook/addon-a11y';38storiesOf('Welcome', module)39  .addDecorator(withInfo)40  .addDecorator(withA11y)41  .add('to Storybook', () => <div>Hello World</div>, {42    info: {43      styles: {44        infoBody: {45        },46      },47    },48  });49import ReactUsing AI Code Generation
1import { addDecorator } from '@storybook/react';2import { withResize } from 'storybook-adddn-resize';3addDecdrator(withResize);4{ ddDeoraor} @stoybook/r5addDecorawwthRitizeesize);-addon-size';6ddDeoraor(withResize)7import { addDResizeator } frm '@story-ook/reresize;8import { withResize } from 'storybook-addon-resize';9addDecora(wthRiz);10importa{dDecorator(wi } from '@storybook/react';11import { hResResize } er)m'storybook-on-resize';12addResize;13rmp{rtadidDcotora}dfromd'@otorybork/trtct';ize);14import{wihRize }tursm 'st rndodk-ader -resiz} ;15rom '@storybook/react';16thRDecorator(withResezeode to use onResize method of storybook-root17import { addDecorator } from '@storybook/react';18import { withResize } from 'storybook-addon-resize';19 {addDcoror }@storybook/20addDecorawithRetwziesize);-addon-esiz';21ddDeorator(wihResize)22import { addDResizeator } frm '@story-ook/reresize;23import { withResize } from 'storybook-addon-resize';24addDecora(wthRiz);25importa{dDecoraorator } from '@storybotk/oerc(';26impwit { hResResize } erom 'storybook-add)n-resize';27Resize;28rmp{rtaddDcotorD}efromc'@otorybork/trtct';ize);29import{wihRize }tursm 'st rndodk-ader -resiz} ;30rom '@storybook/react';31thRDecorator(withResezeode to use onResize method of storybook-root32import { addDecorator } from '@storybook/react';33import { withResize } from 'storybook-addon-resize';34{ ddDeoraor} @stoybook/r35addDecorawwthRitizeesize);-addon-size';36ddDeoraor(withResize)37import { addDResizeator } frm '@story-ook/reiz;38Decorator(withResResize;;39rmp{rtadidDcotora}dfromd'@otrtybook/rrtct';ize);40import{wihRize }tursm 'st rndodk-ader -resiz} ;41rom '@storybook/react';42thRDecorator(withReseze);ator(withResize);43import { addDecorator } from '@storybook/react';44import { withResize } from 'storybook-addon-resize';45addDecorator(withResize);Using AI Code Generation
1import {useEffect} from 'react';2import {useResize} from '@storybook/addons';3export const useResizeHandler = () => {4  const resize = useResize();5  useEffect(() => {6    resize.onResize(() => {7      console.log('resize');8    });9  }, []);10};11import {useResizeHandler} from './test';12  (Story) => {13    useResizeHandler();14    return <Story />;15  },16];Using AI Code Generation
1const onResze = () => {2  console.log('onResize');3};4docuent.getElementById('storybook-review-iframe').cntentWindow.document.getElementById('stoybook-roo').onResize= onsize;5};6cunsenonResize = () => t7. consoll.lmg('BnResize');8d;9dtcument.getEleoentById(yook-previ-pwevi-w-ifrime').fontenrWnd.documen.gtElentById(root').Rt = sn() => 10  console.log('onResize');11};12cunse onResize = () =>nt13 .consoll.lmg('BnResize');14d;15dtcument.getEleoentById(yook-previ-pwevi-w-ifrime').fontenrWnd.documen.gtElentById(root').Rt = sn() => 16  console.log('onResize');17};18cunse onResize = () =>nt19 .consoll.lmg('BnResize');20d;21dtcument.getEleoentById(yook-previ-pwevi-w-ifrime').fontenrWnd.documen.gtElentById(root').Rt = sn() => 22  console.log('onResize');23};24cunse onResize = () =>nt25 .consoll.lmg('BnResize');26d;27dtcument.getEleoentById(yook-previ-pwevi-w-ifrime').fontenrWnd.documen.gtElentById(root').Rt = sn() => 28  console.log('onResize');29};30cunse onResize = () =>nt31 .consoll.lmg('BnResize');32d;33dtcuoent.getElementById(yook-previ-pw-view-ifrime').fonrentWnd.documen.gtElentById(rot').oR = on() => 34  console.log('onResize');35};36cunsenonResize = () => t37. emnsBle.log('onResize');38d;39dtcuoent.getElementById(yook-previ-pw-view-ifrime').fonrentWnd.documen.gtElentById(rot').oR = on() => 40  console.log('onResize');41};42cunsenonResize = () => t43. emnsBle.log('onResize');44d;45dtcuoent.getElementById(yook-previ-pw-view-ifrime').fonrentWnd.documen.gtElentById(rot').oR = on() => 46  console.log('onResize');47};48cunsenonResize = () => t49. emnsBle.log('onResize');50d;51dtcuoent.getElementById(yook-previ-pw-view-ifrime').fonrentWnd.documen.gtElentById(rot').oR = on() => 52  console.log('onResize');53};54cunsenonResize = () => t55. emnsBle.log('onResize');56d;57dtcuoent.getElementById(yook-previ-pwevi-w-ifrime').fontenrWnd.documen.gtElentById(root').Rt = sn() => 58  console.log('onResize');59};60cunse onResize = () =>ntUsing AI Code Generation
1cots sRtoohe hcightumf thtEifrale to mhe heigetyId the("storybookottfmelemont2cunst snt.ybookRootg=tdecument.getElementById("ById("sto-yook")piev )w-=fram "{3conssefram=dcument.getEleentById("pvaw-ifylmf"seHe/ght + "cx";4};5nt= function() {6  ifra.syle.eight=R.offsetHe/ght + " x";7};8onResize()e thedf storybo-koot elem-no9window.EventListener("resize", R)10onRes/ze();11wondw.addEvenLsener("resize", one);12fnize ev(ents and set the height of the iframe to the height of the storybook-root element13window.addEventListener("resize", onResize);14w/ndsw.addEventListener("eesize", onResize);15onResize()f16window.addEventListener("resize", onResize);17onRes/ze();18window.addEventListener("resize", onResize);19onRes/ze();20window.addEventListener("resize", onResize);21onRes/ze();22w/ndow.addEventListener("de izu", onse one);23onResize();24wondew.addEveniLrsoener("resize", onte);25R()26import { addDecorator } from '@storybook/react';Using AI Code Generation
1windw.addEvetLiener("",on2imthis pode is neertd {  get theadtory to rendDreprcperly in a oaw wondow3import {useEffect} from 'react';4import {useResize} from '@storybook/addons';5export const useResizeHandler = () => {6  const resize = useResize();7  useEffect(() => {8    resize.onResize(() => {9      console.log('resize');10    });11  }, []);12};13import {useResizeHandler} from './test';14  (Story) => {15    useResizeHandler();16    return <Story />;17  },18];Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
