Best JavaScript code snippet using puppeteer
Seller.js
Source:Seller.js
1import React, { Component } from 'react';2import './../Seller/Seller.scss';3class Seller extends Component {4 constructor(props) {5 super(props)6 this.state = {7 propertyName: '',8 propertyDesc: '',9 propertyType: '',10 bed: '',11 bath: '',12 propertySqftArea: '',13 propertyPrice: '',14 propertyStreet: '',15 propertyCity: '',16 propertyState: '',17 propertyZipcode: '',18 propertyBuildDate: '',19 image: '',20 loading: 'false',21 previewSource: '',22 imageurl: "",23 selectedImages: [],24 seller: {},25 }26 this.loadSellerDetails = this.loadSellerDetails.bind(this);27 }28 componentDidMount() {29 if(localStorage.getItem('username')==null || localStorage.getItem('username')=='admin'){30 alert('You do not have permission to view this page. Please login with proper user');31 window.location.assign('/');32 }33 this.loadSellerDetails()34 }35 //load seller36 loadSellerDetails() {37 const temp = JSON.parse(localStorage.getItem('user'))38 this.setState({39 seller: temp40 })41 }42 //handle change43 handlepropertyIdChange = (event) => {44 this.setState({45 propertyId: event.target.value46 })47 }48 //handle change49 handlepropertyNameChange = (event) => {50 this.setState({51 propertyName: event.target.value52 })53 }54 //handle change55 handlepropertyDescChange = (event) => {56 this.setState({57 propertyDesc: event.target.value58 })59 }60 // //handle change61 handlepropertyTypeChange = (event) => {62 this.setState({63 propertyType: event.target.value64 })65 }66 //handle change67 handlepropertyBedChange = (event) => {68 this.setState({69 bed: event.target.value70 })71 }72 //handle change73 handlepropertyBathChange = (event) => {74 this.setState({75 bath: event.target.value76 })77 }78 //handle change79 handlepropertySqftAreaChange = (event) => {80 this.setState({81 propertySqftArea: event.target.value82 })83 }84 //handle change85 handlepropertyPriceChange = (event) => {86 this.setState({87 propertyPrice: event.target.value88 })89 }90 //handle change91 handlepropertyStreetChange = (event) => {92 this.setState({93 propertyStreet: event.target.value94 })95 }96 //handle change97 handlepropertyCityChange = (event) => {98 this.setState({99 propertyCity: event.target.value100 })101 }102 //handle change103 handlepropertyStateChange = (event) => {104 this.setState({105 propertyState: event.target.value106 })107 }108 //handle change109 handlepropertyZipcodeChange = (event) => {110 this.setState({111 propertyZipcode: event.target.value112 })113 }114 //handle change115 handlepropertyBuildDateChange = (event) => {116 this.setState({117 propertyBuildDate: event.target.value118 })119 }120 //post data to database121 async getData() {122 this.state.selectedImages.push(this.state.imageurl)123 const { propertyId, propertyName, propertyDesc, propertyType, propertySqftArea, propertyPrice, propertyStreet,124 propertyCity, propertyState, propertyZipcode, propertyBuildDate, bed, bath, seller, buyer, selectedImages } = this.state;125 await fetch('http://localhost:3000/homeSearch/', {126 method: 'POST',127 headers: {128 Accept: 'application/json',129 'Content-Type': 'application/json',130 },131 body: JSON.stringify({132 propertyId, propertyName, propertyDesc, propertyType, propertySqftArea, propertyPrice, propertyStreet,133 propertyCity, propertyState, propertyZipcode, propertyBuildDate, bed, bath, seller, buyer, selectedImages134 })135 }).then(response => {136 console.log(response)137 })138 .catch(error => {139 console.log(error)140 })141 alert("Property added successfully!!!");142 window.location.assign('/property');143 }144 //handle file change145 handleFileInputChange = async e => {146 const files = e.target.files147 const data = new FormData()148 const resultUrls = []149 for (let i = 0; i < files.length; i++) {150 let file = files[i];151 this.previewFile(file);152 const formData = new FormData();153 formData.append("file", file);154 formData.append("upload_preset", "easy_homes");155 fetch(156 'https://api.cloudinary.com/v1_1/sm-entreperises/image/upload',157 {158 method: 'Post',159 body: formData160 }161 ).then(response => response.json())162 .then(newData => {163 const url = newData.url;164 if (url.length != 0 && url !== "") {165 this.setState({166 selectedImages: [...this.state.selectedImages, url]167 })168 }169 })170 }171 }172 //preview file173 previewFile = (file) => {174 const reader = new FileReader();175 reader.readAsDataURL(file);176 reader.onloadend = () => {177 this.setState({ previewSource: reader.result })178 }179 }180 //submit data181 handleSubmit = (event) => {182 if (this.state.propertyName !== "" && this.state.propertyDesc !== "" && this.state.propertyType !== "" && this.state.bed !== "" && this.state.bath !== ""183 && this.state.propertySqftArea !== "" && this.state.propertyPrice !== "" && this.state.propertyStreet !== "" && this.state.propertyCity !== ""184 && this.state.propertyState !== "" && this.state.propertyZipcode !== "" && this.state.propertyBuildDate !== "") {185 event.preventDefault()186 this.getData();187 if (!this.state.previewSource) return;188 this.setState({ uploadImage: this.state.previewSource })189 }190 else {191 alert("Please fill in all the details!!!")192 }193 }194 render() {195 return (196 <div className="bkImage">197 <form onSubmit={this.handleSubmit} className="form">198 <div className="formContainer">199 <div className="lblContainer">200 <label className="desc">Name :</label>201 <input className="inputProperty" type='text' value={this.state.propertyName} onChange={this.handlepropertyNameChange} />202 </div>203 <div className="lblContainer">204 <label className="desc">Description :</label>205 <input className="inputProperty" type='text' value={this.state.propertyDesc} onChange={this.handlepropertyDescChange} />206 </div>207 <div className="lblContainer">208 <label className="desc">Type :</label>209 <select value={this.state.value} onChange={this.handlepropertyTypeChange}>210 <option value="None">None </option>211 <option value="Appartment">Apartment </option>212 <option value="Condos">Condos</option>213 <option value="Home">Home</option>214 <option value="Studio">Studio</option>215 </select>216 </div>217 <div className="lblContainer">218 <label className="desc">Bed :</label>219 <input className="inputProperty" type='number' min="0" value={this.state.bed} onChange={this.handlepropertyBedChange} />220 </div>221 <div className="lblContainer">222 <label className="desc">Bath :</label>223 <input className="inputProperty" type='number' min="0" value={this.state.bath} onChange={this.handlepropertyBathChange} />224 </div>225 <div className="lblContainer">226 <label className="desc">Area :</label>227 <input className="inputProperty" type='text' value={this.state.propertySqftArea} onChange={this.handlepropertySqftAreaChange} />228 </div>229 <div className="lblContainer">230 <label className="desc">Price :</label>231 <input className="inputProperty" type='text' value={this.state.propertyPrice} onChange={this.handlepropertyPriceChange} />232 </div>233 <div className="lblContainer">234 <label className="desc">Street :</label>235 <input className="inputProperty" type='text' value={this.state.propertyStreet} onChange={this.handlepropertyStreetChange} />236 </div>237 <div className="lblContainer">238 <label className="desc">City :</label>239 <input className="inputProperty" type='text' value={this.state.propertyCity} onChange={this.handlepropertyCityChange} />240 </div>241 <div className="lblContainer">242 <label className="desc">State :</label>243 <input className="inputProperty" type='text' value={this.state.propertyState} onChange={this.handlepropertyStateChange} />244 </div>245 <div className="lblContainer">246 <label className="desc">ZipCode :</label>247 <input className="inputProperty" type='number' value={this.state.propertyZipcode} onChange={this.handlepropertyZipcodeChange} />248 </div>249 <div className="lblContainer">250 <label className="desc">Build Date :</label>251 <input className="inputProperty" type='date' value={this.state.propertyBuildDate} onChange={this.handlepropertyBuildDateChange} />252 </div>253 <input className="imgUpload" type="file" name="file" multiple onChange={this.handleFileInputChange} />254 <button onClick={this.handleSubmit} className="btnprop" type="submit">Add Property</button>255 </div>256 </form>257 {this.state.selectedImages && this.state.selectedImages.map((per) => {258 return (259 <img className="br" src={per} alt="chosen" style={{ height: '200px', width: '250px', margin: "10px" }} />260 )261 })262 }263 </div>264 )265 }266}...
modelproperty.js
Source:modelproperty.js
1import React, {useState, useEffect} from "react";2import Button from "submodule/components/CustomButtons/Button";3import { makeStyles } from "@material-ui/core/styles";4import {request} from "/submodule/networks/request";5import Prompt from "/submodule/components/Prompt/Prompt";6import List from '@material-ui/core/List';7import ListItem from '@material-ui/core/ListItem';8import ListItemText from '@material-ui/core/ListItemText';9import ConfirmationDialogRaw from "../oncoming/addCut"10import Card from "submodule/components/Card/Card";11import CardHeader from "submodule/components/Card/CardHeader";12import CardBody from "submodule/components/Card/CardBody";13import CardFooter from "submodule/components/Card/CardFooter";14import ImageCut from "./imageCut"15import VideoCut from "./videoCut"16import AudioCut from "./audioCut"17import TextCut from "./textCut"18import IntCut from "./intCut"19import FloatCut from "./floatCut"20const styles = {21 btn: {22 marginTop: 20,23 display: 'flex',24 justifyContent: 'space-between'25 },26 root: {27 width: '100%',28 maxWidth: 360,29 },30 paper: {31 width: '80%',32 maxHeight: 435,33 },34};35const useStyles = makeStyles(styles);36export default function modelproperty(props) {37 const classes = useStyles();38 const [hint, setHint] = useState({ open: false, severity: 'success', message: 'æ示信æ¯!' });//å¼¹çªç¶æ39 function hintOpen(message, severity) {//å¼¹çª40 setHint({ open: true, severity, message });41 }42 const { handleproperty, imports, pro, type } = props;43 const { titleText, amendButtons } = imports;44 const [open, setOpen] = useState(false);//éæ©å±æ§ç±»åå¼¹çªçç¶æ45 const [value, setValue] = useState('');//éæ©å±æ§ç±»åçå¼46 const [ property, setproperty ] = useState(pro ? pro : []);//ä¼ å
¥çå±æ§æ°æ®47 const [ amend, setamend ] = useState(type ? false : true);//æ交æé®ç¶æ48 const DetailsButtons = ()=>{49 return amendButtons.map((btn, index) => {50 return <Button color={btn.color ? btn.color : 'primary'} key={index} onClick={btn.func}>{btn.name}</Button>51 })52 }53 const handleClickListItem = () => {54 setOpen(true);55 };56 // å
³éå¼¹çªçåè°57 const handleClose = (newValue,newproperty) => {58 setOpen(false);59 if (newValue) {60 setValue(newValue);61 }62 if(newproperty){63 setproperty(newproperty)64 }65 };66 // æ´æ¹å±æ§ååå¼æ¶ä¿®æ¹property67 const handleProperty = (newproperty) => {68 if(newproperty){69 property.map((item,index) => {70 if(item.id){71 if(item.id == newproperty.id){72 setproperty((prop) => {73 prop.splice(index,1,newproperty)74 return prop75 })76 return77 }78 }79 if(item.uuid){80 if(item.uuid == newproperty.uuid){81 setproperty((prop) => {82 prop.splice(index,1,newproperty)83 return prop84 })85 return86 }87 }88 })89 }90 }91 // å é¤å±æ§92 const handleDelete = (id) => {93 property.map((item,index) => {94 if(item.id){95 if(item.id == id){96 setproperty((prop) => {97 prop.splice(index,1)98 return prop99 })100 return101 }102 }103 if(item.uuid){104 if(item.uuid == id){105 setproperty((prop) => {106 prop.splice(index,1)107 return prop108 })109 return110 }111 }112 })113 setproperty([...property])114 }115 // ä¸ä¼ æ件116 async function upload (){117 if(!type){118 if(amend){ setamend(false); return }119 }120 let arr = [];121 let arr1 = [];122 property.map((item) => {123 switch(item.type){124 case "å¾ç":125 arr.push({name: item.name, type: 'image', value: item.value});126 break; 127 case "è§é¢":128 arr.push({name: item.name, type: 'video', value: item.value});129 break; 130 case "é³é¢":131 arr.push({name: item.name, type: 'audio', value: item.value});132 break; 133 case "ææ¬":134 arr.push({name: item.name, type: 'text', value: item.value});135 break; 136 case "æ´æ°":137 arr.push({name: item.name, type: 'int', value: item.value});138 break; 139 case "å°æ°":140 arr.push({name: item.name, type: 'float', value: item.value});141 break; 142 default:143 arr1.push(item);144 break; 145 }146 })147 148 const [res,err] = await request.post('/uploading',arr).req_result()149 if(err){150 hintOpen('ä¿å失败', 'error')151 return152 }153 let _arr = res.map((item) => {154 return {155 name: item.name,156 type: item.type,157 uuid: item.uuid,158 value: item.value,159 }160 })161 handleproperty(_arr.concat(arr1));162 hintOpen("ä¿åæå", 'success')163 }164 // å¨æå è½½å±æ§ç»ä»¶165 const PropertyModel = () =>{166 let arr = [];167 property.map((item,index) => {168 switch(item.type){169 case "å¾ç":170 arr.push(<ImageCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></ImageCut>)171 break;172 case "è§é¢":173 arr.push(<VideoCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></VideoCut>)174 break;175 case "é³é¢":176 arr.push(<AudioCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></AudioCut>)177 break;178 case "ææ¬":179 arr.push(<TextCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></TextCut>)180 break;181 case "æ´æ°":182 arr.push(<IntCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></IntCut>)183 break;184 case "å°æ°":185 arr.push(<FloatCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></FloatCut>)186 break;187 case "image":188 arr.push(<ImageCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></ImageCut>)189 break;190 case "video":191 arr.push(<VideoCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></VideoCut>)192 break;193 case "audio":194 arr.push(<AudioCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></AudioCut>)195 break;196 case "text":197 arr.push(<TextCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></TextCut>)198 break;199 case "int":200 arr.push(<IntCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></IntCut>)201 break;202 case "float":203 arr.push(<FloatCut key={index} cut={item} handleProperty={handleProperty} handleDelete={handleDelete} amend={amend}></FloatCut>)204 break;205 }206 })207 return arr208 }209 return (210 <>211 <Card>212 <CardHeader color="primary">213 <h4 style={{ margin: '0 auto' }}>{ titleText }</h4>214 </CardHeader>215 <CardBody style={{ margin: '0' }}>216 <div className={classes.root} style={{ display: amend ? 'none' : 'block' }}>217 <List component="div" role="list">218 <ListItem219 button220 divider221 aria-haspopup="true"222 aria-controls="ringtone-menu"223 aria-label="phone ringtone"224 onClick={handleClickListItem}225 role="listitem"226 >227 <ListItemText primary="æ·»å å±æ§" />228 </ListItem>229 <ConfirmationDialogRaw230 classes={{231 paper: classes.paper,232 }}233 id="ringtone-menu"234 keepMounted235 open={open}236 onClose={handleClose}237 value={value}238 proper={property}239 />240 </List>241 </div>242 {/* { PropertyModel() } */}243 <PropertyModel/>244 </CardBody>245 <CardFooter>246 <Button variant="contained" color={ type ? 'primary' : amend ? 'danger' : 'primary' }247 onClick={ upload }>{ type ? 'ä¿å' : amend ? 'ä¿®æ¹' : 'ä¿å' }</Button>248 { DetailsButtons() }249 </CardFooter>250 </Card>251 <Prompt252 handleClose={() => {253 setHint({254 open: false,255 severity: hint.severity,256 message: hint.message,257 });258 }}259 {...hint}/>260 </>261 )...
SellerView.js
Source:SellerView.js
...54 province,55 city56 ) => {57 dispatch(58 SellerServer.handleProperty(59 ownerid,60 lat,61 lan,62 fullAddres,63 propertyType,64 bedrooms,65 bathrooms,66 garage,67 ac,68 rent,69 MainImage,70 size,71 province,72 city73 )74 );75 },76 };77};78const styles = {79 card: {80 maxWidth: 345,81 },82 media: {83 width: 151,84 },85 callCard: {86 height: "auto",87 width: 250,88 borderRadius: "10px",89 },90 purpleAvatar: {91 margin: 10,92 color: "#fff",93 backgroundColor: "#0284a8",94 },95 iconSize: {96 fontSize: "45px",97 },98 grow: {99 flexGrow: 1,100 },101 img: {102 height: 200,103 width: 1200,104 maxWidth: 2000,105 },106};107class SellerView extends Component {108 constructor(props) {109 super(props);110 this.state = {111 lat: null,112 lng: null,113 fullAddres: "",114 bahtrooms: 0,115 garage: false,116 ac: false,117 Bedroooms: 0,118 PropertyType: "",119 imageP: "",120 phoneNumber: "",121 name: "",122 Password: "",123 Email: "",124 rent: "",125 ownerId: "",126 MainImage: null,127 size: "",128 city: "",129 province: "",130 owner: this.props.user,131 };132 this.handleBack = this.handleBack.bind(this);133 this.handleProperty = this.handleProperty.bind(this);134 this.handleBackClick = this.handleBackClick.bind(this);135 this.logout = this.logout.bind(this);136 }137 handleBackClick() {138 if (this.props.match.params.userId != undefined) {139 this.props.history.push("/Account/" + this.props.match.params.userId);140 } else {141 this.props.history.push("/Account/" + this.props.seller_id);142 }143 }144 getAvatar() {145 if (146 this.props.match.params.userId !== undefined &&147 this.props.user.length > 0148 ) {149 return (150 <Avatar className={this.props.classes.purpleAvatar}>151 {this.props.user[0].name[0].toUpperCase()}152 </Avatar>153 );154 }155 }156 getName() {157 if (158 this.props.match.params.userId !== undefined &&159 this.props.user.length > 0160 ) {161 return (162 <Typography style={{ color: "white", marginRight: "1%" }}>163 {this.props.user[0].name.toUpperCase()}164 </Typography>165 );166 }167 }168 getSignOutButton() {169 if (this.props.match.params.userId !== undefined) {170 return (171 <Button onClick={this.logout} variant="raised" color="secondary">172 Log Out{" "}173 </Button>174 );175 } else {176 return (177 <Button variant="raised" color="secondary">178 Log In{" "}179 </Button>180 );181 }182 }183 componentWillReceiveProps(props) {184 this.setState({ owner: props.owner });185 }186 handleProperty(187 lat,188 lan,189 fullAddress,190 propertyType,191 bedrooms,192 bathrooms,193 garage,194 ac,195 name,196 password,197 email,198 phoneNumber,199 rent,200 isUserAvailable,...
VariableEditor.js
Source:VariableEditor.js
...156 required157 id="variableName"158 label="Variable Name"159 onChange={(event) =>160 handleProperty("variableName", event.target.value)161 }162 aria-describedby="variable-name-helper"163 value={variableInfo.variableName}164 />165 <HelperText id="variable-name-helper">166 What your variable should be called.167 </HelperText>168 <Gutter h={30} />169 <StyledDropDown id="numerSelect">170 <InputLabel htmlFor="numerSelect" required>171 Numerator Column172 </InputLabel>173 <Select174 required175 value={variableInfo.nProperty}176 onChange={(event) =>177 handleProperty("nProperty", event.target.value)178 }179 aria-describedby="numer-name-helper"180 >181 {columns.map((col) => (182 <MenuItem value={col} key={"numer-select-" + col}>183 {col}184 </MenuItem>185 ))}186 </Select>187 </StyledDropDown>188 <HelperText id="numer-name-helper">189 The column for your variable.190 <br />191 If you want to normalize your data,192 <br /> the top of your expression.193 </HelperText>194 <Gutter h={30} />195 <StyledDropDown id="denomSelect">196 <InputLabel htmlFor="denomSelect">197 Denominator Column (Optional)198 </InputLabel>199 <Select200 value={variableInfo.dProperty}201 onChange={(event) =>202 handleProperty("dProperty", event.target.value)203 }204 aria-describedby="denom-name-helper"205 >206 <MenuItem value={"NULL"} key={"denom-select-null"}>207 No denominator208 </MenuItem>209 {columns.map((col) => (210 <MenuItem value={col} key={"denom-select-" + col}>211 {col}212 </MenuItem>213 ))}214 </Select>215 </StyledDropDown>216 <HelperText id="denom-name-helper">217 If normalizing, the bottom of your expression.218 </HelperText>219 <Gutter h={30} />220 <StyledDropDown id="colorScaleSelect">221 <InputLabel htmlFor="colorScaleSelect">Color Scale</InputLabel>222 <Select223 value={variableInfo.colorScale}224 onChange={(event) =>225 handleProperty("colorScale", event.target.value)226 }227 >228 {colors8.map((scheme) => (229 <MenuItem value={scheme} key={"color-select-" + scheme}>230 <ColorBar colors={colorScales[scheme].slice(1)} />231 </MenuItem>232 ))}233 </Select>234 </StyledDropDown>235 <Gutter h={30} />236 {/* <VariableLabel htmlFor="colorScaleSelect">Variable Scale</VariableLabel>237 <VariableTextField 238 id="standard-basic" 239 label="Variable Scale" 240 onChange={(event) => handleProperty('scale', event.target.value)}241 type="number"242 value={variableInfo.scale}243 />244 <Gutter h={30} />245 246 <VariableLabel htmlFor="colorScaleSelect">3D Scale</VariableLabel>247 <VariableTextField 248 id="standard-basic" 249 label="Variable Scale" 250 onChange={(event) => handleProperty('scale3D', event.target.value)}251 type="number"252 value={variableInfo.scale3D}253 /> */}254 <Gutter h={30} />255 <FormButton onClick={handleSave}>Save Variable</FormButton>256 </ModalInner>257 </Box>258 </Modal>259 );...
destructure.js
Source:destructure.js
...33 let c = node.start;34 node.elements.forEach( ( element, i ) => {35 if ( !element ) return;36 if ( element.type === 'RestElement' ) {37 handleProperty( code, scope, c, element.argument, `${ref}.slice(${i})`, inline, statementGenerators );38 } else {39 handleProperty( code, scope, c, element, `${ref}[${i}]`, inline, statementGenerators );40 }41 c = element.end;42 });43 code.remove( c, node.end );44}45function destructureObjectPattern ( code, scope, node, ref, inline, statementGenerators ) {46 let c = node.start;47 node.properties.forEach( prop => {48 let value = prop.computed || prop.key.type !== 'Identifier' ? `${ref}[${code.slice(prop.key.start, prop.key.end)}]` : `${ref}.${prop.key.name}`;49 handleProperty( code, scope, c, prop.value, value, inline, statementGenerators );50 c = prop.end;51 });52 code.remove( c, node.end );53}54function handleProperty ( code, scope, c, node, value, inline, statementGenerators ) {55 switch ( node.type ) {56 case 'Identifier': {57 code.remove( c, node.start );58 destructureIdentifier( code, scope, node, value, inline, statementGenerators );59 break;60 }61 case 'AssignmentPattern': {62 let name;63 const isIdentifier = node.left.type === 'Identifier';64 if ( isIdentifier ) {65 name = node.left.name;66 const declaration = scope.findDeclaration( name );67 if ( declaration ) name = declaration.name;68 } else {69 name = scope.createIdentifier( value );70 }71 statementGenerators.push( ( start, prefix, suffix ) => {72 if ( inline ) {73 code.insertRight( node.right.start, `${name} = ${value} === undefined ? ` );74 code.insertLeft( node.right.end, ` : ${value}` );75 } else {76 code.insertRight( node.right.start, `${prefix}var ${name} = ${value}; if ( ${name} === void 0 ) ${name} = ` );77 code.insertLeft( node.right.end, suffix );78 }79 code.move( node.right.start, node.right.end, start );80 });81 if ( isIdentifier ) {82 code.remove( c, node.right.start );83 } else {84 code.remove( c, node.left.start );85 code.remove( node.left.end, node.right.start );86 handleProperty( code, scope, c, node.left, name, inline, statementGenerators );87 }88 break;89 }90 case 'ObjectPattern': {91 code.remove( c, c = node.start );92 if ( node.properties.length > 1 ) {93 const ref = scope.createIdentifier( value );94 statementGenerators.push( ( start, prefix, suffix ) => {95 // this feels a tiny bit hacky, but we can't do a96 // straightforward insertLeft and keep correct order...97 code.insertRight( node.start, `${prefix}var ${ref} = ` );98 code.overwrite( node.start, c = node.start + 1, value );99 code.insertLeft( c, suffix );100 code.move( node.start, c, start );101 });102 node.properties.forEach( prop => {103 const value = prop.computed || prop.key.type !== 'Identifier' ? `${ref}[${code.slice(prop.key.start, prop.key.end)}]` : `${ref}.${prop.key.name}`;104 handleProperty( code, scope, c, prop.value, value, inline, statementGenerators );105 c = prop.end;106 });107 } else {108 const prop = node.properties[0];109 const value_suffix = prop.computed || prop.key.type !== 'Identifier' ? `[${code.slice(prop.key.start, prop.key.end)}]` : `.${prop.key.name}`;110 handleProperty( code, scope, c, prop.value, `${value}${value_suffix}`, inline, statementGenerators );111 c = prop.end;112 }113 code.remove( c, node.end );114 break;115 }116 case 'ArrayPattern': {117 code.remove( c, c = node.start );118 if ( node.elements.filter( Boolean ).length > 1 ) {119 const ref = scope.createIdentifier( value );120 statementGenerators.push( ( start, prefix, suffix ) => {121 code.insertRight( node.start, `${prefix}var ${ref} = ` );122 code.overwrite( node.start, c = node.start + 1, value );123 code.insertLeft( c, suffix );124 code.move( node.start, c, start );125 });126 node.elements.forEach( ( element, i ) => {127 if ( !element ) return;128 if ( element.type === 'RestElement' ) {129 handleProperty( code, scope, c, element.argument, `${ref}.slice(${i})`, inline, statementGenerators );130 } else {131 handleProperty( code, scope, c, element, `${ref}[${i}]`, inline, statementGenerators );132 }133 c = element.end;134 });135 } else {136 const index = findIndex( node.elements, Boolean );137 const element = node.elements[ index ];138 if ( element.type === 'RestElement' ) {139 handleProperty( code, scope, c, element.argument, `${value}.slice(${index})`, inline, statementGenerators );140 } else {141 handleProperty( code, scope, c, element, `${value}[${index}]`, inline, statementGenerators );142 }143 c = element.end;144 }145 code.remove( c, node.end );146 break;147 }148 default: {149 throw new Error( `Unexpected node type in destructuring (${node.type})` );150 }151 }...
List.js
Source:List.js
...45 title: 'å±æ§',46 render:(record) => {47 return (48 <p key={record.id}>49 <Popconfirm okType="danger" onConfirm={()=>handleProperty(record.id, "status", record.status==='1'?"0":"1")} title={`ç¡®å®è®¾ç½®ç¶æ为[${record.status==='1'?"éè":"æ¾ç¤º"}]åï¼`}>50 {/*{record.status==='1'?<Button type="primary">æ¾ç¤º</Button>:<Button>éè</Button>}*/}51 <Tooltip title={record.status==='1'?"æ¾ç¤º":"éè"}><Button type={record.status==='1'?'primary':null} shape="circle" icon="eye"/></Tooltip>52 </Popconfirm>53 <Popconfirm okType="danger" onConfirm={()=>handleProperty(record.id, "isTop", record.isTop==='1'?"0":"1")} title={`ç¡®å®è®¾ç½®ä¸º[${record.isTop==='1'?"ä¸ç½®é¡¶":"置顶"}]åï¼`}>54 <Tooltip title={record.isTop==='1'?"置顶":"æªç½®é¡¶"}><Button type={record.isTop==='1'?'primary':null} shape="circle" icon="to-top"/></Tooltip>55 </Popconfirm>56 <Popconfirm okType="danger" onConfirm={()=>handleProperty(record.id, "needSend", record.needSend==='1'?"0":"1")} title={`ç¡®å®è®¾ç½®ä¸º[${record.needSend==='1'?"å
³æ³¨ä¸æ¨é":"å
³æ³¨æ¨é"}]åï¼`}>57 <Tooltip title={record.needSend==='1'?"å
³æ³¨æ¶æ¨é":"å
³æ³¨æ¶ä¸æ¨é"}><Button type={record.needSend==='1'?'primary':null} shape="circle" icon="arrow-up"/></Tooltip>58 </Popconfirm>59 <Popconfirm okType="danger" onConfirm={()=>handleProperty(record.id, "canComment", record.canComment==='1'?"0":"1")} title={`ç¡®å®è®¾ç½®ä¸º[${record.canComment==='1'?"ä¸å¯è¯è®º":"å¯è¯è®º"}]åï¼`}>60 <Tooltip title={record.canComment==='1'?"å¯è¯è®º":"ä¸å¯è¯è®º"}><Button type={record.canComment==='1'?'primary':null} shape="circle" icon="message"/></Tooltip>61 </Popconfirm>62 </p>63 )64 }65 }, {66 title: 'æä½',67 render: (text, record) => {68 return (69 <ListOperator key={record.id} id={record.id} delName={record.title} {...delOpts}/>70 );71 }72 }];73 const handlePageChange = (pageNumber) => {...
context_parser_test.js
Source:context_parser_test.js
...23 ]24 }25 ]26 };27 contextParser.handleProperty(context, 'suite', suite);28 assert.equal(context.suites.length, 1);29 assert.equal(context.suites[0].tests[0].api_calls[0].request.path, "/v1/users");30 });31 it('suite - only adds a suite once (unique by name)', function() {32 var context = contextParser.emptyContext(),33 suite1 = {34 name: "users",35 tests: [36 {37 name: "list",38 api_calls: [39 {40 request: "GET /v1/users"41 }42 ]43 }44 ]45 },46 suite2 = {47 name: "users",48 description: "users description",49 tests: [50 {51 name: "get",52 api_calls: [53 {54 request: "GET /v1/users/123"55 }56 ]57 }58 ]59 },60 suite3 = {61 name: "articles",62 tests: [63 {64 name: "get",65 api_calls: [66 {67 request: "GET /v1/articles/123"68 }69 ]70 }71 ]72 };73 contextParser.handleProperty(context, 'suite', suite1);74 contextParser.handleProperty(context, 'suite', suite2);75 contextParser.handleProperty(context, 'suite', suite3);76 assert.equal(context.suites.length, 2);77 assert.equal(context.suites[0].name, 'users');78 assert.equal(context.suites[0].description, 'users description');79 assert.equal(context.suites[0].tests.length, 2);80 assert.equal(context.suites[0].tests[0].api_calls[0].request, "GET /v1/users");81 assert.equal(context.suites[0].tests[1].api_calls[0].request, "GET /v1/users/123");82 assert.equal(context.suites[1].name, 'articles');83 assert.equal(context.suites[1].tests.length, 1);84 assert.equal(context.suites[1].tests[0].api_calls[0].request, "GET /v1/articles/123");85 });86 it('suite - raises exception when invalid', function() {87 var context = contextParser.emptyContext(),88 suite = {89 name: "users",90 tests: [91 {92 name: "list",93 requests: [ // should be api_calls94 {95 request: {96 path: "/v1/users"97 }98 }99 ]100 }101 ]102 };103 assert.throws(104 function() {105 contextParser.handleProperty(context, 'suite', suite);106 },107 errorValidator('invalid_schema')108 )109 });110 });...
index.js
Source:index.js
1// == Import : npm2import PropTypes from 'prop-types';3// == Import : components4import Profile from './profile';5import HandleProperty from "./handleProperty";6/**7 * Gère l'affichage de "userPanel".8 * @param {Object} user - Données de l'utilisateur.9 * @returns {JSX.Element}10 */11const UserPanel = ({ user }) => {12 return (13 <div className='userPanel'>14 <div className='userPanel_menu'>15 <h2 className='userPanel_menu_title'>{!user.admin ? "Mon Compte" : "Gestion des annonces"}</h2>16 </div>17 <div className='userPanel_content'>18 {!user.admin && <Profile user={user} />}19 {user.admin && <HandleProperty />}20 </div>21 </div>22 );23};24UserPanel.propTypes = {25 user: PropTypes.object26};...
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!!