Best JavaScript code snippet using testing-library-react-hooks
SSAOPass.js
Source:SSAOPass.js  
...153	render: function ( renderer, writeBuffer /*, readBuffer, deltaTime, maskActive */ ) {154		// render beauty and depth155		renderer.setRenderTarget( this.beautyRenderTarget );156		renderer.clear();157		renderer.render( this.scene, this.camera );158		// render normals159		this.renderOverride( renderer, this.normalMaterial, this.normalRenderTarget, 0x7777ff, 1.0 );160		// render SSAO161		this.ssaoMaterial.uniforms[ 'kernelRadius' ].value = this.kernelRadius;162		this.ssaoMaterial.uniforms[ 'minDistance' ].value = this.minDistance;163		this.ssaoMaterial.uniforms[ 'maxDistance' ].value = this.maxDistance;164		this.renderPass( renderer, this.ssaoMaterial, this.ssaoRenderTarget );165		// render blur166		this.renderPass( renderer, this.blurMaterial, this.blurRenderTarget );167		// output result to screen168		switch ( this.output ) {169			case SSAOPass.OUTPUT.SSAO:170				this.copyMaterial.uniforms[ 'tDiffuse' ].value = this.ssaoRenderTarget.texture;171				this.copyMaterial.blending = NoBlending;172				this.renderPass( renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer );173				break;174			case SSAOPass.OUTPUT.Blur:175				this.copyMaterial.uniforms[ 'tDiffuse' ].value = this.blurRenderTarget.texture;176				this.copyMaterial.blending = NoBlending;177				this.renderPass( renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer );178				break;179			case SSAOPass.OUTPUT.Beauty:180				this.copyMaterial.uniforms[ 'tDiffuse' ].value = this.beautyRenderTarget.texture;181				this.copyMaterial.blending = NoBlending;182				this.renderPass( renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer );183				break;184			case SSAOPass.OUTPUT.Depth:185				this.renderPass( renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer );186				break;187			case SSAOPass.OUTPUT.Normal:188				this.copyMaterial.uniforms[ 'tDiffuse' ].value = this.normalRenderTarget.texture;189				this.copyMaterial.blending = NoBlending;190				this.renderPass( renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer );191				break;192			case SSAOPass.OUTPUT.Default:193				this.copyMaterial.uniforms[ 'tDiffuse' ].value = this.beautyRenderTarget.texture;194				this.copyMaterial.blending = NoBlending;195				this.renderPass( renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer );196				this.copyMaterial.uniforms[ 'tDiffuse' ].value = this.blurRenderTarget.texture;197				this.copyMaterial.blending = CustomBlending;198				this.renderPass( renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer );199				break;200			default:201				console.warn( 'THREE.SSAOPass: Unknown output type.' );202		}203	},204	renderPass: function ( renderer, passMaterial, renderTarget, clearColor, clearAlpha ) {205		// save original state206		this.originalClearColor.copy( renderer.getClearColor() );207		var originalClearAlpha = renderer.getClearAlpha();208		var originalAutoClear = renderer.autoClear;209		renderer.setRenderTarget( renderTarget );210		// setup pass state211		renderer.autoClear = false;212		if ( ( clearColor !== undefined ) && ( clearColor !== null ) ) {213			renderer.setClearColor( clearColor );214			renderer.setClearAlpha( clearAlpha || 0.0 );215			renderer.clear();216		}217		this.fsQuad.material = passMaterial;218		this.fsQuad.render( renderer );219		// restore original state220		renderer.autoClear = originalAutoClear;221		renderer.setClearColor( this.originalClearColor );222		renderer.setClearAlpha( originalClearAlpha );223	},224	renderOverride: function ( renderer, overrideMaterial, renderTarget, clearColor, clearAlpha ) {225		this.originalClearColor.copy( renderer.getClearColor() );226		var originalClearAlpha = renderer.getClearAlpha();227		var originalAutoClear = renderer.autoClear;228		renderer.setRenderTarget( renderTarget );229		renderer.autoClear = false;230		clearColor = overrideMaterial.clearColor || clearColor;231		clearAlpha = overrideMaterial.clearAlpha || clearAlpha;232		if ( ( clearColor !== undefined ) && ( clearColor !== null ) ) {233			renderer.setClearColor( clearColor );234			renderer.setClearAlpha( clearAlpha || 0.0 );235			renderer.clear();236		}237		this.scene.overrideMaterial = overrideMaterial;238		renderer.render( this.scene, this.camera );239		this.scene.overrideMaterial = null;240		// restore original state241		renderer.autoClear = originalAutoClear;242		renderer.setClearColor( this.originalClearColor );243		renderer.setClearAlpha( originalClearAlpha );244	},245	setSize: function ( width, height ) {246		this.width = width;247		this.height = height;248		this.beautyRenderTarget.setSize( width, height );249		this.ssaoRenderTarget.setSize( width, height );250		this.normalRenderTarget.setSize( width, height );251		this.blurRenderTarget.setSize( width, height );252		this.ssaoMaterial.uniforms[ 'resolution' ].value.set( width, height );...renderer.js
Source:renderer.js  
1// This file is required by the index.html file and will2// be executed in the renderer process for that window.3// All of the Node.js APIs are available in this process.4const {app, ipcMain, BrowserWindow, ipcRenderer} = require('electron')5const QRCode = require('qrcode')6const Client = require('bitcoin-core');7const adeptiod = require("./aderpc.js")8const shell = require('electron').shell;9function renderTemplate(template, data, container, force_reload = true) {10    if (!force_reload && $("#" + container).length != 0) {11        $("#mainContent").children().addClass('d-none');12        $("#" + container).removeClass('d-none');13        return14    }15    var template = Handlebars.compile(ipcRenderer.sendSync("getTemplateContent", template));16    if ($("#" + container).length == 0) {17        $("#mainContent").append("<div id='" + container + "'></div>");18    }19    /*if (!container) {20      container = $("#mainContent");21    }*/22    $("#mainContent").children().addClass('d-none');23    container = $("#" + container);24    container.removeClass('d-none');25    container.empty();26    container.html(template(data));27}28//open links externally by default29$(document).on('click', 'a[href^="http"]', function(event) {30    event.preventDefault();31    shell.openExternal(this.href);32});33function renderOverview(force_reload = false) {34    var renderData = {35        addressData: [],36    };37    renderTemplate("index.html", renderData, "main-overview", force_reload);38    $(document).trigger("render_overview");39    var canvas = document.getElementById('canvas')40    setTimeout(function() {41        setInterval(function() {42            adeptiod.command('getaccountaddress', "account").then((response) => (response != "undefined") ? qrcodeAddress(response) : console.log("getaccountaddress unknown"));43        }, 5000);44    }, 40000);45    function qrcodeAddress(addr) {46        QRCode.toCanvas(canvas, addr, function(error) {47            if (error) console.error(error)48        })49    }50}51function renderAbout(force_reload = false) {52    var renderData = {53        addressData: [],54    };55    renderTemplate("about.html", renderData, "main-about", force_reload);56    $(document).trigger("render_about");57}58function renderWallets(force_reload = false) {59    var renderData = {60        addressData: [],61    };62    renderTemplate("wallets.html", renderData, "main-wallets", force_reload);63    $(document).trigger("render_wallets");64}65function renderWallets2(force_reload = false) {66    var renderData = {67        addressData: [],68    };69    renderTemplate("wallets.html", renderData, "main-wallets", force_reload);70    $(document).trigger("render_wallets");71}72function renderSend(force_reload = false) {73    var renderData = {74        addressData: [],75    };76    renderTemplate("send.html", renderData, "main-send", force_reload);77    $(document).trigger("render_send");78}79function renderSend2(force_reload = false) {80    var renderData = {81        addressData: [],82    };83    renderTemplate("send.html", renderData, "main-send", force_reload);84    $(document).trigger("render_send");85}86function renderTransactions(force_reload = false) {87    var renderData = {88        addressData: [],89    };90    renderTemplate("transactions.html", renderData, "main-transactions", force_reload);91    $(document).trigger("render_transactions");92}93function renderPeers(force_reload = false) {94    var renderData = {95        addressData: [],96    };97    renderTemplate("peers.html", renderData, "main-peers", force_reload);98    $(document).trigger("render_peers");99}100function renderMasternodes(force_reload = false) {101    var renderData = {102        addressData: [],103    };104    renderTemplate("masternodes.html", renderData, "main-masternodes", force_reload);105    $(document).trigger("render_masternodes");106}107function renderStorade(force_reload = false) {108    var renderData = {109        addressData: [],110    };111    renderTemplate("storade.html", renderData, "main-storade", force_reload);112    $(document).trigger("render_storade");113}114function renderMasternodesList(force_reload = false) {115    var renderData = {116        addressData: [],117    };118    renderTemplate("masternodes_list.html", renderData, "main-masternodes_list", force_reload);119    $(document).trigger("render_masternodes_list");120}121function renderSendAdvanced(force_reload = false) {122    var renderData = {123        addressData: [],124    };125    renderTemplate("send_advanced.html", renderData, "main-send_advanced", force_reload);126    $(document).trigger("render_send_advanced");127}128function renderExchanges(force_reload = false) {129    var renderData = {130        addressData: [],131    };132    renderTemplate("exchanges.html", renderData, "main-exchanges", force_reload);133    $(document).trigger("render_exchanges");134}135function renderSettings(force_reload = false) {136    var renderData = {137        addressData: [],138    };139    renderTemplate("settings.html", renderData, "main-settings", force_reload);140    $(document).trigger("render_settings");141}142$("#mainNavBtnOverview").click(function() {143    renderOverview();144});145$("#mainNavBtnSend").click(function() {146    renderSend();147});148$("#mainNavBtnWallets").click(function() {149    renderWallets();150});151$("#mainNavBtnTransactions").click(function() {152    renderTransactions();153});154$("#mainNavBtnPeers").click(function() {155    renderPeers();156});157$(document).on('click', "#mainNavBtnMasternodes", function() {158    renderMasternodes();159});160$("#mainNavBtnStorade").click(function() {161    renderStorade();162});163$(document).on('click', "#mainNavBtnMasternodes_list", function() {164    renderMasternodesList();165});166$(document).on('click', "#mainNavBtnSend_advanced", function() {167    renderSendAdvanced();168});169$(document).on('click', "#mainNavBtnExchanges", function() {170    renderExchanges();171});172$(document).on('click', "#mainNavBtnSettings", function() {173    renderSettings();174});175$(document).on('click', "#mainNavBtnSend2", function() {176    renderSend2();177});178$(document).on('click', "#mainNavBtnWallets2", function() {179    renderWallets2();180});181$(document).on('click', "#mainNavBtnAbout", function() {182    renderAbout();183    $('#showAbout').modal('toggle');184});185renderAbout();186renderSend();187renderSend2();188renderWallets();189renderWallets2();190renderTransactions();191renderPeers();192renderMasternodes();193renderStorade();194renderMasternodesList();195renderExchanges();196renderSettings();...EffectComposer.js
Source:EffectComposer.js  
...68        for (i = 0; i < il; i++) {69            pass = this.passes[i];70            if (pass.enabled === false) continue;71            pass.renderToScreen = (this.renderToScreen && this.isLastEnabledPass(i));72            pass.render(this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive);73            if (pass.needsSwap) {74                if (maskActive) {75                    var context = this.renderer.context;76                    context.stencilFunc(context.NOTEQUAL, 1, 0xffffffff);77                    this.copyPass.render(this.renderer, this.writeBuffer, this.readBuffer, deltaTime);78                    context.stencilFunc(context.EQUAL, 1, 0xffffffff);79                }80                this.swapBuffers();81            }82            if (THREE.MaskPass !== undefined) {83                if (pass instanceof THREE.MaskPass) {84                    maskActive = true;85                } else if (pass instanceof THREE.ClearMaskPass) {86                    maskActive = false;87                }88            }89        }90        this.renderer.setRenderTarget(currentRenderTarget);91    },...WebGLRenderLists.js
Source:WebGLRenderLists.js  
1/**2 * @author mrdoob / http://mrdoob.com/3 */4function painterSortStable( a, b ) {5	if ( a.groupOrder !== b.groupOrder ) {6		return a.groupOrder - b.groupOrder;7	} else if ( a.renderOrder !== b.renderOrder ) {8		return a.renderOrder - b.renderOrder;9	} else if ( a.program !== b.program ) {10		return a.program.id - b.program.id;11	} else if ( a.material.id !== b.material.id ) {12		return a.material.id - b.material.id;13	} else if ( a.z !== b.z ) {14		return a.z - b.z;15	} else {16		return a.id - b.id;17	}18}19function reversePainterSortStable( a, b ) {20	if ( a.groupOrder !== b.groupOrder ) {21		return a.groupOrder - b.groupOrder;22	} else if ( a.renderOrder !== b.renderOrder ) {23		return a.renderOrder - b.renderOrder;24	} else if ( a.z !== b.z ) {25		return b.z - a.z;26	} else {27		return a.id - b.id;28	}29}30function WebGLRenderList() {31	const renderItems = [];32	let renderItemsIndex = 0;33	const opaque = [];34	const transparent = [];35	const defaultProgram = { id: - 1 };36	function init() {37		renderItemsIndex = 0;38		opaque.length = 0;39		transparent.length = 0;40	}41	function getNextRenderItem( object, geometry, material, groupOrder, z, group ) {42		let renderItem = renderItems[ renderItemsIndex ];43		if ( renderItem === undefined ) {44			renderItem = {45				id: object.id,46				object: object,47				geometry: geometry,48				material: material,49				program: material.program || defaultProgram,50				groupOrder: groupOrder,51				renderOrder: object.renderOrder,52				z: z,53				group: group54			};55			renderItems[ renderItemsIndex ] = renderItem;56		} else {57			renderItem.id = object.id;58			renderItem.object = object;59			renderItem.geometry = geometry;60			renderItem.material = material;61			renderItem.program = material.program || defaultProgram;62			renderItem.groupOrder = groupOrder;63			renderItem.renderOrder = object.renderOrder;64			renderItem.z = z;65			renderItem.group = group;66		}67		renderItemsIndex ++;68		return renderItem;69	}70	function push( object, geometry, material, groupOrder, z, group ) {71		const renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );72		( material.transparent === true ? transparent : opaque ).push( renderItem );73	}74	function unshift( object, geometry, material, groupOrder, z, group ) {75		const renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );76		( material.transparent === true ? transparent : opaque ).unshift( renderItem );77	}78	function sort( customOpaqueSort, customTransparentSort ) {79		if ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );80		if ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );81	}82	function finish() {83		// Clear references from inactive renderItems in the list84		for ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {85			const renderItem = renderItems[ i ];86			if ( renderItem.id === null ) break;87			renderItem.id = null;88			renderItem.object = null;89			renderItem.geometry = null;90			renderItem.material = null;91			renderItem.program = null;92			renderItem.group = null;93		}94	}95	return {96		opaque: opaque,97		transparent: transparent,98		init: init,99		push: push,100		unshift: unshift,101		finish: finish,102		sort: sort103	};104}105function WebGLRenderLists() {106	let lists = new WeakMap();107	function onSceneDispose( event ) {108		const scene = event.target;109		scene.removeEventListener( 'dispose', onSceneDispose );110		lists.delete( scene );111	}112	function get( scene, camera ) {113		const cameras = lists.get( scene );114		let list;115		if ( cameras === undefined ) {116			list = new WebGLRenderList();117			lists.set( scene, new WeakMap() );118			lists.get( scene ).set( camera, list );119			scene.addEventListener( 'dispose', onSceneDispose );120		} else {121			list = cameras.get( camera );122			if ( list === undefined ) {123				list = new WebGLRenderList();124				cameras.set( camera, list );125			}126		}127		return list;128	}129	function dispose() {130		lists = new WeakMap();131	}132	return {133		get: get,134		dispose: dispose135	};136}...RenderTexture.js
Source:RenderTexture.js  
1/**2* @author       Richard Davey <rich@photonstorm.com>3* @copyright    2014 Photon Storm Ltd.4* @license      {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}5*/6/**7* A RenderTexture is a special texture that allows any displayObject to be rendered to it. It allows you to take many complex objects and8* render them down into a single quad (on WebGL) which can then be used to texture other display objects with. A way of generating textures at run-time.9* 10* @class Phaser.RenderTexture11* @constructor12* @extends PIXI.RenderTexture13* @param {Phaser.Game} game - Current game instance.14* @param {string} key - Internal Phaser reference key for the render texture.15* @param {number} [width=100] - The width of the render texture.16* @param {number} [height=100] - The height of the render texture.17* @param {string} [key=''] - The key of the RenderTexture in the Cache, if stored there.18* @param {number} [scaleMode=Phaser.scaleModes.DEFAULT] - One of the Phaser.scaleModes consts.19* @param {number} [resolution=1] - The resolution of the texture being generated.20*/21Phaser.RenderTexture = function (game, width, height, key, scaleMode, resolution) {22    if (typeof key === 'undefined') { key = ''; }23    if (typeof scaleMode === 'undefined') { scaleMode = Phaser.scaleModes.DEFAULT; }24    if (typeof resolution === 'undefined') { resolution = 1; }25    /**26    * @property {Phaser.Game} game - A reference to the currently running game.27    */28    this.game = game;29    /**30    * @property {string} key - The key of the RenderTexture in the Cache, if stored there.31    */32    this.key = key;33    /**34    * @property {number} type - Base Phaser object type.35    */36    this.type = Phaser.RENDERTEXTURE;37    /**38    * @property {PIXI.Matrix} matrix - The matrix that is applied when display objects are rendered to this RenderTexture.39    */40    this.matrix = new PIXI.Matrix();41    PIXI.RenderTexture.call(this, width, height, this.game.renderer, scaleMode, resolution);42    this.render = Phaser.RenderTexture.prototype.render;43};44Phaser.RenderTexture.prototype = Object.create(PIXI.RenderTexture.prototype);45Phaser.RenderTexture.prototype.constructor = Phaser.RenderTexture;46/**47* This function will draw the display object to the texture.48*49* @method Phaser.RenderTexture.prototype.renderXY50* @param {Phaser.Sprite|Phaser.Image|Phaser.Text|Phaser.BitmapText|Phaser.Group} displayObject  The display object to render to this texture.51* @param {number} x - The x position to render the object at.52* @param {number} y - The y position to render the object at.53* @param {boolean} clear - If true the texture will be cleared before the display object is drawn.54*/55Phaser.RenderTexture.prototype.renderXY = function (displayObject, x, y, clear) {56    this.matrix.tx = x;57    this.matrix.ty = y;58    if (this.renderer.type === PIXI.WEBGL_RENDERER)59    {60        this.renderWebGL(displayObject, this.matrix, clear);61    }62    else63    {64        this.renderCanvas(displayObject, this.matrix, clear);65    }66};67/**68* This function will draw the display object to the texture.69*70* @method Phaser.RenderTexture.prototype.render71* @param {Phaser.Sprite|Phaser.Image|Phaser.Text|Phaser.BitmapText|Phaser.Group} displayObject  The display object to render to this texture.72* @param {Phaser.Point} position - A Point object containing the position to render the display object at.73* @param {boolean} clear - If true the texture will be cleared before the display object is drawn.74*/75Phaser.RenderTexture.prototype.render = function (displayObject, position, clear) {76    this.matrix.tx = position.x;77    this.matrix.ty = position.y;78    if (this.renderer.type === PIXI.WEBGL_RENDERER)79    {80        this.renderWebGL(displayObject, this.matrix, clear);81    }82    else83    {84        this.renderCanvas(displayObject, this.matrix, clear);85    }...CubeCamera.js
Source:CubeCamera.js  
...53		renderer.xr.enabled = false;54		const generateMipmaps = renderTarget.texture.generateMipmaps;55		renderTarget.texture.generateMipmaps = false;56		renderer.setRenderTarget( renderTarget, 0 );57		renderer.render( scene, cameraPX );58		renderer.setRenderTarget( renderTarget, 1 );59		renderer.render( scene, cameraNX );60		renderer.setRenderTarget( renderTarget, 2 );61		renderer.render( scene, cameraPY );62		renderer.setRenderTarget( renderTarget, 3 );63		renderer.render( scene, cameraNY );64		renderer.setRenderTarget( renderTarget, 4 );65		renderer.render( scene, cameraPZ );66		renderTarget.texture.generateMipmaps = generateMipmaps;67		renderer.setRenderTarget( renderTarget, 5 );68		renderer.render( scene, cameraNZ );69		renderer.setRenderTarget( currentRenderTarget );70		renderer.xr.enabled = currentXrEnabled;71	};72	this.clear = function ( renderer, color, depth, stencil ) {73		const currentRenderTarget = renderer.getRenderTarget();74		for ( let i = 0; i < 6; i ++ ) {75			renderer.setRenderTarget( renderTarget, i );76			renderer.clear( color, depth, stencil );77		}78		renderer.setRenderTarget( currentRenderTarget );79	};80}81CubeCamera.prototype = Object.create( Object3D.prototype );82CubeCamera.prototype.constructor = CubeCamera;...index.js
Source:index.js  
1/* globals app document */2const yo = require('yo-yo')3const renderHeader = require('../com/layout/header')4const renderFeed = require('./feed')5const renderFriends = require('./friends')6const renderFollowing = require('./following')7const renderThread = require('./thread')8const renderNewUser = require('./new-user')9const renderNotifications = require('./notifications')10const renderSettings = require('./settings')11const renderLoading = require('./loading')12const renderError = require('./error')13exports.render = function render () {14  yo.update(document.querySelector('#app-container'), yo`15    <div id="app-container">16      ${renderHeader()}17      <main>18        ${renderView()}19      </main>20      <style>body{--theme-color: ${app.getAppColor('base')}}</style>21      <style>body{--primary-btn-hover: ${app.getAppColor('primaryBtnHover')}}</style>22      <style>body{--theme-color-faded: ${app.getAppColor('faded')}}</style>23      <style>body{--theme-color-box-shadow: ${app.getAppColor('boxShadow')}}</style>24      <style>body{--theme-color-border: ${app.getAppColor('border')}}</style>25      <style>body{--theme-color-hover: ${app.getAppColor('hover')}}</style>26      <input id="profile-url" type="text" value=${app.currentUser ? app.currentUser.url : ''}>27    </div>28  `)29}30// internal methods31// =32function renderView () {33  if (app.viewError) {34    return renderError()35  }36  switch (app.currentView) {37    case 'following':38    case 'friends':39      return renderFriends()40    case 'thread':41      if (!app.viewedPost) {42        return renderLoading()43      }44      return renderThread()45    case 'notifications':46      if (!app.notifications) {47        return renderLoading()48      }49      return renderNotifications()50    case 'settings':51      return renderSettings()52    case 'user':53      if (app.currentSubview === 'following') {54        return renderFollowing()55      }56      if (!app.viewedProfile) {57        return renderLoading()58      }59    case 'feed':60    default:61      if (!app.currentUser) {62        return renderNewUser()63      }64      if (!app.posts) {65        return renderLoading()66      }67      return renderFeed()68  }...Chats.js
Source:Chats.js  
1import React, { useState, useEffect } from 'react';2import { GiftedChat } from 'react-native-gifted-chat';3import initialMessages from './messages';4import { renderInputToolbar, renderActions, renderComposer, renderSend } from './InputToolbar';5import {6  renderAvatar,7  renderBubble,8  renderSystemMessage,9  renderMessage,10  renderMessageText,11  renderCustomView,12} from './MessageContainer';13const Chats = () => {14  const [text, setText] = useState('');15  const [messages, setMessages] = useState([]);16  useEffect(() => {17    setMessages(initialMessages.reverse());18  }, []);19  const onSend = (newMessages = []) => {20    setMessages((prevMessages) => GiftedChat.append(prevMessages, newMessages));21  };22  return (23    <GiftedChat24      messages={messages}25      text={text}26      onInputTextChanged={setText}27      onSend={onSend}28      user={{29        _id: 1,30        name: 'Aaron',31        avatar: 'https://placeimg.com/150/150/any',32      }}33      alignTop34      alwaysShowSend35      scrollToBottom36      // showUserAvatar37      renderAvatarOnTop38      renderUsernameOnMessage39      bottomOffset={26}40      onPressAvatar={console.log}41      renderInputToolbar={renderInputToolbar}42      renderActions={renderActions}43      renderComposer={renderComposer}44      renderSend={renderSend}45      renderAvatar={renderAvatar}46      renderBubble={renderBubble}47      renderSystemMessage={renderSystemMessage}48      renderMessage={renderMessage}49      renderMessageText={renderMessageText}50      // renderMessageImage51      renderCustomView={renderCustomView}52      isCustomViewBottom53      messagesContainerStyle={{ backgroundColor: 'indigo' }}54      parsePatterns={(linkStyle) => [55        {56          pattern: /#(\w+)/,57          style: linkStyle,58          onPress: (tag) => console.log(`Pressed on hashtag: ${tag}`),59        },60      ]}61    />62  );63};...Using AI Code Generation
1import { renderHook } from '@testing-library/react-hooks';2import { useCounter } from './useCounter';3describe('useCounter', () => {4  it('should increment the counter', () => {5    const { result } = renderHook(() => useCounter());6    expect(result.current.count).toBe(0);7    act(() => {8      result.current.increment();9    });10    expect(result.current.count).toBe(1);11  });12  it('should decrement the counter', () => {13    const { result } = renderHook(() => useCounter());14    expect(result.current.count).toBe(0);15    act(() => {16      result.current.decrement();17    });18    expect(result.current.count).toBe(-1);19  });20});21import { renderHook } from '@testing-library/react-hooks';22import { useCounter } from './useCounter';23describe('useCounter', () => {24  it('should increment the counter', () => {25    const { result } = renderHook(() => useCounter());26    expect(result.current.count).toBe(0);27    act(() => {28      result.current.increment();29    });30    expect(result.current.count).toBe(1);31  });32  it('should decrement the counter', () => {33    const { result } = renderHook(() => useCounter());34    expect(result.current.count).toBe(0);35    act(() => {36      result.current.decrement();37    });38    expect(result.current.count).toBe(-1);39  });40});41import { renderHook } from '@testing-library/react-hooks';42import { useCounter } from './useCounter';43describe('useCounter', () => {44  it('should increment the counter', () => {45    const { result } = renderHook(() => useCounter());46    expect(result.current.count).toBe(0);47    act(() => {48      result.current.increment();49    });50    expect(result.current.count).toBe(1);51  });52  it('should decrement the counter', () => {53    const { result } = renderHook(() => useCounter());54    expect(result.current.count).toBe(0);55    act(() => {56      result.current.decrement();57    });Using AI Code Generation
1import React from 'react';2import { renderHook } from '@testing-library/react-hooks';3import { useCounter } from './useCounter';4describe('useCounter', () => {5  it('should increment the counter', () => {6    const { result } = renderHook(() => useCounter());7    expect(result.current.count).toBe(0);8    result.current.increment();9    expect(result.current.count).toBe(1);10  });11});12import { useState } from 'react';13export const useCounter = () => {14  const [count, setCount] = useState(0);15  const increment = () => setCount(count + 1);16  return {17  };18};19import React from 'react';20import { renderHook, act } from '@testing-library/react-hooks';21import { useCounter } from './useCounter';22describe('useCounter', () => {23  it('should increment the counter', () => {24    const { result } = renderHook(() => useCounter());25    expect(result.current.count).toBe(0);26    act(() => {27      result.current.increment();28    });29    expect(result.current.count).toBe(1);30  });31});32import { useState } from 'react';33export const useCounter = () => {34  const [count, setCount] = useState(0);35  const increment = () => setCount(count + 1);36  return {37  };38};39import React from 'react';40import { renderHook, act } from '@testing-library/react-hooks';41import { useCounter } from './useCounter';42describe('useCounter', () => {43  it('should increment the counter', () => {44    const { result } = renderHook(() => useCounter());45    expect(result.current.count).toBe(0);46    act(() => {47      result.current.increment();48    });49    expect(result.current.count).toBe(1);50    act(() => {51      result.current.increment();52    });53    expect(result.current.count).toBe(2);54  });55});56import { useState } from 'reactUsing AI Code Generation
1import { renderHook } from "@testing-library/react-hooks";2import { useFetch } from "./useFetch";3test("should return data", async () => {4  const { result, waitForNextUpdate } = renderHook(() =>5  );6  await waitForNextUpdate();7  expect(result.current.response.name).toBe("The Octocat");8});9import { useState, useEffect } from "react";10export const useFetch = (url) => {11  const [response, setResponse] = useState(null);12  const [error, setError] = useState(null);13  useEffect(() => {14    const fetchData = async () => {15      try {16        const res = await fetch(url);17        const json = await res.json();18        setResponse(json);19      } catch (error) {20        setError(error);21      }22    };23    fetchData();24  }, [url]);25  return { response, error };26};27import { renderHook, act } from "@testing-library/react-hooks";28import { useFetch } from "./useFetch";29test("should return data", async () => {30  const { result, waitForNextUpdate } = renderHook(() =>31  );32  await waitForNextUpdate();33  expect(result.current.response.name).toBe("The Octocat");34});35import { renderHook, act } from "@testing-library/react-hooks";36import { useFetch } from "./useFetch";37test("should return data", async () => {38  const { result, waitForNextUpdate } = renderHook(() =>39  );40  await waitForNextUpdate();41  expect(result.current.response.name).toBe("The Octocat");42});43import { renderHook, act } from "@testing-library/react-hooks";44import { useFetch } from "./useFetch";45test("should return data", async () => {46  const { result, waitForNextUpdate } = renderHook(() =>47  );48  await waitForNextUpdate();49  expect(result.current.response.name).toBe("The Octocat");50});51import { renderHook, act } from "@testing-library/react-hooks";52importUsing AI Code Generation
1import React from "react";2import { renderHook } from "@testing-library/react-hooks";3import { useFetch } from "./useFetch";4describe("useFetch", () => {5  it("should fetch data", async () => {6    const { result, waitForNextUpdate } = renderHook(() =>7    );8    expect(result.current.loading).toBe(true);9    await waitForNextUpdate();10    expect(result.current.loading).toBe(false);11    expect(result.current.data).toEqual(12      expect.arrayContaining([13        expect.objectContaining({14          title: expect.any(String),15          body: expect.any(String),16        }),17    );18  });19});20import { useState, useEffect } from "react";21export const useFetch = (url) => {22  const [data, setData] = useState([]);23  const [loading, setLoading] = useState(true);24  useEffect(() => {25    const fetchData = async () => {26      const response = await fetch(url);27      const data = await response.json();28      setData(data);29      setLoading(false);30    };31    fetchData();32  }, [url]);33  return { data, loading };34};35import { useState, useEffect } from "react";36export const useFetch = (url) => {37  const [data, setData] = useState([]);38  const [loading, setLoading] = useState(true);39  useEffect(() => {40    const fetchData = async () => {41      const response = await fetch(url);42      const data = await response.json();43      setData(data);44      setLoading(false);45    };46    fetchData();47  }, [url]);48  return { data, loading };49};50import { useState, useEffect } from "react";51export const useFetch = (url) => {52  const [data, setData] = useState([]);53  const [loading, setLoading] = useState(true);54  useEffect(() => {55    const fetchData = async () => {56      const response = await fetch(url);57      const data = await response.json();58      setData(data);59      setLoading(false);60    };61    fetchData();62  }, [url]);63  return { data, loading };64};Using AI Code Generation
1import React from 'react';2import { render, fireEvent, cleanup } from '@testing-library/react';3import useCounter from './useCounter';4afterEach(cleanup);5test('should increment count', () => {6  const { result } = renderHook(() => useCounter());7  const { getByText } = render(<result.current.count />);8  fireEvent.click(getByText('Increment'));9  expect(result.current.count).toBe(1);10});11import React from 'react';12import { render, fireEvent, cleanup } from '@testing-library/react';13import useCounter from './useCounter';14afterEach(cleanup);15test('should increment count', () => {16  const { result } = renderHook(() => useCounter());17  const { getByText } = render(<result.current.count />);18  fireEvent.click(getByText('Increment'));19  expect(result.current.count).toBe(1);20});21## Writing tests for custom hooks (contd.)22import React from 'react';23import { render, fireEvent, cleanup } from '@testing-library/react';24import useCounter from './useCounter';25afterEach(cleanup);26test('should increment count', () => {27  const { result } = renderHook(() => useCounter());28  const { getByText } = render(<result.current.count />);29  fireEvent.click(getByText('Increment'));30  expect(result.current.count).toBe(1);31});Using AI Code Generation
1import { renderHook } from "@testing-library/react-hooks";2import { useFetch } from "../useFetch";3describe("useFetch", () => {4  it("should return an empty array", async () => {5    const { result, waitForNextUpdate } = renderHook(() =>6    );7    await waitForNextUpdate();8    const { data, loading } = result.current;9    expect(data).toEqual([]);10    expect(loading).toBe(false);11  });12});13import { useState, useEffect } from "react";14export const useFetch = (url) => {15  const [data, setData] = useState([]);16  const [loading, setLoading] = useState(true);17  useEffect(() => {18    const fetchUrl = async () => {19      const response = await fetch(url);20      const data = await response.json();21      setData(data);22      setLoading(false);23    };24    fetchUrl();25  }, [url]);26  return { data, loading };27};28import { renderHook } from "@testing-library/react-hooks";29import { useFetch } from "../useFetch";30import { customRender } from "../customRender";31describe("useFetch", () => {32  it("should return an empty array", async () => {33    const { result, waitForNextUpdate } = renderHook(() =>34    );35    await waitForNextUpdate();36    const { data, loading } = result.current;37    expect(data).toEqual([]);38    expect(loading).toBe(false);39  });40});41import { render } from "@testing-library/react";42import { BrowserRouter } from "react-router-dom";43export const customRender = (ui, options) =>44  render(ui, { wrapper: BrowserRouter, ...options });45import { useState, useEffect } from "react";46export const useFetch = (url) => {47  const [data, setData] = useState([]);48  const [loading, setLoading] = useState(true);49  useEffect(() => {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!!
