{"version":3,"sources":["redux/directory/directory.selectors.js","components/menu-item/menu-item.component.jsx","components/directory/directory.component.jsx","pages/homepage/homepage.component.jsx","redux/shop/shop.selectors.js","components/custom-button/custom-button.component.jsx","redux/cart/cart.types.js","redux/cart/cart.actions.js","components/collection-item/collection-item.component.jsx","components/collection-preview/collection-preview.component.jsx","components/collections-overview/collections-overview.component.jsx","pages/collection/collection.component.jsx","pages/shop/shop.component.jsx","components/form-input/form-input.component.jsx","firebase/firebase.utils.js","components/sign-in/sign-in.component.jsx","components/sign-up/sign-up.component.jsx","pages/sign-in-and-sign-up/sign-in-and-sign-up.component.jsx","components/checkout-item/checkout-item.component.jsx","components/stripe-button/stripe-button.component.jsx","redux/cart/cart.selectors.js","pages/checkout/checkout.component.jsx","assets/shopping-bag.svg","assets/crown.svg","components/cart-icon/cart-icon.component.jsx","components/cart-item/cart-item.component.jsx","components/cart-dropdown/cart-dropdown.component.jsx","redux/user/user.selectors.js","components/header/header.component.jsx","redux/user/user.types.js","App.js","redux/user/user.actions.js","reportWebVitals.js","redux/user/user.reducer.js","redux/cart/cart.utils.js","redux/cart/cart.reducer.js","redux/directory/directory.reducer.js","redux/shop/shop.reducer.js","redux/shop/shop.data.js","redux/root-reducer.js","redux/store.js","index.js"],"names":["selectDirectorySections","createSelector","state","directory","sections","withRouter","title","imageUrl","size","history","linkUrl","match","className","onClick","push","url","style","backgroundImage","toUpperCase","mapStateToProps","createStructuredSelector","connect","map","id","otherSectionProps","HomePage","selectCollections","shop","collections","selectCollectionsForPreview","Object","keys","key","selectCollection","memoize","collectionUrlParam","CustomButton","children","isGoogleSignIn","inverted","otherProps","CartActionTypes","toggleCartHidden","type","addItem","item","payload","dispatch","name","price","CollectionPreview","items","filter","idx","otherCollectionProps","ownProps","collection","params","collectionId","ShopPage","exact","path","component","CollectionsOverview","CollectionPage","FormInput","handleChange","label","onChange","value","length","createUserProfileDocument","userAuth","additionalData","a","userRef","firestore","doc","uid","get","exists","displayName","email","createdAt","Date","set","console","log","message","firebase","apps","app","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","auth","provider","GoogleAuthProvider","setCustomParameters","prompt","signInWithGoogle","signInWithPopup","SignIn","props","handleSubmit","event","preventDefault","password","signInWithEmailAndPassword","setState","target","onSubmit","this","required","React","Component","SignUp","confirmPassword","alert","createUserWithEmailAndPassword","user","SignInAndSignUpPage","clearItem","clearItemFromCart","removeItem","cartItem","quantity","src","alt","StripeCheckoutButton","priceForStripe","billingAddress","shippingAddress","image","description","amount","panelLabel","token","stripeKey","selectCart","cart","selectCartItems","cartItems","selectCartHidden","hidden","selectCartItemsCount","reduce","accumulatedQuantity","selectCartTotal","total","_extends","assign","i","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgShoppingBag","_ref","svgRef","titleId","xmlns","xmlnsXlink","x","y","viewBox","xmlSpace","enableBackground","ref","fill","d","_desc","_g","ForwardRef","itemCount","CartItem","selectCurrentUser","currentUser","SvgCrown","width","height","undefined","fillRule","stroke","strokeWidth","transform","points","fillOpacity","cx","cy","r","to","signOut","UserActionTypes","App","unsubscribeFromAuth","setCurrentUser","onAuthStateChanged","onSnapshot","snapShot","data","CheckoutPage","render","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","INITIAL_STATE","userReducer","action","addItemToCart","cartItemToAdd","find","removeItemFromCart","cartItemToRemove","cartReducer","directoryReducer","hats","routeName","sneakers","jackets","womens","mens","shopReducer","persistConfig","storage","whitelist","rootReducer","combineReducers","persistReducer","store","createStore","applyMiddleware","persistor","persistStore","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.4db3d86a.chunk.js","sourcesContent":["import { createSelector } from \"reselect\";\n\nconst selectDirectory = (state) => state.directory;\n\nexport const selectDirectorySections = createSelector(\n [selectDirectory],\n (directory) => directory.sections\n);\n","import React from \"react\";\n\nimport { withRouter } from \"react-router-dom\";\n\nimport \"./menu-item.styles.scss\";\n\nconst MenuItem = ({ title, imageUrl, size, history, linkUrl, match }) => (\n history.push(`${match.url}${linkUrl}`)}\n >\n \n
\n

{title.toUpperCase()}

\n

SHOP NOW

\n
\n \n);\n\nexport default withRouter(MenuItem);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport { selectDirectorySections } from \"../../redux/directory/directory.selectors\";\n\nimport MenuItem from \"../menu-item/menu-item.component\";\n\nimport \"./directory.styles.scss\";\n\nconst Directory = ({ sections }) => (\n
\n {sections.map(({ id, ...otherSectionProps }) => (\n \n ))}\n
\n);\n\nconst mapStateToProps = createStructuredSelector({\n sections: selectDirectorySections,\n});\n\nexport default connect(mapStateToProps)(Directory);\n","import React from \"react\";\n\nimport Directory from \"../../components/directory/directory.component\";\n\nimport \"./homepage.styles.scss\";\n\nconst HomePage = () => (\n
\n \n
\n);\n\nexport default HomePage;\n","import { createSelector } from \"reselect\";\nimport memoize from \"lodash.memoize\";\n\nconst selectShop = (state) => state.shop;\n\nexport const selectCollections = createSelector(\n [selectShop],\n (shop) => shop.collections\n);\n\nexport const selectCollectionsForPreview = createSelector(\n [selectCollections],\n (collections) => Object.keys(collections).map((key) => collections[key])\n);\n\nexport const selectCollection = memoize((collectionUrlParam) =>\n createSelector(\n [selectCollections],\n (collections) => collections[collectionUrlParam]\n )\n);\n","import React from \"react\";\n\nimport \"./custom-button.styles.scss\";\n\nconst CustomButton = ({\n children,\n isGoogleSignIn,\n inverted,\n ...otherProps\n}) => (\n \n {children}\n \n);\n\nexport default CustomButton;\n","export const CartActionTypes = {\n TOGGLE_CART_HIDDEN: \"TOGGLE_CART_HIDDEN\",\n ADD_ITEM: \"ADD_ITEM\",\n REMOVE_ITEM: \"REMOVE_ITEM\",\n CLEAR_ITEM_FROM_CART: \"CLEAR_ITEM_FROM_CART\",\n};\n","import { CartActionTypes } from \"./cart.types\";\n\nexport const toggleCartHidden = () => ({\n type: CartActionTypes.TOGGLE_CART_HIDDEN,\n});\n\nexport const addItem = (item) => ({\n type: CartActionTypes.ADD_ITEM,\n payload: item,\n});\n\nexport const removeItem = (item) => ({\n type: CartActionTypes.REMOVE_ITEM,\n payload: item,\n});\n\nexport const clearItemFromCart = (item) => ({\n type: CartActionTypes.CLEAR_ITEM_FROM_CART,\n payload: item,\n});\n","import React from \"react\";\nimport { connect } from \"react-redux\";\n\nimport CustomButton from \"../custom-button/custom-button.component\";\n\nimport { addItem } from \"../../redux/cart/cart.actions\";\n\nimport \"./collection-item.styles.scss\";\n\nconst CollectionItem = ({ item, addItem }) => {\n const { name, price, imageUrl } = item;\n return (\n
\n \n
\n {name}\n ${price}\n
\n addItem(item)} inverted>\n ADD TO CART\n \n
\n );\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n addItem: (item) => dispatch(addItem(item)),\n});\n\nexport default connect(null, mapDispatchToProps)(CollectionItem);\n","import React from \"react\";\n\nimport CollectionItem from \"../collection-item/collection-item.component\";\n\nimport \"./collection-preview.styles.scss\";\n\nconst CollectionPreview = ({ title, items }) => (\n
\n

{title.toUpperCase()}

\n
\n {items\n .filter((item, idx) => idx < 4)\n .map((item) => (\n \n ))}\n
\n
\n);\n\nexport default CollectionPreview;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport { selectCollectionsForPreview } from \"../../redux/shop/shop.selectors\";\n\nimport CollectionPreview from \"../collection-preview/collection-preview.component\";\n\nimport \"./collections-overview.styles.scss\";\n\nconst CollectionsOverview = ({ collections }) => (\n
\n {collections.map(({ id, ...otherCollectionProps }) => (\n \n ))}\n
\n);\n\nconst mapStateToProps = createStructuredSelector({\n collections: selectCollectionsForPreview,\n});\n\nexport default connect(mapStateToProps)(CollectionsOverview);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\n\nimport CollectionItem from \"../../components/collection-item/collection-item.component\";\n\nimport { selectCollection } from \"../../redux/shop/shop.selectors\";\n\nimport \"./collection.styles.scss\";\n\nconst CollectionPage = ({ collection: { title, items } }) => {\n return (\n
\n

{title}

\n
\n {items.map((item) => (\n \n ))}\n
\n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n collection: selectCollection(ownProps.match.params.collectionId)(state),\n});\n\nexport default connect(mapStateToProps)(CollectionPage);\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport CollectionsOverview from \"../../components/collections-overview/collections-overview.component\";\nimport CollectionPage from \"../collection/collection.component\";\n\nimport \"./shop.styles.scss\";\n\nconst ShopPage = ({ match }) => (\n
\n \n \n
\n);\n\nexport default ShopPage;\n","import React from \"react\";\n\nimport \"./form-input.styles.scss\";\n\nconst FormInput = ({ handleChange, label, ...otherProps }) => (\n
\n \n {label ? (\n \n {label}\n \n ) : null}\n
\n);\n\nexport default FormInput;\n","import firebase from \"firebase/app\";\nimport \"firebase/firestore\";\nimport \"firebase/auth\";\n\nconst config = {\n apiKey: \"AIzaSyDTlfwkQuUVWFEywgAJOKM9pM0iESWPbuQ\",\n authDomain: \"crwn-db-e2b33.firebaseapp.com\",\n projectId: \"crwn-db-e2b33\",\n storageBucket: \"crwn-db-e2b33.appspot.com\",\n messagingSenderId: \"614763190857\",\n appId: \"1:614763190857:web:24ae105fa7231b4ccafd98\",\n measurementId: \"G-DHD4ZBVGWF\",\n};\n\nexport const createUserProfileDocument = async (userAuth, additionalData) => {\n if (!userAuth) return;\n\n const userRef = firestore.doc(`users/${userAuth.uid}`);\n const snapShot = await userRef.get();\n\n if (!snapShot.exists) {\n const { displayName, email } = userAuth;\n const createdAt = new Date();\n\n try {\n await userRef.set({\n displayName,\n email,\n createdAt,\n ...additionalData,\n });\n } catch (error) {\n console.log(\"Error Creating User\", error.message);\n }\n }\n\n return userRef;\n};\n\nif (!firebase.apps.length) {\n firebase.initializeApp(config);\n} else {\n firebase.app();\n}\n\nexport const auth = firebase.auth();\nexport const firestore = firebase.firestore();\n\nconst provider = new firebase.auth.GoogleAuthProvider();\nprovider.setCustomParameters({ prompt: \"select_account\" });\nexport const signInWithGoogle = () => auth.signInWithPopup(provider);\n\nexport default firebase;\n","import React from \"react\";\n\nimport FormInput from \"../form-input/form-input.component\";\nimport CustomButton from \"../custom-button/custom-button.component\";\n\nimport { auth, signInWithGoogle } from \"../../firebase/firebase.utils\";\n\nimport \"./sign-in.styles.scss\";\n\nclass SignIn extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n email: \"\",\n password: \"\",\n };\n }\n\n handleSubmit = async (event) => {\n event.preventDefault();\n\n const { email, password } = this.state;\n\n try {\n await auth.signInWithEmailAndPassword(email, password);\n this.setState({ email: \"\", password: \"\" });\n } catch (error) {\n console.log(error);\n }\n };\n\n handleChange = (event) => {\n const { value, name } = event.target;\n\n this.setState({ [name]: value });\n };\n\n render() {\n return (\n
\n

I already have an account

\n Sign in with your email and password\n\n
\n \n \n\n
\n Sign In\n \n Sign In With Google\n \n
\n \n
\n );\n }\n}\n\nexport default SignIn;\n","import React from \"react\";\n\nimport FormInput from \"../form-input/form-input.component\";\nimport CustomButton from \"../custom-button/custom-button.component\";\n\nimport { auth, createUserProfileDocument } from \"../../firebase/firebase.utils\";\n\nimport \"./sign-up.styles.scss\";\n\nclass SignUp extends React.Component {\n constructor() {\n super();\n\n this.state = {\n displayName: \"\",\n email: \"\",\n password: \"\",\n confirmPassword: \"\",\n };\n }\n\n handleSubmit = async (event) => {\n event.preventDefault();\n\n const { displayName, email, password, confirmPassword } = this.state;\n\n if (password !== confirmPassword) {\n alert(`Passwords don't match`);\n return;\n }\n\n try {\n const { user } = await auth.createUserWithEmailAndPassword(\n email,\n password\n );\n\n await createUserProfileDocument(user, { displayName });\n this.setState({\n displayName: \"\",\n email: \"\",\n password: \"\",\n confirmPassword: \"\",\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({ [name]: value });\n };\n\n render() {\n const { displayName, email, password, confirmPassword } = this.state;\n return (\n
\n

I do not have an account

\n Sign up with your email and password\n
\n \n \n \n \n SIGN UP\n \n
\n );\n }\n}\n\nexport default SignUp;\n","import React from \"react\";\n\nimport SignIn from \"../../components/sign-in/sign-in.component\";\nimport SignUp from \"../../components/sign-up/sign-up.component\";\n\nimport \"./sign-in-and-sign-up.styles.scss\";\n\nconst SignInAndSignUpPage = () => (\n
\n \n \n
\n);\n\nexport default SignInAndSignUpPage;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\n\nimport {\n clearItemFromCart,\n addItem,\n removeItem,\n} from \"../../redux/cart/cart.actions\";\n\nimport \"./checkout-item.styles.scss\";\n\nconst CheckoutItem = ({ cartItem, clearItem, addItem, removeItem }) => {\n const { name, imageUrl, price, quantity } = cartItem;\n return (\n
\n
\n \"item\"\n
\n {name}\n \n
removeItem(cartItem)}>\n ❮\n
\n {quantity}\n
addItem(cartItem)}>\n ❯\n
\n
\n ${price}\n
clearItem(cartItem)}>\n ✕\n
\n
\n );\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n clearItem: (item) => dispatch(clearItemFromCart(item)),\n addItem: (item) => dispatch(addItem(item)),\n removeItem: (item) => dispatch(removeItem(item)),\n});\n\nexport default connect(null, mapDispatchToProps)(CheckoutItem);\n","import React from \"react\";\nimport StripeCheckout from \"react-stripe-checkout\";\n\nimport \"./stripe-button.styles.scss\";\n\nconst StripeCheckoutButton = ({ price }) => {\n const priceForStripe = price * 100;\n const publishableKey = \"pk_test_dLOtrtS57jZKMBwCWdOY2SNN00NCPueRcH\";\n\n const onToken = (token) => {\n console.log(token);\n alert(\"Payment Successful\");\n };\n\n return (\n \n );\n};\n\nexport default StripeCheckoutButton;\n","import { createSelector } from \"reselect\";\n\nconst selectCart = (state) => state.cart;\n\nexport const selectCartItems = createSelector(\n [selectCart],\n (cart) => cart.cartItems\n);\n\nexport const selectCartHidden = createSelector(\n [selectCart],\n (cart) => cart.hidden\n);\n\nexport const selectCartItemsCount = createSelector(\n [selectCartItems],\n (cartItems) =>\n cartItems.reduce(\n (accumulatedQuantity, cartItem) =>\n accumulatedQuantity + cartItem.quantity,\n 0\n )\n);\n\nexport const selectCartTotal = createSelector([selectCartItems], (cartItems) =>\n cartItems.reduce(\n (accumulatedQuantity, cartItem) =>\n accumulatedQuantity + cartItem.quantity * cartItem.price,\n 0\n )\n);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport CheckoutItem from \"../../components/checkout-item/checkout-item.component\";\nimport StripeCheckoutButton from \"../../components/stripe-button/stripe-button.component\";\n\nimport {\n selectCartItems,\n selectCartTotal,\n} from \"../../redux/cart/cart.selectors\";\n\nimport \"./checkout.styles.scss\";\n\nconst CheckoutPage = ({ cartItems, total }) => (\n
\n
\n
\n Product\n
\n
\n Description\n
\n
\n Quantity\n
\n
\n Price\n
\n
\n Remove\n
\n
\n {cartItems.map((cartItem) => (\n \n ))}\n\n
TOTAL: ${total}
\n
\n *Please use the following test credit card for payments*\n
\n 4242 4242 4242 4242 - Exp: 01/28 - CVV: 123\n
\n \n
\n);\n\nconst mapStateToProps = createStructuredSelector({\n cartItems: selectCartItems,\n total: selectCartTotal,\n});\n\nexport default connect(mapStateToProps)(CheckoutPage);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgShoppingBag(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n id: \"Capa_1\",\n x: 0,\n y: 0,\n viewBox: \"0 0 407.453 407.453\",\n xmlSpace: \"preserve\",\n style: {\n enableBackground: \"new 0 0 407.453 407.453\"\n },\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M255.099,116.515c4.487,0,8.129-3.633,8.129-8.129c0-4.495-3.642-8.129-8.129-8.129H143.486 c-4.487,0-8.129,3.633-8.129,8.129c0,4.495,3.642,8.129,8.129,8.129H255.099z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M367.062,100.258H311.69c-4.487,0-8.129,3.633-8.129,8.129c0,4.495,3.642,8.129,8.129,8.129h47.243 v274.681H48.519V116.515h44.536c4.487,0,8.129-3.633,8.129-8.129c0-4.495-3.642-8.129-8.129-8.129H40.391 c-4.487,0-8.129,3.633-8.129,8.129v290.938c0,4.495,3.642,8.129,8.129,8.129h326.671c4.487,0,8.129-3.633,8.129-8.129V108.386 C375.191,103.891,371.557,100.258,367.062,100.258z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M282.59,134.796c4.487,0,8.129-3.633,8.129-8.129V67.394C290.718,30.238,250.604,0,201.101,0 c-49.308,0-89.414,30.238-89.414,67.394v59.274c0,4.495,3.642,8.129,8.129,8.129s8.129-3.633,8.129-8.129V67.394 c0-28.198,32.823-51.137,73.36-51.137c40.334,0,73.157,22.939,73.157,51.137v59.274 C274.461,131.163,278.095,134.796,282.59,134.796z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M98.892,147.566c0,11.526,9.389,20.907,20.923,20.907c11.534,0,20.923-9.38,20.923-20.907 c0-4.495-3.642-8.129-8.129-8.129s-8.129,3.633-8.129,8.129c0,2.561-2.089,4.65-4.666,4.65c-2.569,0-4.666-2.089-4.666-4.65 c0-4.495-3.642-8.129-8.129-8.129S98.892,143.071,98.892,147.566z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M282.59,168.473c11.534,0,20.923-9.38,20.923-20.907c0-4.495-3.642-8.129-8.129-8.129 c-4.487,0-8.129,3.633-8.129,8.129c0,2.561-2.089,4.65-4.666,4.65c-2.577,0-4.666-2.089-4.666-4.65 c0-4.495-3.642-8.129-8.129-8.129c-4.487,0-8.129,3.633-8.129,8.129C261.667,159.092,271.055,168.473,282.59,168.473z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgShoppingBag);\nexport default __webpack_public_path__ + \"static/media/shopping-bag.41e58917.svg\";\nexport { ForwardRef as ReactComponent };","var _desc, _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCrown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 50,\n height: 39,\n viewBox: \"0 0 50 39\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Group\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _desc || (_desc = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"WiP\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"none\",\n strokeWidth: 1\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Artboard\",\n transform: \"translate(-90.000000, -38.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(90.000000, 38.000000)\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Rectangle\",\n fill: \"#808282\",\n points: \"3 14 25 26.5 47 14 40.855 39 9.084 39\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Triangle\",\n fill: \"#101A1A\",\n fillOpacity: 0.263,\n points: \"25 8 40 39 10 39\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 2,\n cy: 9,\n r: 2,\n fill: \"#5E6363\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 25,\n cy: 2,\n r: 2,\n fill: \"#5E6363\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 48,\n cy: 9,\n r: 2,\n fill: \"#5E6363\"\n }))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrown);\nexport default __webpack_public_path__ + \"static/media/crown.c8b9726c.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport { toggleCartHidden } from \"../../redux/cart/cart.actions\";\nimport { selectCartItemsCount } from \"../../redux/cart/cart.selectors\";\n\nimport { ReactComponent as ShoppingIcon } from \"../../assets/shopping-bag.svg\";\n\nimport \"./cart-icon.styles.scss\";\n\nconst CartIcon = ({ toggleCartHidden, itemCount }) => (\n
\n \n {itemCount}\n
\n);\n\nconst mapDispatchToProps = (dispatch) => ({\n toggleCartHidden: () => dispatch(toggleCartHidden()),\n});\n\nconst mapStateToProps = createStructuredSelector({\n itemCount: selectCartItemsCount,\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CartIcon);\n","import React from \"react\";\n\nimport \"./cart-item.styles.scss\";\n\nconst CartItem = ({ item: { imageUrl, price, name, quantity } }) => (\n
\n \"item\"\n
\n {name}\n \n {quantity} x ${price}\n \n
\n
\n);\n\nexport default CartItem;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\nimport { withRouter } from \"react-router-dom\";\n\nimport CustomButton from \"../custom-button/custom-button.component\";\nimport CartItem from \"../cart-item/cart-item.component\";\nimport { selectCartItems } from \"../../redux/cart/cart.selectors\";\nimport { toggleCartHidden } from \"../../redux/cart/cart.actions\";\n\nimport \"./cart-dropdown.styles.scss\";\n\nconst CartDropdown = ({ cartItems, history, dispatch }) => (\n
\n
\n {cartItems.length ? (\n cartItems.map((cartItem) => (\n \n ))\n ) : (\n Your cart is empty\n )}\n
\n {\n history.push(\"/checkout\");\n dispatch(toggleCartHidden());\n }}\n >\n GO TO CHECKOUT\n \n
\n);\n\nconst mapStateToProps = createStructuredSelector({\n cartItems: selectCartItems,\n});\n\nexport default withRouter(connect(mapStateToProps)(CartDropdown));\n","import { createSelector } from \"reselect\";\n\nconst selectUser = (state) => state.user;\n\nexport const selectCurrentUser = createSelector(\n [selectUser],\n (user) => user.currentUser\n);\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport { auth } from \"../../firebase/firebase.utils\";\n\nimport CartIcon from \"../cart-icon/cart-icon.component\";\nimport CartDropdown from \"../cart-dropdown/cart-dropdown.component\";\nimport { selectCurrentUser } from \"../../redux/user/user.selectors\";\nimport { selectCartHidden } from \"../../redux/cart/cart.selectors\";\n\nimport { ReactComponent as Logo } from \"../../assets/crown.svg\";\n\nimport \"./header.styles.scss\";\n\nconst Header = ({ currentUser, hidden }) => (\n
\n \n \n \n
\n \n SHOP\n \n \n CONTACT\n \n {currentUser ? (\n
auth.signOut()}>\n SIGN OUT\n
\n ) : (\n \n SIGN IN\n \n )}\n \n
\n {hidden ? null : }\n
\n);\n\nconst mapStateToProps = createStructuredSelector({\n currentUser: selectCurrentUser,\n hidden: selectCartHidden,\n});\n\nexport default connect(mapStateToProps)(Header);\n","export const UserActionTypes = {\n SET_CURRENT_USER: \"SET_CURRENT_USER\",\n};\n","import React from \"react\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { createStructuredSelector } from \"reselect\";\n\nimport HomePage from \"./pages/homepage/homepage.component\";\nimport ShopPage from \"./pages/shop/shop.component\";\nimport SignInAndSignUpPage from \"./pages/sign-in-and-sign-up/sign-in-and-sign-up.component\";\nimport CheckoutPage from \"./pages/checkout/checkout.component\";\n\nimport Header from \"./components/header/header.component\";\n\nimport { auth, createUserProfileDocument } from \"./firebase/firebase.utils\";\n\nimport { setCurrentUser } from \"./redux/user/user.actions\";\nimport { selectCurrentUser } from \"./redux/user/user.selectors\";\n\nimport \"./App.css\";\n\nclass App extends React.Component {\n unsubscribeFromAuth = null;\n\n componentDidMount() {\n const { setCurrentUser } = this.props;\n\n this.unsubscribeFromAuth = auth.onAuthStateChanged(async (userAuth) => {\n if (userAuth) {\n const userRef = await createUserProfileDocument(userAuth);\n\n userRef.onSnapshot((snapShot) => {\n setCurrentUser({\n id: snapShot.id,\n ...snapShot.data(),\n });\n });\n } else {\n setCurrentUser(userAuth);\n }\n });\n }\n\n componentWillUnmount() {\n this.unsubscribeFromAuth();\n }\n\n render() {\n return (\n
\n
\n \n \n \n \n \n this.props.currentUser ? (\n \n ) : (\n \n )\n }\n />\n \n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n setCurrentUser: (user) => dispatch(setCurrentUser(user)),\n});\n\nconst mapStateToProps = createStructuredSelector({\n currentUser: selectCurrentUser,\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\n","import { UserActionTypes } from \"./user.types\";\n\nexport const setCurrentUser = (user) => ({\n type: UserActionTypes.SET_CURRENT_USER,\n payload: user,\n});\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { UserActionTypes } from \"./user.types\";\n\nconst INITIAL_STATE = {\n currentUser: null,\n};\n\nconst userReducer = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case UserActionTypes.SET_CURRENT_USER:\n return {\n ...state,\n currentUser: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default userReducer;\n","export const addItemToCart = (cartItems, cartItemToAdd) => {\n const existingCartItem = cartItems.find(\n (cartItem) => cartItem.id === cartItemToAdd.id\n );\n\n if (existingCartItem) {\n return cartItems.map((cartItem) =>\n cartItem.id === cartItemToAdd.id\n ? { ...cartItem, quantity: cartItem.quantity + 1 }\n : cartItem\n );\n }\n\n return [...cartItems, { ...cartItemToAdd, quantity: 1 }];\n};\n\nexport const removeItemFromCart = (cartItems, cartItemToRemove) => {\n const existingCartItem = cartItems.find(\n (cartItem) => cartItem.id === cartItemToRemove.id\n );\n\n if (existingCartItem.quantity === 1) {\n return cartItems.filter(\n (cartItem) => cartItem.id !== cartItemToRemove.id\n );\n }\n\n return cartItems.map((cartItem) =>\n cartItem.id === cartItemToRemove.id\n ? { ...cartItem, quantity: cartItem.quantity - 1 }\n : cartItem\n );\n};\n","import { CartActionTypes } from \"./cart.types\";\n\nimport { addItemToCart, removeItemFromCart } from \"./cart.utils\";\n\nconst INITIAL_STATE = {\n hidden: true,\n cartItems: [],\n};\n\nconst cartReducer = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case CartActionTypes.TOGGLE_CART_HIDDEN:\n return {\n ...state,\n hidden: !state.hidden,\n };\n case CartActionTypes.ADD_ITEM:\n return {\n ...state,\n cartItems: addItemToCart(state.cartItems, action.payload),\n };\n case CartActionTypes.REMOVE_ITEM:\n return {\n ...state,\n cartItems: removeItemFromCart(state.cartItems, action.payload),\n };\n case CartActionTypes.CLEAR_ITEM_FROM_CART:\n return {\n ...state,\n cartItems: state.cartItems.filter(\n (cartItem) => cartItem.id !== action.payload.id\n ),\n };\n default:\n return state;\n }\n};\n\nexport default cartReducer;\n","const INITIAL_STATE = {\n sections: [\n {\n title: \"hats\",\n imageUrl: \"https://i.ibb.co/cvpntL1/hats.png\",\n id: 1,\n linkUrl: \"shop/hats\",\n },\n {\n title: \"jackets\",\n imageUrl: \"https://i.ibb.co/px2tCc3/jackets.png\",\n id: 2,\n linkUrl: \"shop/jackets\",\n },\n {\n title: \"sneakers\",\n imageUrl: \"https://i.ibb.co/0jqHpnp/sneakers.png\",\n id: 3,\n linkUrl: \"shop/sneakers\",\n },\n {\n title: \"women's\",\n imageUrl: \"https://i.ibb.co/GCCdy8t/womens.png\",\n size: \"large\",\n id: 4,\n linkUrl: \"shop/womens\",\n },\n {\n title: \"men's\",\n imageUrl: \"https://i.ibb.co/R70vBrQ/mens.png\",\n size: \"large\",\n id: 5,\n linkUrl: \"shop/mens\",\n },\n ],\n};\n\nconst directoryReducer = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n\nexport default directoryReducer;\n","import SHOP_DATA from \"./shop.data\";\n\nconst INITIAL_STATE = {\n collections: SHOP_DATA,\n};\n\nconst shopReducer = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n\nexport default shopReducer;\n","const SHOP_DATA = {\n hats: {\n id: 1,\n title: \"Hats\",\n routeName: \"hats\",\n items: [\n {\n id: 1,\n name: \"Brown Brim\",\n imageUrl: \"https://i.ibb.co/ZYW3VTp/brown-brim.png\",\n price: 25,\n },\n {\n id: 2,\n name: \"Blue Beanie\",\n imageUrl: \"https://i.ibb.co/ypkgK0X/blue-beanie.png\",\n price: 18,\n },\n {\n id: 3,\n name: \"Brown Cowboy\",\n imageUrl: \"https://i.ibb.co/QdJwgmp/brown-cowboy.png\",\n price: 35,\n },\n {\n id: 4,\n name: \"Grey Brim\",\n imageUrl: \"https://i.ibb.co/RjBLWxB/grey-brim.png\",\n price: 25,\n },\n {\n id: 5,\n name: \"Green Beanie\",\n imageUrl: \"https://i.ibb.co/YTjW3vF/green-beanie.png\",\n price: 18,\n },\n {\n id: 6,\n name: \"Palm Tree Cap\",\n imageUrl: \"https://i.ibb.co/rKBDvJX/palm-tree-cap.png\",\n price: 14,\n },\n {\n id: 7,\n name: \"Red Beanie\",\n imageUrl: \"https://i.ibb.co/bLB646Z/red-beanie.png\",\n price: 18,\n },\n {\n id: 8,\n name: \"Wolf Cap\",\n imageUrl: \"https://i.ibb.co/1f2nWMM/wolf-cap.png\",\n price: 14,\n },\n {\n id: 9,\n name: \"Blue Snapback\",\n imageUrl: \"https://i.ibb.co/X2VJP2W/blue-snapback.png\",\n price: 16,\n },\n ],\n },\n sneakers: {\n id: 2,\n title: \"Sneakers\",\n routeName: \"sneakers\",\n items: [\n {\n id: 10,\n name: \"Adidas NMD\",\n imageUrl: \"https://i.ibb.co/0s3pdnc/adidas-nmd.png\",\n price: 220,\n },\n {\n id: 11,\n name: \"Adidas Yeezy\",\n imageUrl: \"https://i.ibb.co/dJbG1cT/yeezy.png\",\n price: 280,\n },\n {\n id: 12,\n name: \"Black Converse\",\n imageUrl: \"https://i.ibb.co/bPmVXyP/black-converse.png\",\n price: 110,\n },\n {\n id: 13,\n name: \"Nike White AirForce\",\n imageUrl: \"https://i.ibb.co/1RcFPk0/white-nike-high-tops.png\",\n price: 160,\n },\n {\n id: 14,\n name: \"Nike Red High Tops\",\n imageUrl: \"https://i.ibb.co/QcvzydB/nikes-red.png\",\n price: 160,\n },\n {\n id: 15,\n name: \"Nike Brown High Tops\",\n imageUrl: \"https://i.ibb.co/fMTV342/nike-brown.png\",\n price: 160,\n },\n {\n id: 16,\n name: \"Air Jordan Limited\",\n imageUrl: \"https://i.ibb.co/w4k6Ws9/nike-funky.png\",\n price: 190,\n },\n {\n id: 17,\n name: \"Timberlands\",\n imageUrl: \"https://i.ibb.co/Mhh6wBg/timberlands.png\",\n price: 200,\n },\n ],\n },\n jackets: {\n id: 3,\n title: \"Jackets\",\n routeName: \"jackets\",\n items: [\n {\n id: 18,\n name: \"Black Jean Shearling\",\n imageUrl: \"https://i.ibb.co/XzcwL5s/black-shearling.png\",\n price: 125,\n },\n {\n id: 19,\n name: \"Blue Jean Jacket\",\n imageUrl: \"https://i.ibb.co/mJS6vz0/blue-jean-jacket.png\",\n price: 90,\n },\n {\n id: 20,\n name: \"Grey Jean Jacket\",\n imageUrl: \"https://i.ibb.co/N71k1ML/grey-jean-jacket.png\",\n price: 90,\n },\n {\n id: 21,\n name: \"Brown Shearling\",\n imageUrl: \"https://i.ibb.co/s96FpdP/brown-shearling.png\",\n price: 165,\n },\n {\n id: 22,\n name: \"Tan Trench\",\n imageUrl: \"https://i.ibb.co/M6hHc3F/brown-trench.png\",\n price: 185,\n },\n ],\n },\n womens: {\n id: 4,\n title: \"Womens\",\n routeName: \"womens\",\n items: [\n {\n id: 23,\n name: \"Blue Tanktop\",\n imageUrl: \"https://i.ibb.co/7CQVJNm/blue-tank.png\",\n price: 25,\n },\n {\n id: 24,\n name: \"Floral Blouse\",\n imageUrl: \"https://i.ibb.co/4W2DGKm/floral-blouse.png\",\n price: 20,\n },\n {\n id: 25,\n name: \"Floral Dress\",\n imageUrl: \"https://i.ibb.co/KV18Ysr/floral-skirt.png\",\n price: 80,\n },\n {\n id: 26,\n name: \"Red Dots Dress\",\n imageUrl: \"https://i.ibb.co/N3BN1bh/red-polka-dot-dress.png\",\n price: 80,\n },\n {\n id: 27,\n name: \"Striped Sweater\",\n imageUrl: \"https://i.ibb.co/KmSkMbH/striped-sweater.png\",\n price: 45,\n },\n {\n id: 28,\n name: \"Yellow Track Suit\",\n imageUrl: \"https://i.ibb.co/v1cvwNf/yellow-track-suit.png\",\n price: 135,\n },\n {\n id: 29,\n name: \"White Blouse\",\n imageUrl: \"https://i.ibb.co/qBcrsJg/white-vest.png\",\n price: 20,\n },\n ],\n },\n mens: {\n id: 5,\n title: \"Mens\",\n routeName: \"mens\",\n items: [\n {\n id: 30,\n name: \"Camo Down Vest\",\n imageUrl: \"https://i.ibb.co/xJS0T3Y/camo-vest.png\",\n price: 325,\n },\n {\n id: 31,\n name: \"Floral T-shirt\",\n imageUrl: \"https://i.ibb.co/qMQ75QZ/floral-shirt.png\",\n price: 20,\n },\n {\n id: 32,\n name: \"Black & White Longsleeve\",\n imageUrl: \"https://i.ibb.co/55z32tw/long-sleeve.png\",\n price: 25,\n },\n {\n id: 33,\n name: \"Pink T-shirt\",\n imageUrl: \"https://i.ibb.co/RvwnBL8/pink-shirt.png\",\n price: 25,\n },\n {\n id: 34,\n name: \"Jean Long Sleeve\",\n imageUrl: \"https://i.ibb.co/VpW4x5t/roll-up-jean-shirt.png\",\n price: 40,\n },\n {\n id: 35,\n name: \"Burgundy T-shirt\",\n imageUrl: \"https://i.ibb.co/mh3VM1f/polka-dot-shirt.png\",\n price: 25,\n },\n ],\n },\n};\n\nexport default SHOP_DATA;\n","import { combineReducers } from \"redux\";\nimport { persistReducer } from \"redux-persist\";\nimport storage from \"redux-persist/lib/storage\";\n\nimport userReducer from \"./user/user.reducer\";\nimport cartReducer from \"./cart/cart.reducer\";\nimport directoryReducer from \"./directory/directory.reducer\";\nimport shopReducer from \"./shop/shop.reducer\";\n\nconst persistConfig = {\n key: \"root\",\n storage,\n whitelist: [\"cart\"],\n};\n\nconst rootReducer = combineReducers({\n user: userReducer,\n cart: cartReducer,\n directory: directoryReducer,\n shop: shopReducer,\n});\n\nexport default persistReducer(persistConfig, rootReducer);\n","import { createStore, applyMiddleware } from \"redux\";\nimport { persistStore } from \"redux-persist\";\nimport logger from \"redux-logger\";\n\nimport rootReducer from \"./root-reducer\";\n\nconst middlewares = [];\n\nif (process.env.NODE_ENV === \"development\") {\n middlewares.push(logger);\n}\n\nexport const store = createStore(rootReducer, applyMiddleware(...middlewares));\n\nexport const persistor = persistStore(store);\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n\nimport App from \"./App\";\n\nimport \"./index.css\";\n\nimport reportWebVitals from \"./reportWebVitals\";\n\nimport { store, persistor } from \"./redux/store\";\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}