Skip to content

Commit 392037e

Browse files
author
JasmeetLuthra
committed
product link panel Ui changes
1 parent 45deb02 commit 392037e

File tree

3 files changed

+118
-99
lines changed

3 files changed

+118
-99
lines changed

controllers/products.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,12 @@ const getUserCartDetailsUrls = (data) => {
142142
}
143143

144144
const getProductBuyLinkData = (data) => {
145-
return Promise.all ([
146-
getUserCartDetailsUrls({id: data.userId}),
147-
handleCalculatePrice({
145+
return handleCalculatePrice({
148146
oneauthId: data.oneauthId,
149147
productId: data.productId,
150148
quantity: data.quantity,
151149
useCredits: data.useCredits
152150
})
153-
])
154151
}
155152

156153
module.exports = {

forms/ProductLink.js

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ class ProductLinkForm extends React.Component {
6464
}
6565

6666
generateLink = (fields) => {
67-
6867
const productId = fields.product.id
6968
const oneauthId = fields.user.oneauth_id
7069

@@ -74,7 +73,7 @@ class ProductLinkForm extends React.Component {
7473

7574
let couponQueryParams = ''
7675
if (fields.coupon)
77-
couponQueryParams = `&coupon=${fields.coupon}`
76+
couponQueryParams = `&coupon=${fields.coupon.code}`
7877

7978
const link = `https://dukaan.codingblocks.com/buy?productId=${productId}&oneauthId=${oneauthId}${useCreditsQueryParams}
8079
${couponQueryParams}`
@@ -222,7 +221,8 @@ class ProductLinkForm extends React.Component {
222221
return (
223222
<MenuItem
224223
key={center.id}
225-
value={center.id}>{
224+
value={center.id}
225+
>{
226226
center.name
227227
}</MenuItem>
228228
)
@@ -356,29 +356,33 @@ class ProductLinkForm extends React.Component {
356356

357357
<FormControl variant="outlined" size={"medium"}
358358
fullWidth={true} className={"mb-4"}>
359-
<InputLabel id="coupon">Coupon</InputLabel>
360359

361-
<Select
362-
value={values.coupon}
363-
name={"coupon"}
364-
label="coupon"
365-
onChange={handleChange}>
366360

367-
<MenuItem value="">
368-
<em>Select</em>
369-
</MenuItem>
370361

371-
{
372-
this.props.coupons.map((coupon) => {
373-
return (
374-
<MenuItem key={coupon.id}
375-
value={coupon.code}>
376-
{coupon.code}
377-
</MenuItem>
378-
)
379-
})
362+
<Autocomplete
363+
autoComplete={true}
364+
fullWidth={true}
365+
id="coupon"
366+
options={this.props.coupons}
367+
value={values.coupon}
368+
onChange={ (e, value) => {
369+
setFieldValue("coupon", value)
370+
}}
371+
getOptionLabel={(option) => {
372+
return option.code
373+
}}
374+
getOptionSelected={(option, value) => {
375+
return option.id === value.id
376+
}}
377+
378+
renderInput={(params) =>
379+
<TextField {...params}
380+
name="coupon"
381+
label="Coupon"
382+
variant="outlined" />
380383
}
381-
</Select>
384+
/>
385+
382386
</FormControl>
383387

384388

pages/admin/products/generateLink.js

Lines changed: 91 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,33 @@ class GenerateLink extends React.Component {
193193
}
194194

195195
handleUserChange = (event, value) => {
196-
197-
this.setState({
198-
user: value,
199-
subCategories: [],
200-
coupons: []
201-
})
196+
197+
if (!value) {
198+
this.setState({
199+
user: value,
200+
activeCartIframeUrl: '',
201+
purchasedProductIframeurl: '',
202+
loading: false,
203+
subCategories: [],
204+
coupons: [],
205+
})
206+
} else {
207+
controller.getUserCartDetailsUrls({
208+
id: value.id
209+
}).then(([activeCartDetails, purchasedProductDetails]) => {
210+
this.setState({
211+
user: value,
212+
activeCartIframeUrl: activeCartDetails.data.iframeUrl,
213+
purchasedProductIframeurl: purchasedProductDetails.data.iframeUrl,
214+
loading: true,
215+
subCategories: [],
216+
coupons: [],
217+
})
218+
}).catch((error) => {
219+
ErrorHandler.handle(error)
220+
})
221+
}
222+
202223
this.unsetGeneratedLink()
203224
}
204225

@@ -240,21 +261,16 @@ class GenerateLink extends React.Component {
240261
}
241262

242263
ongenerateLink = (link) => {
243-
244264
controller.getProductBuyLinkData({
245-
userId: this.state.user.id,
246265
oneauthId: this.state.user.oneauth_id,
247266
productId: this.state.product.id,
248267
quantity: 1,
249268
useCredits: this.state.useCredits
250-
}).then(([ [activeCartDetails, purchasedProductDetails], calculatedAmountDetails]) => {
269+
}).then((calculatedAmountDetails) => {
251270
this.setState({
252-
activeCartIframeUrl: activeCartDetails.data.iframeUrl,
253-
purchasedProductIframeurl: purchasedProductDetails.data.iframeUrl,
254271
generatedLink: link,
255272
generateLinkClicked: true,
256273
calculatedAmountDetails: calculatedAmountDetails.data,
257-
loading: true
258274
})
259275
})
260276
}
@@ -324,74 +340,77 @@ class GenerateLink extends React.Component {
324340
/>
325341
</div>
326342

327-
{ this.state.generateLinkClicked &&
328343
<div className={"col-md-9 pull-right mt-5"}>
329344

330-
{!this.state.loading &&
345+
{!this.state.loading && this.state.user &&
331346

332-
<div className={"row mr-5"}>
333-
<TableContainer component={Paper}>
334-
<Typography className={"ml-5 mt-2"} variant="h5" id="tableTitle" component="div">
335-
<b> User Details </b>
336-
</Typography>
337-
338-
<Table className={classes.table} aria-label="simple table">
339-
<TableHead>
340-
<TableRow>
341-
<TableCell align="center">Name</TableCell>
342-
<TableCell align="center">Username</TableCell>
343-
<TableCell align="center">Wallet Amount</TableCell>
344-
<TableCell align="center">Oneauth Id</TableCell>
345-
<TableCell align="center">Email</TableCell>
346-
<TableCell align="center">Mobile Number</TableCell>
347-
<TableCell align="center">Address</TableCell>
348-
</TableRow>
349-
</TableHead>
350-
<TableBody>
351-
<TableRow key={this.state.user.id}>
352-
<TableCell component="th" scope="row" align="center">
353-
{this.state.user.firstname} {this.state.user.lastname}
354-
</TableCell>
355-
<TableCell align="center">{this.state.user.username}</TableCell>
356-
<TableCell align="center">{this.state.user.wallet_amount /100}</TableCell>
357-
<TableCell align="center">{this.state.user.oneauth_id}</TableCell>
358-
<TableCell align="center">{this.state.user.email}</TableCell>
359-
<TableCell align="center">{this.state.user.mobile_number}</TableCell>
360-
<TableCell align="center">{this.state.user.permanent_address}</TableCell>
361-
</TableRow>
362-
</TableBody>
363-
</Table>
364-
</TableContainer>
365-
</div>
347+
<div className={"row mr-5"}>
348+
<TableContainer component={Paper}>
349+
<Typography className={"ml-5 mt-2"} variant="h5" id="tableTitle" component="div">
350+
<b> User Details </b>
351+
</Typography>
352+
353+
<Table className={classes.table} aria-label="simple table">
354+
<TableHead>
355+
<TableRow>
356+
<TableCell align="center">Name</TableCell>
357+
<TableCell align="center">Username</TableCell>
358+
<TableCell align="center">Wallet Amount</TableCell>
359+
<TableCell align="center">Oneauth Id</TableCell>
360+
<TableCell align="center">Email</TableCell>
361+
<TableCell align="center">Mobile Number</TableCell>
362+
<TableCell align="center">Address</TableCell>
363+
</TableRow>
364+
</TableHead>
365+
<TableBody>
366+
<TableRow key={this.state.user.id}>
367+
<TableCell component="th" scope="row" align="center">
368+
{this.state.user.firstname} {this.state.user.lastname}
369+
</TableCell>
370+
<TableCell align="center">{this.state.user.username}</TableCell>
371+
<TableCell align="center">{this.state.user.wallet_amount /100}</TableCell>
372+
<TableCell align="center">{this.state.user.oneauth_id}</TableCell>
373+
<TableCell align="center">{this.state.user.email}</TableCell>
374+
<TableCell align="center">{this.state.user.mobile_number}</TableCell>
375+
<TableCell align="center">{this.state.user.permanent_address}</TableCell>
376+
</TableRow>
377+
</TableBody>
378+
</Table>
379+
</TableContainer>
380+
</div>
366381
}
367382

368-
<div className={"row mr-5 mt-4"}>
369-
<iframe
370-
src={this.state.activeCartIframeUrl}
371-
frameBorder="0"
372-
onLoad={this.hideSpinner}
373-
width="100%"
374-
height="220"
375-
allowtransparency='true'
376-
>
377-
</iframe>
378-
</div>
379-
380-
<div className={"row mr-5 mt-4"}>
381-
<iframe
382-
src={this.state.purchasedProductIframeurl}
383-
frameBorder="0"
384-
onLoad={this.hideSpinner}
385-
width="100%"
386-
height="350"
387-
allowtransparency='true'
388-
>
389-
</iframe>
390-
</div>
383+
{this.state.user &&
384+
<div>
385+
<div className={"row mr-5 mt-4"}>
386+
<iframe
387+
src={this.state.activeCartIframeUrl}
388+
frameBorder="0"
389+
onLoad={this.hideSpinner}
390+
width="100%"
391+
height="220"
392+
allowtransparency='true'
393+
>
394+
</iframe>
395+
</div>
396+
397+
<div className={"row mr-5 mt-4"}>
398+
<iframe
399+
src={this.state.purchasedProductIframeurl}
400+
frameBorder="0"
401+
onLoad={this.hideSpinner}
402+
width="100%"
403+
height="350"
404+
allowtransparency='true'
405+
>
406+
</iframe>
407+
</div>
408+
</div>
409+
}
391410

392411
<div className={"row mr-5 mt-4 mb-3"}>
393412

394-
{!this.state.loading &&
413+
{!this.state.loading && this.state.generateLinkClicked &&
395414
<ProductLinkCard
396415
product={this.state.product}
397416
user={this.state.user}
@@ -404,7 +423,6 @@ class GenerateLink extends React.Component {
404423
</div>
405424

406425
</div>
407-
}
408426
</div>
409427

410428
</CheckLogin>

0 commit comments

Comments
 (0)