Best JavaScript code snippet using playwright-internal
App.js
Source:App.js
...44 setNeg(true)45 if(display.show === ""){46 null47 } else {48 setDisplay(x => {49 return {50 ...x,51 show: -Math.abs(parseFloat(display.show))52 }53 })54 }55 56 }57 58 function clearDisplay(){59 setDisplay(prev => {60 return {61 ...prev,62 show: ""63 }64 })65 }66 67 68 69 function addOne(){70 if(plus && display.show !== ""){71 display.currentValue.push(parseFloat(display.show)) 72 clearOperationStates()73 setDisplay(x => {74 return {75 ...x,76 show: "" + "1"77 }78 })79 } else if(sub && display.show !== ""){80 display.currentValue.push(parseFloat(display.show)) 81 clearOperationStates()82 setDisplay(x => {83 return {84 ...x,85 show: "" + "1"86 }87 })88 89 } else if(muli && display.show !== ""){90 display.currentValue.push(parseFloat(display.show))91 clearOperationStates()92 setDisplay(x => {93 return {94 ...x,95 show: "" + "1"96 }97 })98 } else if(divide && display.show !== ""){99 display.currentValue.push(parseFloat(display.show))100 clearOperationStates()101 setDisplay(x => {102 return {103 ...x,104 show: "" + "1"105 }106 })107 } else if(display.show === "" && decimal){108 setDisplay(x => {109 return {110 ...x,111 show: display.show + "." + "1"112 }113 })114 setDecimal(false)115 } else if(display.show !== "" && decimal){116 setDisplay(x => {117 return {118 ...x,119 show: display.show + "." + "1",120 }121 })122 setDecimal(false)123 } else if(display.show === "" && neg){124 setDisplay(x => {125 return {126 ...x,127 show: -Math.abs(display.show + "1")128 }129 })130 setNeg(false)131 } else {132 clearOperationStates()133 setDisplay(x => {134 return {135 ...x,136 show: display.show + "1"137 }138 })139 } 140 } 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 function addTwo(){158 if(plus && display.show !== ""){159 display.currentValue.push(parseFloat(display.show)) 160 clearOperationStates()161 setDisplay(x => {162 return {163 ...x,164 show: "" + "2"165 }166 })167 } else if(sub && display.show !== ""){168 display.currentValue.push(parseFloat(display.show)) 169 clearOperationStates()170 setDisplay(x => {171 return {172 ...x,173 show: "" + "2"174 }175 })176 177 } else if(muli && display.show !== ""){178 display.currentValue.push(parseFloat(display.show))179 clearOperationStates()180 setDisplay(x => {181 return {182 ...x,183 show: "" + "2"184 }185 })186 } else if(divide && display.show !== ""){187 display.currentValue.push(parseFloat(display.show))188 clearOperationStates()189 setDisplay(x => {190 return {191 ...x,192 show: "" + "2"193 }194 })195 } else if(display.show === "" && decimal){196 setDisplay(x => {197 return {198 ...x,199 show: display.show + "." + "2"200 }201 })202 setDecimal(false)203 } else if(display.show !== "" && decimal){204 setDisplay(x => {205 return {206 ...x,207 show: display.show + "." + "2",208 }209 })210 setDecimal(false)211 }else if(display.show === "" && neg){212 setDisplay(x => {213 return {214 ...x,215 show: -Math.abs(display.show + "2")216 }217 })218 } else {219 clearOperationStates()220 setDisplay(x => {221 return {222 ...x,223 show: display.show + "2"224 }225 })226 } 227 }228 229 230 231 function addThree(){232 if(plus && display.show !== ""){233 display.currentValue.push(parseFloat(display.show)) 234 clearOperationStates()235 setDisplay(x => {236 return {237 ...x,238 show: "" + "3"239 }240 })241 } else if(sub && display.show !== ""){242 display.currentValue.push(parseFloat(display.show)) 243 clearOperationStates()244 setDisplay(x => {245 return {246 ...x,247 show: "" + "3"248 }249 })250 251 } else if(muli && display.show !== ""){252 display.currentValue.push(parseFloat(display.show))253 clearOperationStates()254 setDisplay(x => {255 return {256 ...x,257 show: "" + "3"258 }259 })260 } else if(divide && display.show !== ""){261 display.currentValue.push(parseFloat(display.show))262 clearOperationStates()263 setDisplay(x => {264 return {265 ...x,266 show: "" + "3"267 }268 })269 } else if(display.show === "" && decimal){270 setDisplay(x => {271 return {272 ...x,273 show: display.show + "." + "3"274 }275 })276 setDecimal(false)277 } else if(display.show !== "" && decimal){278 setDisplay(x => {279 return {280 ...x,281 show: display.show + "." + "3",282 }283 })284 setDecimal(false)285 } else if(display.show === "" && neg){286 setDisplay(x => {287 return {288 ...x,289 show: -Math.abs(display.show + "3")290 }291 })292 } else {293 clearOperationStates()294 setDisplay(x => {295 return {296 ...x,297 show: display.show + "3"298 }299 })300 } 301 }302 303 function addFour(){304 if(plus && display.show !== ""){305 display.currentValue.push(parseFloat(display.show)) 306 clearOperationStates()307 setDisplay(x => {308 return {309 ...x,310 show: "" + "4"311 }312 })313 } else if(sub && display.show !== ""){314 display.currentValue.push(parseFloat(display.show)) 315 clearOperationStates()316 setDisplay(x => {317 return {318 ...x,319 show: "" + "4"320 }321 })322 323 } else if(muli && display.show !== ""){324 display.currentValue.push(parseFloat(display.show))325 clearOperationStates()326 setDisplay(x => {327 return {328 ...x,329 show: "" + "4"330 }331 })332 } else if(divide && display.show !== ""){333 display.currentValue.push(parseFloat(display.show))334 clearOperationStates()335 setDisplay(x => {336 return {337 ...x,338 show: "" + "4"339 }340 })341 } else if(display.show === "" && decimal){342 setDisplay(x => {343 return {344 ...x,345 show: display.show + "." + "4"346 }347 })348 setDecimal(false)349 } else if(display.show !== "" && decimal){350 setDisplay(x => {351 return {352 ...x,353 show: display.show + "." + "4",354 }355 })356 setDecimal(false)357 } else if(display.show === "" && neg){358 setDisplay(x => {359 return {360 ...x,361 show: -Math.abs(display.show + "4")362 }363 })364 } else {365 clearOperationStates()366 setDisplay(x => {367 return {368 ...x,369 show: display.show + "4"370 }371 })372 } 373 }374 375 function addFive(){376 if(plus && display.show !== ""){377 display.currentValue.push(parseFloat(display.show)) 378 clearOperationStates()379 setDisplay(x => {380 return {381 ...x,382 show: "" + "5"383 }384 })385 } else if(sub && display.show !== ""){386 display.currentValue.push(parseFloat(display.show)) 387 clearOperationStates()388 setDisplay(x => {389 return {390 ...x,391 show: "" + "5"392 }393 })394 395 } else if(muli && display.show !== ""){396 display.currentValue.push(parseFloat(display.show))397 clearOperationStates()398 setDisplay(x => {399 return {400 ...x,401 show: "" + "5"402 }403 })404 } else if(divide && display.show !== ""){405 display.currentValue.push(parseFloat(display.show))406 clearOperationStates()407 setDisplay(x => {408 return {409 ...x,410 show: "" + "5"411 }412 })413 } else if(display.show === "" && decimal){414 setDisplay(x => {415 return {416 ...x,417 show: display.show + "." + "5"418 }419 })420 setDecimal(false)421 } else if(display.show !== "" && decimal){422 setDisplay(x => {423 return {424 ...x,425 show: display.show + "." + "5",426 }427 })428 setDecimal(false)429 } else if(display.show === "" && neg){430 setDisplay(x => {431 return {432 ...x,433 show: -Math.abs(display.show + "5")434 }435 })436 } else {437 clearOperationStates()438 setDisplay(x => {439 return {440 ...x,441 show: display.show + "5"442 }443 })444 } 445 }446 447 function addSix(){448 if(plus && display.show !== ""){449 display.currentValue.push(parseFloat(display.show)) 450 clearOperationStates()451 setDisplay(x => {452 return {453 ...x,454 show: "" + "6"455 }456 })457 } else if(sub && display.show !== ""){458 display.currentValue.push(parseFloat(display.show)) 459 clearOperationStates()460 setDisplay(x => {461 return {462 ...x,463 show: "" + "6"464 }465 })466 467 } else if(muli && display.show !== ""){468 display.currentValue.push(parseFloat(display.show))469 clearOperationStates()470 setDisplay(x => {471 return {472 ...x,473 show: "" + "6"474 }475 })476 } else if(divide && display.show !== ""){477 display.currentValue.push(parseFloat(display.show))478 clearOperationStates()479 setDisplay(x => {480 return {481 ...x,482 show: "" + "6"483 }484 })485 } else if(display.show === "" && decimal){486 setDisplay(x => {487 return {488 ...x,489 show: display.show + "." + "6"490 }491 })492 setDecimal(false)493 } else if(display.show !== "" && decimal){494 setDisplay(x => {495 return {496 ...x,497 show: display.show + "." + "6",498 }499 })500 setDecimal(false)501 } else if(display.show === "" && neg){502 setDisplay(x => {503 return {504 ...x,505 show: -Math.abs(display.show + "6")506 }507 })508 } else {509 clearOperationStates()510 setDisplay(x => {511 return {512 ...x,513 show: display.show + "6"514 }515 })516 } 517 }518 519 function addSeven(){520 if(plus && display.show !== ""){521 display.currentValue.push(parseFloat(display.show)) 522 clearOperationStates()523 setDisplay(x => {524 return {525 ...x,526 show: "" + "7"527 }528 })529 } else if(sub && display.show !== ""){530 display.currentValue.push(parseFloat(display.show)) 531 clearOperationStates()532 setDisplay(x => {533 return {534 ...x,535 show: "" + "7"536 }537 })538 539 } else if(muli && display.show !== ""){540 display.currentValue.push(parseFloat(display.show))541 clearOperationStates()542 setDisplay(x => {543 return {544 ...x,545 show: "" + "7"546 }547 })548 } else if(divide && display.show !== ""){549 display.currentValue.push(parseFloat(display.show))550 clearOperationStates()551 setDisplay(x => {552 return {553 ...x,554 show: "" + "7"555 }556 })557 } else if(display.show === "" && decimal){558 setDisplay(x => {559 return {560 ...x,561 show: display.show + "." + "7"562 }563 })564 setDecimal(false)565 } else if(display.show !== "" && decimal){566 setDisplay(x => {567 return {568 ...x,569 show: display.show + "." + "7",570 }571 })572 setDecimal(false)573 } else if(display.show === "" && neg){574 setDisplay(x => {575 return {576 ...x,577 show: -Math.abs(display.show + "7")578 }579 })580 } else {581 clearOperationStates()582 setDisplay(x => {583 return {584 ...x,585 show: display.show + "7"586 }587 })588 } 589 }590 591 function addEight(){592 if(plus && display.show !== ""){593 display.currentValue.push(parseFloat(display.show)) 594 clearOperationStates()595 setDisplay(x => {596 return {597 ...x,598 show: "" + "8"599 }600 })601 } else if(sub && display.show !== ""){602 display.currentValue.push(parseFloat(display.show)) 603 clearOperationStates()604 setDisplay(x => {605 return {606 ...x,607 show: "" + "8"608 }609 })610 611 } else if(muli && display.show !== ""){612 display.currentValue.push(parseFloat(display.show))613 clearOperationStates()614 setDisplay(x => {615 return {616 ...x,617 show: "" + "8"618 }619 })620 } else if(divide && display.show !== ""){621 display.currentValue.push(parseFloat(display.show))622 clearOperationStates()623 setDisplay(x => {624 return {625 ...x,626 show: "" + "8"627 }628 })629 } else if(display.show === "" && decimal){630 setDisplay(x => {631 return {632 ...x,633 show: display.show + "." + "8"634 }635 })636 setDecimal(false)637 } else if(display.show !== "" && decimal){638 setDisplay(x => {639 return {640 ...x,641 show: display.show + "." + "8",642 }643 })644 setDecimal(false)645 } else if(display.show === "" && neg){646 setDisplay(x => {647 return {648 ...x,649 show: -Math.abs(display.show + "8")650 }651 })652 } else {653 clearOperationStates()654 setDisplay(x => {655 return {656 ...x,657 show: display.show + "8"658 }659 })660 } 661 }662 663 function addNine(){664 if(plus && display.show !== ""){665 display.currentValue.push(parseFloat(display.show)) 666 clearOperationStates()667 setDisplay(x => {668 return {669 ...x,670 show: "" + "9"671 }672 })673 } else if(sub && display.show !== ""){674 display.currentValue.push(parseFloat(display.show)) 675 clearOperationStates()676 setDisplay(x => {677 return {678 ...x,679 show: "" + "9"680 }681 })682 683 } else if(muli && display.show !== ""){684 display.currentValue.push(parseFloat(display.show))685 clearOperationStates()686 setDisplay(x => {687 return {688 ...x,689 show: "" + "9"690 }691 })692 } else if(divide && display.show !== ""){693 display.currentValue.push(parseFloat(display.show))694 clearOperationStates()695 setDisplay(x => {696 return {697 ...x,698 show: "" + "9"699 }700 })701 } else if(display.show === "" && decimal){702 setDisplay(x => {703 return {704 ...x,705 show: display.show + "." + "9"706 }707 })708 setDecimal(false)709 } else if(display.show !== "" && decimal){710 setDisplay(x => {711 return {712 ...x,713 show: display.show + "." + "9",714 }715 })716 setDecimal(false)717 } else if(display.show === "" && neg){718 setDisplay(x => {719 return {720 ...x,721 show: -Math.abs(display.show + "1")722 }723 })724 } else {725 clearOperationStates()726 setDisplay(x => {727 return {728 ...x,729 show: display.show + "9"730 }731 })732 } 733 }734 735 function addZero(){736 if(display.show === ""){737 null738 } else if(plus && display.show !== ""){739 display.currentValue.push(parseFloat(display.show)) 740 clearOperationStates()741 setDisplay(x => {742 return {743 ...x,744 show: "" + "0"745 }746 })747 } else if(sub && display.show !== ""){748 display.currentValue.push(parseFloat(display.show)) 749 clearOperationStates()750 setDisplay(x => {751 return {752 ...x,753 show: "" + "0"754 }755 })756 757 } else if(muli && display.show !== ""){758 display.currentValue.push(parseFloat(display.show))759 clearOperationStates()760 setDisplay(x => {761 return {762 ...x,763 show: "" + "0"764 }765 })766 } else if(divide && display.show !== ""){767 display.currentValue.push(parseFloat(display.show))768 clearOperationStates()769 setDisplay(x => {770 return {771 ...x,772 show: "" + "0"773 }774 })775 } else if(display.show === "" && decimal){776 setDisplay(x => {777 return {778 ...x,779 show: display.show + "." + "0"780 }781 })782 setDecimal(false)783 } else if(display.show !== "" && decimal){784 setDisplay(x => {785 return {786 ...x,787 show: display.show + "." + "0",788 }789 })790 setDecimal(false)791 } else {792 clearOperationStates()793 setDisplay(x => {794 return {795 ...x,796 show: display.show + "0"797 }798 })799 } 800 }801 802 803 804 function addition(){ 805 if(display.currentValue.length <= 0 && display.show !== ""){806 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false)807 display.currentValue.push(parseFloat(display.show))808 clearDisplay()809 } else if(display.currentValue.length == 1 && !wasMuli && !wasSub && !wasDivide && display.show !== ""){810 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false)811 setDisplay(x => {812 return {813 ...x,814 show: parseFloat(display.show) + display.currentValue[0],815 currentValue: []816 } 817 })818 } else if(display.currentValue.length == 1 && wasSub && display.show !== ""){819 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false), setWasSub(false)820 setDisplay(x => {821 return {822 ...x,823 show: display.currentValue[0] - parseFloat(display.show),824 currentValue: []825 }826 })827 } else if(display.currentValue.length == 1 && wasMuli && display.show !== ""){828 setPlus(true), setSub(false), setMuli(false), setDivide(false), setWasPlus(true), setWasMuli(false)829 setDisplay(x => {830 return {831 ...x,832 show: display.currentValue[0] * parseFloat(display.show),833 currentValue: []834 }835 })836 } else if(display.currentValue.length == 1 && wasDivide && display.show !== ""){837 setPlus(true), setSub(false), setMuli(false), setDivide(false), setWasPlus(true), setWasDivide(false)838 setDisplay(x => {839 return {840 ...x,841 show: display.currentValue[0] / parseFloat(display.show),842 currentValue: []843 }844 })845 } else if(display.show === "" && display.currentValue.length <= 0){846 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false)847 setDisplay(x => {848 return {849 ...x,850 show: ""851 }852 })853 } else if(display.show === "" && display.currentValue.length == 1 && wasDivide){854 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false), setWasDivide(false)855 setDisplay(x => {856 return {857 ...x,858 show: display.show,859 }860 })861 } else if(display.show === "" && display.currentValue.length == 1 && wasMuli){862 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false), setWasMuli(false)863 setDisplay(x => {864 return {865 ...x,866 show: display.show867 }868 })869 } else if(display.show === "" && display.currentValue.length == 1 && wasSub){870 setPlus(true), setWasPlus(true), setSub(false), setMuli(false), setDivide(false), setWasSub(false)871 setDisplay(x => {872 return {873 ...x,874 show: display.show875 }876 })877 }878} 879 880 881 882 function subtract(){883 if(display.currentValue.length <= 0 && display.show !== ""){884 setSub(true), setWasSub(true), setPlus(false), setMuli(false), setDivide(false)885 display.currentValue.push(parseFloat(display.show))886 clearDisplay()887 } else if(display.currentValue.length == 1 && !wasPlus && !wasMuli && !wasDivide){888 setSub(true), setWasSub(true), setPlus(false), setMuli(false), setDivide(false)889 setDisplay(x => {890 return {891 ...x,892 show: display.currentValue[0] - parseFloat(display.show),893 currentValue: []894 }895 })896 } else if(display.currentValue.length == 1 && wasPlus && display.show !== ""){897 setSub(true), setPlus(false), setMuli(false), setDivide(false), setWasSub(true), setWasPlus(false)898 setDisplay(x => {899 return {900 ...x,901 show: parseFloat(display.show) + display.currentValue[0],902 currentValue: []903 }904 })905 } else if(display.currentValue.length == 1 && wasMuli && display.show !== ""){906 setSub(true), setPlus(false), setMuli(false), setDivide(false), setWasSub(true), setWasMuli(false)907 setDisplay(x => {908 return {909 ...x,910 show: parseFloat(display.show) * display.currentValue[0],911 currentValue: []912 }913 })914 } else if(display.currentValue.length == 1 && wasDivide && display.show !== ""){915 setSub(true), setPlus(false), setMuli(false), setDivide(false), setWasSub(true), setWasDivide(false)916 setDisplay(x => {917 return {918 ...x,919 show: display.currentValue[0] / parseFloat(display.show),920 currentValue: []921 }922 })923 } else if(display.show === "" && display.currentValue.length <= 0){924 setSub(true), setWasSub(true), setPlus(false), setMuli(false), setDivide(false)925 setDisplay(x => {926 return {927 ...x,928 show: ""929 }930 })931 } else if(display.show === "" && display.currentValue.length == 1 && wasPlus){932 setSub(true), setWasSub(true), setWasPlus(false), setPlus(false), setMuli(false), setDivide(false)933 setDisplay(x => {934 return {935 ...x,936 show: display.show937 }938 })939 } else if(display.show === "" && display.currentValue.length == 1 && wasMuli){940 setSub(true), setWasSub(true), setWasMuli(false), setPlus(false), setMuli(false), setDivide(false)941 setDisplay(x => {942 return {943 ...x,944 show: display.show945 }946 })947 } else if(display.show === "" && display.currentValue.length == 1 && wasDivide){948 setSub(true), setWasSub(true), setWasDivide(false), setPlus(false), setMuli(false), setDivide(false)949 setDisplay(x => {950 return {951 ...x,952 show: display.show953 }954 })955 } 956 } 957 958 function mulipcation(){959 if(display.currentValue.length <= 0 && display.show !== ""){960 setMuli(true), setWasMuli(true), setPlus(false), setSub(false), setDivide(false)961 display.currentValue.push(parseFloat(display.show))962 clearDisplay()963 } else if(display.currentValue.length == 1 && !wasSub && !wasPlus && !wasDivide){964 setMuli(true), setWasMuli(true), setSub(false), setPlus(false), setDivide(false)965 setDisplay(x => {966 return {967 ...x,968 show: parseFloat(display.show) * display.currentValue[0],969 currentValue: []970 }971 })972 } else if(display.currentValue.length == 1 && wasSub && display.show !== ""){973 setMuli(true), setSub(false), setPlus(false), setDivide(false), setWasMuli(true), setWasSub(false)974 setDisplay(x => {975 return {976 ...x,977 show: display.currentValue[0] - parseFloat(display.show),978 currentValue: []979 }980 })981 } else if(display.currentValue.length == 1 && wasPlus && display.show !== ""){982 setMuli(true), setSub(false), setPlus(false), setDivide(false), setWasPlus(false), setWasMuli(true)983 setDisplay(x => {984 return {985 ...x,986 show: display.currentValue[0] + parseFloat(display.show),987 currentValue: []988 }989 })990 } else if(display.currentValue.length == 1 && wasDivide && display.show !== ""){991 setMuli(true), setPlus(false), setSub(false), setDivide(false), setDivide(false), setWasMuli(true), setWasDivide(false)992 setDisplay(x => {993 return {994 ...x,995 show: display.currentValue[0] / parseFloat(display.show),996 currentValue: []997 }998 })999 } else if(display.show === "" && display.currentValue.length <= 0){1000 setMuli(true), setWasMuli(true), setSub(false), setPlus(false), setDivide(false)1001 setDisplay(x => {1002 return {1003 ...x,1004 show: ""1005 }1006 })1007 } else if(display.show === "" && display.currentValue.length == 1 && wasPlus){1008 setMuli(true), setWasMuli(true), setSub(false), setPlus(false), setWasPlus(false), setDivide(false)1009 setDisplay(x => {1010 return {1011 ...x,1012 show: display.show1013 }1014 })1015 } else if(display.show === "" && display.currentValue.length == 1 && wasSub){1016 setMuli(true)1017 setWasMuli(true)1018 setSub(false)1019 setWasSub(false)1020 setPlus(false)1021 setDivide(false)1022 setDisplay(x => {1023 return {1024 ...x,1025 show: display.show1026 }1027 })1028 } else if(display.show === "" && display.currentValue.length == 1 && wasDivide){1029 setMuli(true)1030 setWasMuli(true)1031 setSub(false)1032 setPlus(false)1033 setDivide(false)1034 setWasDivide(false)1035 setDisplay(x => {1036 return {1037 ...x,1038 show: display.show1039 }1040 })1041 } 1042} 1043 1044 function divition(){1045 if(display.currentValue.length <= 0 && display.show !== ""){1046 setDivide(true)1047 setWasDivide(true)1048 setPlus(false)1049 setSub(false)1050 setMuli(false)1051 display.currentValue.push(parseFloat(display.show))1052 clearDisplay()1053 } else if(display.currentValue.length == 1 && !wasMuli && !wasPlus && !wasSub){1054 setDivide(true)1055 setWasDivide(true)1056 setSub(false)1057 setMuli(false)1058 setPlus(false)1059 setDisplay(x => {1060 return {1061 ...x,1062 show: display.currentValue[0] / parseFloat(display.show),1063 currentValue: []1064 }1065 })1066 } else if(display.currentValue.length == 1 && wasSub && display.show !== ""){1067 setDivide(true)1068 setSub(false)1069 setMuli(false)1070 setPlus(false)1071 setWasDivide(true)1072 setWasSub(false)1073 setDisplay(x => {1074 return {1075 ...x,1076 show: display.currentValue[0] - parseFloat(display.show),1077 currentValue: []1078 }1079 })1080 } else if(display.currentValue.length == 1 && wasPlus && display.show !== ""){1081 setDivide(true)1082 setSub(false)1083 setPlus(false)1084 setMuli(false)1085 setWasPlus(false)1086 setWasDivide(true)1087 setDisplay(x => {1088 return {1089 ...x,1090 show: display.currentValue[0] + parseFloat(display.show),1091 currentValue: []1092 }1093 })1094 } else if(display.currentValue.length == 1 && wasMuli && display.show !== ""){1095 setDivide(true)1096 setSub(false)1097 setPlus(false)1098 setMuli(false)1099 setWasMuli(false)1100 setWasDivide(true)1101 setDisplay(x => {1102 return {1103 ...x,1104 show: display.currentValue[0] * parseFloat(display.show),1105 currentValue: []1106 }1107 })1108 } else if(display.show === "" && display.currentValue.length <= 0){1109 setDivide(true)1110 setWasDivide(true)1111 setSub(false)1112 setPlus(false)1113 setMuli(false)1114 setDisplay(x => {1115 return {1116 ...x,1117 show: ""1118 }1119 })1120 } else if(display.show === "" && display.currentValue.length == 1 && wasPlus){1121 setDivide(true)1122 setWasDivide(true)1123 setSub(false)1124 setPlus(false)1125 setWasPlus(false)1126 setMuli(false)1127 setDisplay(x => {1128 return {1129 ...x,1130 show: display.show1131 }1132 })1133 } else if(display.show === "" && display.currentValue.length == 1 && wasSub){1134 setDivide(true)1135 setWasDivide(true)1136 setSub(false)1137 setWasSub(false)1138 setPlus(false)1139 setMuli(false)1140 setDisplay(x => {1141 return {1142 ...x,1143 show: display.show1144 }1145 }) 1146 } else if(display.show === "" && display.currentValue.length == 1 && wasMuli){1147 setDivide(true)1148 setWasDivide(true)1149 setSub(false)1150 setPlus(false)1151 setMuli(false)1152 setWasMuli(false)1153 setDisplay(x => {1154 return {1155 ...x,1156 show: display.show1157 }1158 })1159 } 1160 } 1161 1162 1163 1164 1165 function solution(){1166 if(display.currentValue.length == 1 && wasPlus){1167 setWasPlus(false)1168 setWasSub(false)1169 setWasMuli(false)1170 setWasDivide(false)1171 setDisplay(x => {1172 return {1173 ...x,1174 show: display.currentValue[0] + parseFloat(display.show),1175 currentValue: []1176 }1177 })1178 } else if(display.currentValue.length == 1 && wasSub){1179 setWasPlus(false)1180 setWasSub(false)1181 setWasMuli(false)1182 setWasDivide(false)1183 setDisplay(x => {1184 return {1185 ...x,1186 show: display.currentValue[0] - parseFloat(display.show),1187 currentValue: []1188 }1189 })1190 } else if(display.currentValue.length == 1 && wasMuli){1191 setWasPlus(false)1192 setWasSub(false)1193 setWasMuli(false)1194 setWasDivide(false)1195 setDisplay(x => {1196 return {1197 ...x,1198 show: display.currentValue[0] * parseFloat(display.show),1199 currentValue: []1200 }1201 })1202 } else if(display.currentValue.length == 1 && wasDivide){1203 setWasPlus(false)1204 setWasSub(false)1205 setWasMuli(false)1206 setWasDivide(false)1207 setDisplay(x => {1208 return {1209 ...x,1210 show: display.currentValue[0] / parseFloat(display.show),1211 currentValue: []1212 }1213 })1214 }1215 }1216 1217 console.log(display.currentValue)1218 1219 1220 1221 1222 function clear(){1223 setDisplay(prev => {1224 return {1225 ...prev,1226 show: "",1227 add: [],1228 subtract: [],1229 currentValue: []1230 }1231 })1232 setPlus(false)1233 setSub(false)1234 setMuli(false)1235 setDivide(false)1236 setWasPlus(false)1237 setWasSub(false)...
lov.js
Source:lov.js
...198 var o=this199 o.oldInit()200 201 o.textField.init()202 o.textField.setDisplay(o.showTextField) 203 204 o.dateField.init()205 o.dateField.setDisplay(o.showDate)206 207 // Do not show textfield if date is visible208 if(o.showDate) 209 o.textField.setDisplay(false)210 211 o.chunkLabel.init() 212 o.chunkLabel.setHTML(o.chunkText)213 o.noChunkLabel.init()214 o.noChunkLabel.setHTML(_lovRefreshValuesLab)215 o.noChunkLabel.setDisplay(false) // Not displayed by default216 o.prevChunkIcn.init() 217 o.chunkCombo.init() 218 o.nextChunkIcn.init()219 220 o.refreshIcn.init()221 o.refreshIcn.setDisplay(o.showRefreshIcn) 222 223 o.lovList.init() 224 o.lovSearch.init()225/* o.searchField.init() 226 o.searchIcn.init()227 o.searchIcn.setDisabled((o.searchField.getValue()=='')) // Disabled if no value set on loading widget228 o.setCaseSensitive(false)229*/ 230 o.showTextFieldOnly(o.showTextOnly)231 232 o.resize(o.width,o.lines) 233}234// resize(w,lines)235// Resize the LOVWidget236function LovWidget_resize(w,lines)237// w [int] widget width, including borders238// lines [int] number of visible lines in the LOV list239{ 240 var o=this241 242 // The search field must be at least <_searchMinW>px long243 var tmp = w - _searchIcnSize244 var searchW = (tmp < _searchMinW)?_searchMinW:tmp245 246 // If not possible to have a search field of <_searchMinW>px long with the <w> specified, increase <w> 247 var newWidth= (tmp < _searchMinW)?((w+_searchMinW)-_margin):(w- _margin)248 249 var textW = newWidth250 251 var comboW = o.showRefreshIcn ? (newWidth - (2*_arrowSize+_refreshIcnSize)) : (newWidth - (2*_arrowSize))252 if ( o.showTextField ) 253 o.textField.resize(textW)254 255 if ( o.showDate )256 o.dateField.resize(newWidth)257 258 o.chunkCombo.resize(comboW)259 260 o.lovList.resize(newWidth)261 o.lovList.layer.size = lines262 263 //o.searchField.resize(searchW) 264 o.lovSearch.resize(_searchIcnSize+searchW);265}266// addChunkElem(s,val,sel,id)267// Add one element to the chunkCombo combobox268function LovWidget_addChunkElem(s,val,sel,id)269// s [String] string that will be displayed270// val [String] stored value271// sel [boolean] if true the item is selected272// id [String] the id for DHTML processing273{274 var o=this;275 o.chunkCombo.add(s,val,sel,id);276}277// addLOVElem(s,val,sel,id)278// Add one element to the lovList ListWidget279function LovWidget_addLOVElem(s,val,sel,id)280// s [String] string that will be displayed281// val [String] stored value282// sel [boolean] if true the item is selected283// id [String] the id for DHTML processing284{285 var o=this;286 o.lovList.add(s,val,sel,id);287}288// fillChunk(arrTxt,arrVal)289// Fill the chunkCombo combobox290function LovWidget_fillChunk(arrTxt,arrVal)291// This function can take one or two parameters292// 1st parameter is mandatory293// 2nd parameter is optional294// arrTxt [array] array with text to insert the combo295// arrTxt [array] array with values to insert the combo296{297 298 var o=this299 o.chunkCombo.del()300 301 //disable the buttons and the combo box when it is empty302 o.setPrevNextIconState()303 304 if ( arrTxt == null )305 { 306 o.updateWidget() 307 return308 }309 310 if ( arrVal == null )311 {312 for (var i=0;i<arrTxt.length;i++)313 o.chunkCombo.add(arrTxt[i],arrTxt[i],false,i)314 }315 else316 {317 for (var i=0;i<arrTxt.length;i++)318 o.chunkCombo.add(arrTxt[i],arrVal[i],false,i)319 }320 321 // select the 1st item322 o.chunkCombo.select(0)323 324 // set the previous and next icon state325 o.setPrevNextIconState()326 327 o.updateWidget()328}329// _fillLOV(arrTxt,arrVal)330// Fill the lovList ListWidget331function LovWidget_fillLOV(arrTxt,arrVal)332// This function can take one or two parameters333// 1st parameter is mandatory334// 2nd parameter is optional335// arrTxt [array] array with text to insert the list336// arrTxt [array] array with values to insert the list337{338 var o=this;339 o.lovList.del();340 341 if ( arrTxt == null )342 return;343 344 if ( arrVal == null )345 {346 for (var i=0;i<arrTxt.length;i++)347 o.lovList.add(arrTxt[i],arrTxt[i],false,i);348 }349 else350 {351 for (var i=0;i<arrTxt.length;i++)352 o.lovList.add(arrTxt[i],arrVal[i],false,i);353 }354}355// getSearchValue()356// Return the value inserted in the search text field357function LovWidget_getSearchValue()358// return a string with the value entered in the search field359{360 var o=this;361 return o.lovSearch.getSearchValue();362}363// setSearchValue(s)364// Set the value of the search text field365function LovWidget_setSearchValue(s)366// s [String] string that will be displayed in the textfield367{368 var o=this;369 o.lovSearch.setValue(s);370}371// getTextValue()372// Return the value inserted in the text field373function LovWidget_getTextValue()374// return a string with the value entered in the text field375{376 var o=this;377 return o.textField.getValue();378}379// setTextValue(s)380// Set the value of the search text field381function LovWidget_setTextValue(s)382// s [String] string that will be displayed in the textfield383{384 var o=this;385 o.textField.setValue(s);386}387// getChunkSelection()388// Return the selected chunk389function LovWidget_getChunkSelection()390// return a structure(index, value) of the selected chunk391{392 var o=this;393 return o.chunkCombo.getSelection();394}395// getLOVSelection()396// Return the selected lov(s)397function LovWidget_getLOVSelection()398// return an array of structure(index, value) of the selected lov(s)399{400 var o=this;401 return o.lovList.getMultiSelection();402}403// getDateValue()404// Return the value inserted in the date text field405function LovWidget_getDateValue()406// return a string with the value entered in the text field407{408 var o=this;409 return o.dateField.getValue();410}411// setDateValue(s)412// Set the value of the date text field413function LovWidget_setDateValue(s)414// s [String] string that will be displayed in the textfield415{416 var o=this;417 o.dateField.setValue(s);418}419// setTooltips(text,prev,next,refresh,search,chunk,lov)420// Set the tooltips of the differents widgets421function LovWidget_setTooltips(text,prev,next,refresh,search,chunk,lov)422{423 var o=this;424 if ( o.showTextField )425 o.textField.setTooltip(text);426 o.prevChunkIcn.setTooltip(prev);427 o.nextChunkIcn.setTooltip(next);428 if (o.showRefreshIcn)429 o.refreshIcn.setTooltip(refresh);430 //o.searchIcn.setTooltip(search); 431 o.lovSearch.searchIcn.setTooltip(search);432 o.chunkCombo.setTooltip(chunk);433 o.lovList.setTooltip(lov);434}435// LovWidget_goToChunk(step)436// Move to a specified chunk437function LovWidget_goToChunk(step)438{439 var o=this;440 if ( o.chunkCombo.getSelection() == null )441 return;442 443 var curChunk = o.chunkCombo.getSelection().index;444 445 // If click on next or previous icon,446 // select the corresponding item in the combobox447 if (step != null)448 o.chunkCombo.select(curChunk+step);449 450 // set the previous and next icon state451 o.setPrevNextIconState();452 453 // Call the user callBack454 if (o.moveCB != null)455 o.moveCB(); 456}457// function LovWidget_setPrevNextIconState458// Enables or disables the next and previous icon459// depending on the item number selected in the LOV list460function LovWidget_setPrevNextIconState()461{462 var o=this;463 464 //if combo is empty the disable combo and buttons465 if(!o.chunkCombo.getSelection())466 {467 o.chunkCombo.setDisabled(true);468 o.prevChunkIcn.setDisabled(true);469 o.nextChunkIcn.setDisabled(true); 470 }471 else472 {473 o.chunkCombo.setDisabled(false);474 }475 476 var curChunk = o.chunkCombo.getSelection().index;477 478 if ( o.chunkCombo.getCount() == 1 )479 {480 o.prevChunkIcn.setDisabled(true);481 o.nextChunkIcn.setDisabled(true);482 return;483 }484 485 if ( curChunk == 0 )486 {487 o.prevChunkIcn.setDisabled(true);488 o.nextChunkIcn.setDisabled(false);489 return;490 }491 492 if ( (curChunk+1) == o.chunkCombo.getCount() )493 {494 o.prevChunkIcn.setDisabled(false);495 o.nextChunkIcn.setDisabled(true);496 return;497 }498 499 o.prevChunkIcn.setDisabled(false);500 o.nextChunkIcn.setDisabled(false); 501}502// function LovWidget_change503// modify the UI of the widget504function LovWidget_change(label,w,lines,showText,showRefresh,moveCB,refreshCB,searchCB,505 dblClickCB,multi,enterCB,showDate,showTextOnly)506// label [String] the label of the chunk507// w [int] widget width, including borders508// lines [int] number of visible lines in the LOV list 509// IF SET TO 0 ONLY THE TEXTFIELD IS VISIBLE510// (LOVWIDGET equals a TEXTFIELDWIDGET IN THIS CASE)511// showText [boolean] display a textFieldWidget if true512// showRefresh [boolean] display a refresh icon if true513// moveCB [function] callback when click on the left arrow, combobox, right arrow514// refreshCB [function] callback when clicking on the refresh icon515// searchCB [function] callback when clicking on ENTER or on search icon516// dlbClickCB [function] callback when double clicking on the lov list517// multi [boolean] list is multi "selectionable" if true518// showDate [boolean] display a calendar widget if true519{520 var o=this521 522 // properties523 if(showText!=null)524 {525 o.showTextField = showText;526 o.textField.setDisplay(o.showTextField);527 }528 if(showRefresh!=null)529 {530 o.showRefreshIcn = showRefresh;531 o.refreshIcn.setDisplay(o.showRefreshIcn);532 o.updateWidget();//to initialize o.noChunkLabel 533 }534 if(label!=null)535 {536 o.chunkText = label;537 o.chunkLabel.setHTML(o.chunkText);538 }539 if(showDate!=null)540 {541 o.showDate = showDate;542 o.dateField.setDisplay(o.showDate);543 if(o.showDate)544 o.textField.setDisplay(false);545 }546 // methods 547 if(moveCB!=null)548 o.moveCB = moveCB;549 550 if(refreshCB!=null)551 o.refreshCB = refreshCB;552 553 if(searchCB!=null)554 o.searchCB = searchCB;555 556 if(dblClickCB!=null)557 o.dblClickCB = dblClickCB;558 559 if(enterCB!=null)560 o.enterCB = enterCB;561 //change list multi selection and lines562 o.lovList.change(multi,lines) 563 564 o.showTextOnly = showTextOnly==null?false:showTextOnly;565 o.showTextFieldOnly(o.showTextOnly)566 if (o.showTextOnly) o.lovList.del() //FR 109490 567 // change w ? if(w!=null)568 569}570// function isCaseSensitive571// indicates if the option is checked572function LovWidget_isCaseSensitive()573// return [boolean] true if the option is checked574{575 return this.lovSearch.isCaseSensitive()576}577// function setCaseSensitive578// check or uncheck the match case checkbox579// update the icon580function LovWidget_setCaseSensitive(b)581// b [boolean] used as is582{583 var o=this584 585 o.lovSearch.setCaseSensitive(b);586}587//---------------------------------------------------------------------------------------588//calback functions589//---------------------------------------------------------------------------------------590function LovWidget_prevCB()591{592 this.par.goToChunk(-1);593}594function LovWidget_nextCB()595{596 this.par.goToChunk(+1);597}598function LovWidget_comboCB()599{600 this.par.goToChunk(null);601}602function LovWidget_refreshCB()603{604 var p=this.par;605 606 if (p.refreshCB != null) 607 p.refreshCB();608}609function LovWidget_searchCB()610{611 var p=this.par;612 613 if (p.searchCB != null)614 p.searchCB();615}616function LovWidget_enterCB(e)617{618 var p=this.par;619 620 if (p.enterCB != null)621 p.enterCB(e);622}623function LovWidget_ListKeyUpCB(e)624{625 var p=this.par;626 var k=eventGetKey(e);627 if ((eventGetKey(e) == 13)&& (p.enterCB != null))628 p.enterCB(e);629}630function LovWidget_dblClickCB()631{632 var p=this.par;633 634 if (p.dblClickCB != null)635 p.dblClickCB();636}637function LovWidget_clickCB()638{639}640/*641function LovWidget_normalClickCB()642{643 var p=this.par.parIcon.par644 645 var b=this.isChecked()646 if (b)647 p.searchIcn.icon.changeImg(0,0) // normal icon648 else649 p.searchIcn.icon.changeImg(55,0) // match case icon650 p.matchCase.check(!b) 651}652function LovWidget_matchCaseClickCB()653{654 var p=this.par.parIcon.par655 656 var b=this.isChecked()657 658 if (b)659 p.searchIcn.icon.changeImg(55,0) // match case icon660 else661 p.searchIcn.icon.changeImg(0,0) // normal icon662 663 p.normal.check(!b) 664}665function LovWidget_keyUpCB()666{667 var p=this.par668 669 p.searchIcn.setDisabled((this.getValue()==''))670}671*/672function LovWidget_showTextFieldOnly(bVal)673{674 var o=this;675 o.showTextOnly=bVal676 if(o.showTextOnly == true)677 {678 o.textField.setDisplay(true);679 o.dateField.setDisplay(false);680 o.chunkLabel.setDisplay(false);681 o.prevChunkIcn.setDisplay(false);682 o.chunkCombo.setDisplay(false);683 o.nextChunkIcn.setDisplay(false); 684 o.refreshIcn.setDisplay(false);685 o.noChunkLabel.setDisplay(false);686 o.lovList.setDisplay(false);687 o.lovSearch.setDisplay(false);688 //o.searchField.setDisplay(false);689 //o.searchIcn.setDisplay(false);690 }691 else692 {693 o.textField.setDisplay(o.showTextField);694 o.dateField.setDisplay(o.showDate);695 if(o.showDate) o.textField.setDisplay(false);696 697 o.chunkLabel.setDisplay(true);698 o.prevChunkIcn.setDisplay(true);699 o.chunkCombo.setDisplay(true);700 o.nextChunkIcn.setDisplay(true);701 o.refreshIcn.setDisplay(o.showRefreshIcn);702 //be carefull o.noChunkLabel depends on the combo size ===>function updateWidget()703 o.lovList.setDisplay(true);704 o.lovSearch.setDisplay(true);705 //o.searchField.setDisplay(true);706 //o.searchIcn.setDisplay(true);707 708 // Update the widget to take the combo size into account709 o.updateWidget()710 }711}712//set the input format for calendar widget713function LovWidget_setFormatDate(format,arrDays,arrMonth,AM,PM)714{715 var o=this716 if(o.showDate && o.dateField) 717 o.dateField.setFormatInfo(format,arrDays,arrMonth,AM,PM);718}719function LovWidget_updateWidget()720{721 var o=this722 var b=(o.chunkCombo.getCount()>1)723 724 o.chunkLabel.setDisplay(b) 725 o.prevChunkIcn.setDisplay(b) 726 o.chunkCombo.setDisplay(b)727 o.nextChunkIcn.setDisplay(b)728 729 //o.noChunkLabel depends on the combo size and the display of the refresh button730 o.noChunkLabel.setDisplay(!b && o.showRefreshIcn)...
run.js
Source:run.js
...28const btn_switch = document.querySelector("#button_switchStyle")29let formula = "_";30let output = "";31// Helper functions32function setDisplay() {33 display_formula.textContent = formula;34 display_output.textContent = output;35}36function opAfterEq() {37 if(output != "") {38 output = "";39 }40}41function formulaAddElement(element) {42 if(formula === "_") {43 formula = element;44 } else {45 formula = formula+element;46 }47}48// monitor the buttons49btn_0.onclick = function() {50 opAfterEq();51 formulaAddElement("0");52 setDisplay();53}54btn_1.onclick = function() {55 opAfterEq();56 formulaAddElement("1");57 setDisplay();58}59btn_2.onclick = function() {60 opAfterEq();61 formulaAddElement("2");62 setDisplay();63}64btn_3.onclick = function() {65 opAfterEq();66 formulaAddElement("3");67 setDisplay();68}69btn_4.onclick = function() {70 opAfterEq();71 formulaAddElement("4");72 setDisplay();73}74btn_5.onclick = function() {75 opAfterEq();76 formulaAddElement("5");77 setDisplay();78}79btn_6.onclick = function() {80 opAfterEq();81 formulaAddElement("6");82 setDisplay();83}84btn_7.onclick = function() {85 opAfterEq();86 formulaAddElement("7");87 setDisplay();88}89btn_8.onclick = function() {90 opAfterEq();91 formulaAddElement("8");92 setDisplay();93}94btn_9.onclick = function() {95 opAfterEq();96 formulaAddElement("9");97 setDisplay();98}99btn_dot.onclick = function() {100 opAfterEq();101 formulaAddElement(".");102 setDisplay();103}104btn_add.onclick = function() {105 opAfterEq();106 formulaAddElement("+");107 setDisplay();108}109btn_minus.onclick = function() {110 opAfterEq();111 formulaAddElement("-");112 setDisplay();113}114btn_times.onclick = function() {115 opAfterEq();116 formulaAddElement("*");117 setDisplay();118}119btn_div.onclick = function() {120 opAfterEq();121 formulaAddElement("/");122 setDisplay();123}124btn_power.onclick = function() {125 opAfterEq();126 formulaAddElement("**");127 setDisplay();128}129btn_ans.onclick = function() {130 opAfterEq();131 ans = localStorage.getItem("ans");132 formulaAddElement(ans.toString());133 setDisplay();134}135btn_inf.onclick = function() {136 opAfterEq();137 formulaAddElement("Infinity");138 setDisplay();139}140btn_nan.onclick = function() {141 opAfterEq();142 formulaAddElement("NaN");143 setDisplay();144}145btn_mod.onclick = function() {146 opAfterEq();147 formulaAddElement("%");148 setDisplay();149}150btn_lp.onclick = function() {151 opAfterEq();152 formulaAddElement("(");153 setDisplay();154}155btn_rp.onclick = function() {156 opAfterEq();157 formulaAddElement(")");158 setDisplay();159}160btn_eq.onclick = function() {161 let err_occurred = false;162 try{163 output = eval(formula);164 } catch(err) {165 output = "An error occurred";166 err_occurred = true;167 } finally {168 formula = "_";169 }170 if(!err_occurred) {171 localStorage.setItem("ans", output);172 }173 setDisplay();174}175btn_ac.onclick = function() {176 formula = "_";177 output = "";178 setDisplay();179}180btn_del.onclick = function() {181 opAfterEq();182 formula = formula.substring(0, formula.length-1);183 if(formula.length === 0) {184 formula = "_";185 }186 setDisplay(); 187}188btn_switch.onclick = function() {189 current_text = btn_switch.textContent;190 link = document.querySelector("link")191 if(current_text === "Switch to Light Style") {192 link.href = "./css/light_style.css";193 btn_switch.textContent = "Switch to Dark Style"194 } else if (current_text === "Switch to Dark Style") {195 link.href = "./css/dark_style.css";196 btn_switch.textContent = "Switch to Eva Style"197 } else if(current_text === "Switch to Eva Style") {198 link.href = "./css/eva_style.css";199 btn_switch.textContent = "Switch to Light Style"200 }201}202// initializing203btn_switch.textContent = "Switch to Dark Style"...
DrumMachine.js
Source:DrumMachine.js
...7 const [display, setDisplay] = useState(8 "Click some buttons to hear some sounds!!"9 );10 if (display === "q") {11 setDisplay("Heater 1");12 } else if (display === "w") {13 setDisplay("Heater 2");14 } else if (display === "e") {15 setDisplay("Heater 3");16 } else if (display === "a") {17 setDisplay("Heater 4");18 } else if (display === "s") {19 setDisplay("Clap");20 } else if (display === "d") {21 setDisplay("Open HH");22 } else if (display === "z") {23 setDisplay("KicknHat");24 } else if (display === "x") {25 setDisplay("Kick");26 } else if (display === "c") {27 setDisplay("Closed HH");28 }29 return (30 <div className={drummachine} id={"drum-machine"}>31 <Display display={display} />32 <div className={grid}>33 <div className={padcontainer}34 onClick={() => {35 setDisplay("Heater 1");36 }}37 >38 <DrumPad39 id={"qKey"}40 handleKeys={["Q"]}41 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Heater-1.mp3"42 />43 </div>44 <div className={padcontainer}45 onClick={() => {46 setDisplay("Heater 2");47 }}48 >49 <DrumPad50 id={"wKey"}51 handleKeys={["W"]}52 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Heater-2.mp3"53 />54 </div>55 <div className={padcontainer}56 onClick={() => {57 setDisplay("Heater 3");58 }}59 >60 <DrumPad61 id={"eKey"}62 handleKeys={["E"]}63 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Heater-3.mp3"64 />65 </div>66 <div className={padcontainer}67 onClick={() => {68 setDisplay("Heater 4");69 }}70 >71 <DrumPad72 id={"aKey"}73 handleKeys={["A"]}74 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Heater-4_1.mp3"75 />76 </div>77 <div className={padcontainer}78 onClick={() => {79 setDisplay("Clap");80 }}81 >82 <DrumPad83 id={"sKey"}84 handleKeys={["S"]}85 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Heater-6.mp3"86 />87 </div>88 <div className={padcontainer}89 onClick={() => {90 setDisplay("Open HH");91 }}92 >93 <DrumPad94 id={"dKey"}95 handleKeys={["D"]}96 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Dsc_Oh.mp3"97 />98 </div>99 <div className={padcontainer}100 onClick={() => {101 setDisplay("KickNHat");102 }}103 >104 <DrumPad105 id={"zKey"}106 handleKeys={["Z"]}107 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Kick_n_Hat.mp3"108 />109 </div>110 <div className={padcontainer}111 onClick={() => {112 setDisplay("Kick");113 }}114 >115 <DrumPad116 id={"xKey"}117 handleKeys={["X"]}118 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/RP4_KICK_1.mp3"119 />120 </div>121 <div className={padcontainer}122 onClick={() => {123 setDisplay("Closed HH");124 }}125 >126 <DrumPad127 id={"cKey"}128 handleKeys={["C"]}129 audioSrc="https://s3.amazonaws.com/freecodecamp/drums/Cev_H2.mp3"130 />131 </div>132 </div>133 <KeyboardEventHandler134 handleKeys={["q", "w", "e", "a", "s", "d", "z", "x", "c"]}135 onKeyEvent={(key, e) => setDisplay(key)}136 />137 </div>138 );139};...
App.jsx
Source:App.jsx
...46 const ChordChanger = (temp) => {47 switch(temp) {48 case 'C':49 C.map(n => console.log(n));50 setDisplay(display.concat(C));51 break;52 case 'Db':53 Db.map(n => console.log(n));54 setDisplay(display.concat(Db));55 break;56 case 'D':57 D.map(n => console.log(n));58 setDisplay(display.concat(D));59 break;60 case 'Dm':61 Dm.map(n => console.log(n));62 setDisplay(display.concat(Dm));63 break;64 case 'Eb':65 Eb.map(n => console.log(n));66 setDisplay(display.concat(Eb));67 break;68 case 'E':69 E.map(n => console.log(n));70 setDisplay(display.concat(E));71 break;72 case 'Em':73 Em.map(n => console.log(n));74 setDisplay(display.concat(Em));75 break;76 case 'F':77 F.map(n => console.log(n));78 setDisplay(display.concat(F));79 break;80 case 'Fm':81 Fm.map(n => console.log(n));82 setDisplay(display.concat(Fm));83 break;84 case 'Gb':85 Gb.map(n => console.log(n));86 setDisplay(display.concat(Gb));87 break;88 case 'G':89 G.map(n => console.log(n));90 setDisplay(display.concat(G));91 break;92 case 'Gm':93 Gm.map(n => console.log(n));94 setDisplay(display.concat(Gm));95 break;96 case 'Ab':97 Ab.map(n => console.log(n));98 setDisplay(display.concat(Ab));99 break;100 case 'Abm':101 Abm.map(n => console.log(n));102 setDisplay(display.concat(Abm));103 break;104 case 'A':105 A.map(n => console.log(n));106 setDisplay(display.concat(A));107 break;108 case 'Am':109 Am.map(n => console.log(n));110 setDisplay(display.concat(Am));111 break;112 case 'Bb':113 Bb.map(n => console.log(n));114 setDisplay(display.concat(Bb));115 break;116 case 'B':117 B.map(n => console.log(n));118 setDisplay(display.concat(B));119 break;120 case 'Bm':121 Bm.map(n => console.log(n));122 setDisplay(display.concat(Bm));123 break;124 default:125 console.log('oops');126 }127 };128 129 130 131 const value = C.map((n, i) => {132 console.log('value', value);133 return (134 135 <li onClick={() => {136 return (setChord(n), ChordChanger(n));...
Calculator.js
Source:Calculator.js
...10 </div>11 <div className='Char'>12 <div className='row-1'>13 <button onClick={() => {14 setDisplay(9)15 }}>9</button>16 <button onClick={() => {17 setDisplay(8)18 }}>8</button>19 <button onClick={() => {20 setDisplay(7)21 }}>7</button>22 <button onClick={() => {23 setDisplay(0)24 }}>C</button>25 </div>26 <div className='row-2'>27 <button onClick={() => {28 setDisplay(6)29 }}>6</button>30 <button onClick={() => {31 setDisplay(5)32 }}>5</button>33 <button onClick={() => {34 setDisplay(4)35 }}>4</button>36 <button onClick={() => {37 setDisplay('*')38 }}>Ã</button>39 </div>40 <div className='row-3'>41 <button onClick={() => {42 setDisplay(3)43 }}>3</button>44 <button onClick={() => {45 setDisplay(2)46 }}>2</button>47 <button onClick={() => {48 setDisplay(1)49 }}>1</button>50 <button onClick={() => {51 setDisplay('/')52 }}>÷</button>53 </div>54 <div className='row-4'>55 <button onClick={() => {56 setDisplay(0)57 }}>0</button>58 <button onClick={() => {59 setDisplay('+')60 }}>+</button>61 <button onClick={() => {62 setDisplay('-')63 }}>-</button>64 <button onClick={() => {65 setDisplay('=')66 }}>=</button>67 </div>68 </div>69 </div>70 </div>71 )72}...
index.js
Source:index.js
...19 setNumero(0);20 };21 if (press === "C") {22 console.log(press);23 //setDisplay("");24 setDisplay("0");25 setState(null);26 setOperac(null);27 }28 if (press === ".") {29 if (display.includes(".")) return;30 setDisplay(display + ".");31 return;32 }33 if (oper === 0) {34 if (display.length === 10) return;35 if (display === "0" || display === "-0") {36 press === "0" ? setDisplay("0") : setDisplay(press);37 } else {38 if (operac !== null) {39 setDisplay(`${display}${press}`);40 setNumero(`${numero}${press}`);41 } else {42 setDisplay(`${display}${press}`);43 }44 }45 } else {46 //--------------------------------------47 if (press === "+") {48 if (operac === null) {49 setOperac(operaciones.suma);50 setDisplay(`${display}${press}`);51 formatNumber();52 //console.log(operando);53 } else {54 formatNumber();55 calcular();56 setDisplay(numero);57 }58 }59 //------------------------hasta aca ok60 if (press === "=") {61 display.endsWith(".")62 ? setNumero(parseFloat(display.slice(0, -1)))63 : setNumero(parseFloat(display));64 calcular();65 }66 }67 };68 const calcular = () => {69 switch (operac) {70 case operaciones.suma:...
main.js
Source:main.js
1function setDisplay(idName, displayValue) {2 var item = document.getElementById(idName);3 item.style.display = displayValue;4 }5 6 function displayHome() {7 setDisplay("home", "block");8 setDisplay("workex", "none");9 setDisplay("edu", "none");10 setDisplay("info", "none");11 setDisplay("certificates", "none");12 setDisplay("gallery", "none");13 }14 15 function displayWorkex() {16 setDisplay("home", "none");17 setDisplay("workex", "block");18 setDisplay("edu", "none");19 setDisplay("info", "none");20 setDisplay("certificates", "none");21 setDisplay("gallery", "none");22 }23 24 function displayEdu() {25 setDisplay("home", "none");26 setDisplay("workex", "none");27 setDisplay("edu", "block");28 setDisplay("info", "none");29 setDisplay("certificates", "none");30 setDisplay("gallery", "none");31 }32 function displayInfo() {33 setDisplay("home", "none");34 setDisplay("workex", "none");35 setDisplay("edu", "none");36 setDisplay("info", "block");37 setDisplay("certificates", "none");38 setDisplay("gallery", "none");39 }40 function displayCertificates() {41 setDisplay("home", "none");42 setDisplay("workex", "none");43 setDisplay("edu", "none");44 setDisplay("info", "none");45 setDisplay("certificates", "block");46 setDisplay("gallery", "none");47 }48 function displayGallery() {49 setDisplay("home", "none");50 setDisplay("workex", "none");51 setDisplay("edu", "none");52 setDisplay("info", "none");53 setDisplay("certificates", "none");54 setDisplay("gallery", "block");...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.waitForTimeout(5000);7 await page.evaluate(() => {8 window.playwright.setDisplay({ width: 800, height: 600, deviceScaleFactor: 1, isMobile: false, hasTouch: false, colorScheme: 'light' });9 });10 await page.waitForTimeout(5000);11 await browser.close();12})();13const { chromium } = require('playwright');14const { test, expect } = require('@playwright/test');15test.use({ viewport: { width: 800, height: 600 } });16test('test', async ({ page }) => {17 await page.waitForTimeout(5000);18 await page.evaluate(() => {19 window.playwright.setDisplay({ width: 800, height: 600, deviceScaleFactor: 1, isMobile: false, hasTouch: false, colorScheme: 'light' });20 });21 await page.waitForTimeout(5000);22});23const { chromium } = require('playwright');24const { test, expect } = require('@playwright/test');25test.use({ viewport: { width: 800, height: 600 } });26test('test', async ({ page }) => {27 await page.waitForTimeout(5000);28 await page.setViewportSize({ width: 800, height: 600 });29 await page.waitForTimeout(5000);30});31Note: You can also set the viewport size using the launch() method of Playwright API
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.setDisplay({ width: 800, height: 600 });7 await page.screenshot({ path: 'example.png' });8 await browser.close();9})();10const { chromium } = require('playwright');11(async () => {12 const browser = await chromium.launch();13 const context = await browser.newContext();14 const page = await context.newPage();15 await page.setDisplay({ width: 800, height: 600 });16 await page.screenshot({ path: 'example.png' });17 await browser.close();18})();
Using AI Code Generation
1const {chromium} = require('playwright');2(async () => {3 const browser = await chromium.launch({headless: false});4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.setViewportSize({width: 1280, height: 720});7 await page.screenshot({path: 'screenshot.png'});8 await browser.close();9})();10const {chromium} = require('playwright');11(async () => {12 const browser = await chromium.launch({headless: false});13 const context = await browser.newContext();14 const page = await context.newPage();15 await page.setViewportSize({width: 1280, height: 720});16 await page.screenshot({path: 'screenshot.png'});17 await browser.close();18})();19const {chromium} = require('playwright');20(async () => {21 const browser = await chromium.launch({headless: false});22 const context = await browser.newContext();23 const page = await context.newPage();24 await page.setViewportSize({width: 1280, height: 720});25 await page.screenshot({path: 'screenshot.png'});26 await browser.close();27})();28const {chromium} = require('playwright');29(async () => {30 const browser = await chromium.launch({headless: false});31 const context = await browser.newContext();32 const page = await context.newPage();33 await page.setViewportSize({width: 1280, height: 720});34 await page.screenshot({path: 'screenshot.png'});35 await browser.close();36})();37const {chromium} = require('playwright');38(async () => {39 const browser = await chromium.launch({headless: false});40 const context = await browser.newContext();41 const page = await context.newPage();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext({ viewport: { width: 640, height: 480 } });5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: 'example.png' });15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: 'example.png' });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: 'example.png' });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: 'example.png' });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.screenshot({ path: 'example.png' });
Using AI Code Generation
1const { setDisplay } = require('playwright/lib/server/chromium/crBrowser');2const browser = await chromium.launch();3const context = await browser.newContext();4const page = await context.newPage();5await setDisplay(page, { width: 1000, height: 1000, deviceScaleFactor: 2, mobile: true });6await page.screenshot({ path: 'example.png' });7const { setDisplay } = require('playwright/lib/server/chromium/crBrowser');8const browser = await chromium.launch();9const context = await browser.newContext();10const page = await context.newPage();11await setDisplay(page, { width: 1000, height: 1000, deviceScaleFactor: 2, mobile: true });12await page.screenshot({ path: 'example.png' });13const { setDisplay } = require('playwright/lib/server/chromium/crBrowser');14const browser = await chromium.launch();15const context = await browser.newContext();16const page = await context.newPage();17await setDisplay(page, { width: 1000, height: 1000, deviceScaleFactor: 2, mobile: true });18await page.screenshot({ path: 'example.png' });19const { setDisplay } = require('playwright/lib/server/chromium/crBrowser');20const browser = await chromium.launch();21const context = await browser.newContext();22const page = await context.newPage();23await setDisplay(page, { width: 1000, height: 1000, deviceScaleFactor: 2, mobile: true });24await page.screenshot({ path: 'example.png' });25const { setDisplay } = require('playwright/lib/server/chromium/crBrowser');26const browser = await chromium.launch();27const context = await browser.newContext();28const page = await context.newPage();29await setDisplay(page, { width: 1000, height: 1000, deviceScaleFactor: 2, mobile: true });
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext({5 viewport: { width: 800, height: 600 },6 });7 const page = await context.newPage();8 await page.screenshot({ path: `example.png` });9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch({ headless: false });14 const context = await browser.newContext({15 viewport: { width: 800, height: 600 },16 });17 const page = await context.newPage();18 await page.screenshot({ path: `example.png` });19 await browser.close();20})();21const { chromium } = require('playwright');22(async () => {23 const browser = await chromium.launch({ headless: false });24 const context = await browser.newContext({25 viewport: { width: 800, height: 600 },26 });27 const page = await context.newPage();28 await page.screenshot({ path: `example.png` });29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch({ headless: false });34 const context = await browser.newContext({35 viewport: { width: 800, height: 600 },36 });37 const page = await context.newPage();38 await page.screenshot({ path: `example.png` });39 await browser.close();40})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext({5 });6 const page = await context.newPage();7 await page.screenshot({ path: `wikipedia-home-mobile.png` });8 await browser.close();9})();10const { chromium } = require('playwright');11(async () => {12 const browser = await chromium.launch();13 const context = await browser.newContext({14 });15 const page = await context.newPage();16 await page.screenshot({ path: `wikipedia-home-mobile.png` });17 await browser.close();18})();19const { chromium } = require('playwright');20(async () => {21 const browser = await chromium.launch();22 const context = await browser.newContext({23 });24 const page = await context.newPage();25 await page.screenshot({ path: `wikipedia-home-mobile.png` });26 await browser.close();27})();28const { chromium } = require('playwright');29(async () => {30 const browser = await chromium.launch();31 const context = await browser.newContext({32 });33 const page = await context.newPage();34 await page.screenshot({ path: `wikipedia-home-mobile.png` });
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({4 });5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.waitForSelector('text=Get started');8 await page.click('text=Get started');9 await page.waitForSelector('text=API reference');10 await page.click('text=API reference');11 await page.waitForSelector('text=Page');12 await page.click('text=Page');13 await page.waitForSelector('text=setDisplaySize');14 await page.click('text=setDisplaySize');15 await page.waitForSelector('text=page.setDisplaySize(options)');16 await page.click('text=page.setDisplaySize(options)');17 await page.waitForSelector('text=Parameters');18 await page.click('text=Parameters');19 await page.waitForSelector('text=options');20 await page.click('text=options');21 await page.waitForSelector('text=Object');22 await page.click('text=Object');23 await page.waitForSelector('text=width');24 await page.click('text=width');25 await page.waitForSelector('text=Number');26 await page.click('text=Number');27 await page.waitForSelector('text=height');28 await page.click('text=height');29 await page.waitForSelector('text=scaleFactor');30 await page.click('text=scaleFactor');31 await page.waitForSelector('text=1');32 await page.click('text=1');33 await page.waitForSelector('text=mobile');34 await page.click('text=mobile');35 await page.waitForSelector('text=boolean');36 await page.click('text=boolean');37 await page.waitForSelector('text=Returns');38 await page.click('text=Returns');39 await page.waitForSelector('text=Promise');40 await page.click('text=Promise');41 await page.waitForSelector('text=Promise<void>');42 await page.click('text=Promise<void>');43 await page.waitForSelector('text=Example');44 await page.click('text=Example');45 await page.waitForSelector('text=const page = await browser.newPage();');46 await page.click('text=const page = await browser.newPage();');47 await page.waitForSelector('text=await page.setDisplaySize
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!