Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ecommerce-maven
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ascend
ecommerce-maven
Commits
88703f7d
Commit
88703f7d
authored
May 09, 2021
by
Shaphen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AFP-47 Shaphen Pangburn]: Integrate react modal and attach to Product Market Page
parent
408dbf6c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
78 additions
and
4 deletions
+78
-4
package-lock.json
ecom-web/package-lock.json
+29
-0
package.json
ecom-web/package.json
+1
-0
product-item.jsx
ecom-web/src/components/product-market/product-item.jsx
+44
-2
index.js
ecom-web/src/index.js
+4
-2
No files found.
ecom-web/package-lock.json
View file @
88703f7d
...
@@ -6256,6 +6256,11 @@
...
@@ -6256,6 +6256,11 @@
"strip-eof"
:
"^1.0.0"
"strip-eof"
:
"^1.0.0"
}
}
},
},
"exenv"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz"
,
"integrity"
:
"sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
},
"exit"
:
{
"exit"
:
{
"version"
:
"0.1.2"
,
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
,
...
@@ -12554,6 +12559,22 @@
...
@@ -12554,6 +12559,22 @@
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
,
"integrity"
:
"sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
"integrity"
:
"sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
},
"react-lifecycles-compat"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz"
,
"integrity"
:
"sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"react-modal"
:
{
"version"
:
"3.13.1"
,
"resolved"
:
"https://registry.npmjs.org/react-modal/-/react-modal-3.13.1.tgz"
,
"integrity"
:
"sha512-m6yXK7I4YKssQnsjHK7xITSXy2O81BSOHOsg0/uWAsdKtuT9HF2tdoYhRuxNNQg2V+LgepsoHUPJKS8m6no+eg=="
,
"requires"
:
{
"exenv"
:
"^1.2.0"
,
"prop-types"
:
"^15.5.10"
,
"react-lifecycles-compat"
:
"^3.0.0"
,
"warning"
:
"^4.0.3"
}
},
"react-redux"
:
{
"react-redux"
:
{
"version"
:
"7.2.4"
,
"version"
:
"7.2.4"
,
"resolved"
:
"https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz"
,
"resolved"
:
"https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz"
,
...
@@ -15455,6 +15476,14 @@
...
@@ -15455,6 +15476,14 @@
"makeerror"
:
"1.0.x"
"makeerror"
:
"1.0.x"
}
}
},
},
"warning"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/warning/-/warning-4.0.3.tgz"
,
"integrity"
:
"sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w=="
,
"requires"
:
{
"loose-envify"
:
"^1.0.0"
}
},
"watchpack"
:
{
"watchpack"
:
{
"version"
:
"1.7.5"
,
"version"
:
"1.7.5"
,
"resolved"
:
"https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz"
,
"resolved"
:
"https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz"
,
...
...
ecom-web/package.json
View file @
88703f7d
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
"jquery"
:
"^3.6.0"
,
"jquery"
:
"^3.6.0"
,
"react"
:
"^17.0.2"
,
"react"
:
"^17.0.2"
,
"react-dom"
:
"^17.0.2"
,
"react-dom"
:
"^17.0.2"
,
"react-modal"
:
"^3.13.1"
,
"react-redux"
:
"^7.2.4"
,
"react-redux"
:
"^7.2.4"
,
"react-router-dom"
:
"^5.2.0"
,
"react-router-dom"
:
"^5.2.0"
,
"react-scripts"
:
"4.0.3"
,
"react-scripts"
:
"4.0.3"
,
...
...
ecom-web/src/components/product-market/product-item.jsx
View file @
88703f7d
import
React
,
{
Component
}
from
'react'
import
React
,
{
Component
}
from
'react'
import
Modal
from
'react-modal'
;
import
'../../resources/stylesheets/product-market.css'
;
import
'../../resources/stylesheets/product-market.css'
;
export
default
class
ProductItem
extends
Component
{
export
default
class
ProductItem
extends
Component
{
constructor
(
props
)
{
constructor
(
props
)
{
super
(
props
)
super
(
props
)
this
.
state
=
{}
this
.
state
=
{
showDetailsModal
:
false
}
this
.
toggleDetailsModal
=
this
.
toggleDetailsModal
.
bind
(
this
);
}
toggleDetailsModal
()
{
const
prevState
=
this
.
state
.
showDetailsModal
;
this
.
setState
({
showDetailsModal
:
!
prevState
});
}
}
calculateDiscount
(
price
,
discount
)
{
calculateDiscount
(
price
,
discount
)
{
...
@@ -15,7 +24,12 @@ export default class ProductItem extends Component {
...
@@ -15,7 +24,12 @@ export default class ProductItem extends Component {
return
(
return
(
<
div
className=
"product-item"
>
<
div
className=
"product-item"
>
<
div
id=
"more-details-img-box"
>
<
div
id=
"more-details-img-box"
>
<
img
id=
"prod-img"
alt=
""
src=
{
this
.
props
.
item
.
productImageUrl
?
this
.
props
.
item
.
productImageUrl
:
"-no photo-"
}
/>
<
img
id=
"prod-img"
alt=
""
src=
{
this
.
props
.
item
.
productImageUrl
?
this
.
props
.
item
.
productImageUrl
:
"-no photo-"
}
onClick=
{
this
.
toggleDetailsModal
}
/>
<
p
id=
"more-details-text"
>
More Details
</
p
>
<
p
id=
"more-details-text"
>
More Details
</
p
>
</
div
>
</
div
>
<
p
id=
"prod-name"
>
{
this
.
props
.
item
.
productName
}
</
p
>
<
p
id=
"prod-name"
>
{
this
.
props
.
item
.
productName
}
</
p
>
...
@@ -38,6 +52,34 @@ export default class ProductItem extends Component {
...
@@ -38,6 +52,34 @@ export default class ProductItem extends Component {
<
input
id=
"order-quantity"
type=
"number"
placeholder=
"Qty"
/>
<
input
id=
"order-quantity"
type=
"number"
placeholder=
"Qty"
/>
<
span
id=
"add-to-cart-button"
>
Add to Cart
</
span
>
<
span
id=
"add-to-cart-button"
>
Add to Cart
</
span
>
</
div
>
</
div
>
<
Modal
id=
"product-details-modal"
isOpen=
{
this
.
state
.
showDetailsModal
}
contentLabel=
"Product Details Modal"
onRequestClose=
{
this
.
toggleDetailsModal
}
style=
{
{
content
:
{
position
:
"absolute"
,
top
:
'55px'
,
left
:
'85px'
,
right
:
'0'
,
bottom
:
'0'
,
border
:
'1px solid black'
,
padding
:
'7px'
,
width
:
'210px'
,
height
:
'134px'
,
background
:
'white'
},
overlay
:
{
position
:
'fixed'
,
backgroundColor
:
'rgba(0,0,0,0.0)'
,
zIndex
:
'50'
}
}
}
>
Whoa its a modal!
</
Modal
>
</
div
>
</
div
>
)
)
}
}
...
...
ecom-web/src/index.js
View file @
88703f7d
import
React
from
'react'
;
import
React
from
'react'
;
import
ReactDOM
from
'react-dom'
;
import
ReactDOM
from
'react-dom'
;
import
configureStore
from
'./store/store'
import
configureStore
from
'./store/store'
;
import
Root
from
'./components/root'
import
Root
from
'./components/root'
;
import
Modal
from
'react-modal'
;
document
.
addEventListener
(
"DOMContentLoaded"
,
()
=>
{
document
.
addEventListener
(
"DOMContentLoaded"
,
()
=>
{
Modal
.
setAppElement
(
'#root'
)
let
store
=
configureStore
();
let
store
=
configureStore
();
const
root
=
document
.
getElementById
(
'root'
);
const
root
=
document
.
getElementById
(
'root'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment