{"version":3,"sources":["images sync /^/.*$","images/2xwinner-removebg-preview.png","images/381-removebg-preview.png","images/aurora-removebg-preview__1_-removebg-preview.png","images/comingsoon.jpg","images/landingpage.jpg","images/landingpage.png","images/underconstruction.jpg","actionTypes.js","store.js","components/atoms/modal/Modal.js","components/atoms/molecules/ImageModal.js","components/atoms/molecules/UploadModal.js","actions.js","components/atoms/molecules/DeleteConfirmation.js","components/atoms/NoPhoto.jsx","components/atoms/dropdown/DropDown.jsx","components/atoms/buttons/ActionButton.jsx","components/atoms/texts/PageHeader.jsx","components/atoms/ProductDetail.jsx","components/atoms/molecules/ContactUsModal.js","components/navigation.js","components/atoms/imagetext/MainImage.jsx","components/atoms/CollectionCards.jsx","components/home.js","components/atoms/molecules/Login.jsx","components/admin.jsx","components/atoms/molecules/Footer.jsx","components/atoms/ProductCardAdmin.jsx","components/productsadmin.js","components/CollectionsPage.jsx","components/CollectionPage.jsx","components/AboutUsPage.jsx","App.js","serviceWorker.js","index.js","images/landingpage2.png","images/fullscreen.JPG"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","ActionTypes","LOAD_PRODUCTS","LOAD_CATEGORIES","UPDATE_SHOPPINGCART","UPDATE_LOGIN","UPDATE_AUTH_TOKEN","UPDATE_USERNAME","ADD_TO_CART","UPDATE_PRODUCT_QUANTITY","LOAD_SHOPPINGCART","UPDATE_SHOPPINGCART_ITEM","url","initialState","LoftName","Collections","appid","datecreated","datemodied","collectionname","title","description","forSale","images","fields","sex","color","size","strain","CollectionNames","name","image","Currency","Categories","Products","ListingID","ListingData","ForSale","Title","Description","Images","Sex","Shoppingcart","NewProduct","Cost","Price","Quantity","Active","CategoryID","CategoryName","Condition","AccountID","CreatedDate","ModifiedDate","IsLogin","SortOptions","UserName","APIVersion","BaseURL","ImageLocation","reducer","state","action","actionType","Set","payload","GET_API_VERSION","RESET_RACE","Race","AuthToken","StoreContext","createContext","dispatch","undefined","StoreProvider","children","useReducer","Provider","value","ModalWrapper","props","handleSave","event","handleOnClick","closeModal","Fragment","show","Modal","backdrop","Header","Body","Footer","Button","variant","onClick","setAppElement","labelStyle","require","width","textAlign","margin","tagListStyleNormal","inputStyle","inputRowStyle","display","flexDirection","justifyContent","customStyles","content","height","top","left","right","bottom","marginRight","transform","overflow","backgroundColor","UploadModal","useEffect","length","axios","get","baseUrl","then","response","data","catch","error","console","log","GetCategories","subtitle","conditions","useContext","useState","modalIsOpen","setIsOpen","setTitle","tags","setTags","tag","setTag","setImages","setDescription","price","setPrice","cost","setCost","quantity","setQuantity","condition","setCondition","categoryID","setCategoryID","categoryName","setCategoryName","sortingIndex","setSortingIndex","setTagListStyle","fileData","setFileData","files","setFiles","handleClose","Product","s","find","c","SortingIndex","ValidateForm","product","formData","FormData","i","append","JSON","stringify","post","GetProducts","ErrorHandler","SaveProductWithUpload","renderTags","listStyle","item","className","target","innerText","selectTagFromList","style","padding","isOpen","onAfterOpen","onRequestClose","contentLabel","ref","_subtitle","Alt","border","borderRadius","flexWrap","type","data-toggle","aria-haspopup","aria-expanded","aria-labelledby","placeholder","onChange","rows","icon","faPlusCircle","x","push","addTag","faMinusCircle","filter","removeTag","class","faTrash","Image","src","marginLeft","multiple","sender","preventDefault","ReadFile","DeleteConfirmation","Msg","cursor","NoPhoto","fontSize","paddingTop","DropDown","label","Label","Action","options","Options","selected","setSelected","alignItems","minWidth","selectedItem","ActionButton","btnLabel","PageHeader","headerText","Text","textTransform","letterSpacing","ProductDetail","showContactModal","setShowContactModal","useParams","listing","ImagesPath","original","thumbnail","maxWidth","imageDivStyle","items","showPlayButton","showThumbnails","minHeight","fontFamily","flexGrow","entries","key","to","textDecoration","effect","Inquery","AuthStr","concat","config","headers","Authorization","msg","toString","includes","ContactUsModal","Name","setName","Email","setEmail","Phone","setPhone","Subject","setSubject","setError","MessageBody","setMessageBody","handleSend","message","Message","Source","Recipient","for","required","Navigation","handleLogout","Logout","fontWeight","as","Link","activeClassName","whiteSpace","MainImage","marginBottom","alt","CollectionCards","boxShadow","objectFit","position","Home","marginTop","Login","userName","setuserName","password","setPassword","loginStatus","setLoginStatus","btnSubmitText","setBtnSubmitText","failedAttempt","setFailedAttempt","loginStatusMessage","FormGroup","controlId","Size","FormLabel","FormControl","autoFocus","bsSize","block","disabled","alert","params","Token","Logging","Admin","ActivityNotification","Date","getFullYear","faFlagUsa","href","ProductCardAdmin","showConfirmDeleteModal","AccountInfo","productContainerStyle","colItem","Count","ProductsAdmin","showDetail","setShowDetail","productDetail","setProductDetail","handleProductClick","handleAddEditClick","sort","a","b","filteredProduct","index","HandleClick","HandleAddEdit","renderItems","CollectionsPage","CollectionPage","sortBy","setSortBy","collections","list","localeCompare","sortIt","displayCollection","fontStyle","AboutUsPage","lineHeight","App","path","exact","component","Boolean","window","location","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.63c08a4f.chunk.js","sourcesContent":["var map = {\n\t\"./2xwinner-removebg-preview.png\": 122,\n\t\"./381-removebg-preview.png\": 123,\n\t\"./aurora-removebg-preview__1_-removebg-preview.png\": 124,\n\t\"./comingsoon.jpg\": 125,\n\t\"./fullscreen.JPG\": 62,\n\t\"./landingpage.jpg\": 126,\n\t\"./landingpage.png\": 127,\n\t\"./landingpage2.png\": 41,\n\t\"./underconstruction.jpg\": 128\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 121;","module.exports = __webpack_public_path__ + \"static/media/2xwinner-removebg-preview.2d8cec37.png\";","module.exports = __webpack_public_path__ + \"static/media/381-removebg-preview.c2a32051.png\";","module.exports = __webpack_public_path__ + \"static/media/aurora-removebg-preview__1_-removebg-preview.60c9802b.png\";","module.exports = __webpack_public_path__ + \"static/media/comingsoon.08ccd4a9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/landingpage.8c4257a7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/landingpage.0fa90b22.png\";","module.exports = __webpack_public_path__ + \"static/media/underconstruction.9c0d9066.jpg\";","export const ActionTypes = {\r\n LOAD_PRODUCTS: \"LOAD_PRODUCTS\",\r\n LOAD_CATEGORIES: \"LOAD_CATEGORIES\",\r\n UPDATE_SHOPPINGCART: \"SHOPPINGCART\",\r\n UPDATE_LOGIN: \"UPDATE_LOGIN\",\r\n UPDATE_AUTH_TOKEN: \"UPDATE_AUTH_TOKEN\",\r\n UPDATE_USERNAME: \"UPDATE_USERNAME\",\r\n ADD_TO_CART: \"ADD_TO_CART\",\r\n UPDATE_PRODUCT_QUANTITY: \"UPDATE_PRODUCT_QUANTITY\",\r\n LOAD_SHOPPINGCART: \"LOAD_SHOPPINGCART\",\r\n UPDATE_SHOPPINGCART_ITEM: \"UPDATE_SHOPPINGCART_ITEM\",\r\n};\r\n\r\nexport default ActionTypes;\r\n","import React, { createContext, useReducer } from \"react\";\r\nimport ActionTypes from \"./actionTypes\";\r\n\r\n\r\n//test image\r\nconst image1 = \"https://gotcocos-accountid-uploads.s3.amazonaws.com/2xwinner-removebg-preview.png\";\r\nconst url = \"https://cdpowerhouse-uploads.s3.amazonaws.com/\";\r\n//test data\r\nconst collections=[\r\n {id:1,appid:1, datecreated:null, datemodied:null,collectionname:'cocks', title:'Diaval', description:'One of our best flyer in 2017. 3rd Champion Bird in the Club, and Auction Winner. Son of CJC Section Winner.',forSale:0,images:[url + \"davial.png\",\"https://cdpowerhouse-uploads.s3.amazonaws.com/452ped.JPG\"], fields: { sex:'cock',color:'dark check', size:'medium', strain:'Wings Loft' }} \r\n ,{id:2,appid:1, datecreated:null, datemodied:null,collectionname:'cocks', title:'Grandson to Sungoddess of Oxford Loft', description:'Produced: Club winners and many consistent flyers',forSale:0,images:[\"https://cdpowerhouse-uploads.s3.amazonaws.com/sungoddessson-removebg-preview.png\"], fields: { sex:'cock',color:'blue check', size:'medium', strain:'Kannibal Houben' }} \r\n ,{id:3,appid:1, datecreated:null, datemodied:null,collectionname:'cocks', title:'Kees Bosua of Amoco Loft', description:'Produced: Futurity Winner and many clocked birds in the 300 mile or more races.',forSale:0,images:[\"https://cdpowerhouse-uploads.s3.amazonaws.com/keesbosua-removebg-preview.png\"], fields: { sex:'cock',color:'blue check', size:'medium', strain:'Kees Bosua' }} \r\n ,{id:6,appid:1, datecreated:null, datemodied:null,collectionname:'cocks', title:'Dijkstra x Leideman', description:'Beautiful Young cock, Dijkstra x Leideman.',forSale:0,images:[url + \"quad53.png\"], fields: { sex:'cock',color:'blue check', size:'medium', strain:'Dijkstra x Leideman' }} \r\n ,{id:7,appid:1, datecreated:null, datemodied:null,collectionname:'cocks', title:'Kannibal X Wolverine', description:'He flew the WTCM Race, his brother also flew the same race and was our first bird.',forSale:0,images:[url + \"2103.png\"], fields: { sex:'cock',color:'blue bar', size:'large', strain:'Kannibal X Wolverine' }} \r\n ,{id:8,appid:1, datecreated:null, datemodied:null,collectionname:'cocks', title:'Kannibal X Wolverine', description:'He flew the WTCM Race, and was our first bird.',forSale:0,images:[url + \"2083.png\"], fields: { sex:'cock',color:'blue bar', size:'large', strain:'Kannibal X Wolverine' }} \r\n\r\n ,{id:4,appid:1, datecreated:null, datemodied:null,collectionname:'hens', title:'Sheira', description:'She was 2x 1st in the club races, also earning a diploma from the combine. ',forSale:0, images:[url + \"2xwinner-removebg-preview.png\"],fields: {sex:'hen',color:'red check', size:'medium', strain:'Glory Loft X Continental Class' }}\r\n ,{id:5,appid:1, datecreated:null, datemodied:null,collectionname:'hens', title:'Infinity', description:'She was a club winner and earning a diploma from the combine for placing 8th against 3,403 birds. ',forSale:0, images:[url + \"381-removebg-preview.png\"],fields: {sex:'hen',color:'blue bar', size:'medium', strain:'Foxhill Havenith X Wings Loft' }}\r\n ,{id:9,appid:1, datecreated:null, datemodied:null,collectionname:'hens', title:'2215', description:'Flew 6 races as yb, very consistent flyer. Sibling to multiple club winners.',forSale:0, images:[url + \"2215.jpg\"],fields: {sex:'hen',color:'blue check', size:'medium', strain:'Kannibal Houben X Verbruggen ' }}\r\n ,{id:10,appid:1, datecreated:null, datemodied:null,collectionname:'hens', title:'Warchant 2', description:'One of my best breeding hen. Produced multiple club winners. Of all my birds her babies had the highest chance of surviving the entire season, really amazing homing instinct. ',forSale:0, images:[url + \"warchant2.jpg\"],fields: {sex:'hen',color:'blue bar', size:'small', strain:'Verbruggen' }}\r\n ,{id:11,appid:1, datecreated:null, datemodied:null,collectionname:'for adoptions', title:'Birds Available For Adoptions (Pick up Only)', description:'These birds are available for adoption (Adoption fee is $30). All these birds were in my racing teams or were breeders. These birds are perfect to be used for breeding if you are just starting with the homing pigeon hobby.', forSale:0, images:[url + \"foradoptions.jpg\"],fields: {}}\r\n\r\n];\r\n//const collectionnames = [{name:'cocks', image:\"https://cdpowerhouse-uploads.s3.amazonaws.com/breedercocks.jpg\"},{name:'hens', image:\"https://cdpowerhouse-uploads.s3.amazonaws.com/breederhens.jpg\"},{name:'winners', image:image1},];\r\nconst collectionnames = [{name:'cocks', image:url + \"davial.png\"},{name:'hens', image:\"https://cdpowerhouse-uploads.s3.amazonaws.com/2xwinner-removebg-preview.png\"},{name:'for adoptions', image:\"https://cdpowerhouse-uploads.s3.amazonaws.com/cock2-removebg-preview.png\"},];\r\nconst initializedListing = {\r\n \r\n ListingID: 0,\r\n ListingData: {\r\n ListingID: 0,\r\n Title: \"\",\r\n Description: \"\",\r\n Cost: 0,\r\n Price: 0,\r\n Quantity: 0,\r\n Active: true,\r\n Images: [],\r\n CategoryID: 1,\r\n CategoryName: \"\",\r\n Condition: \"New\",\r\n },\r\n AccountID: \"accountID\",\r\n CreatedDate: null,\r\n ModifiedDate: null,\r\n};\r\n\r\nexport const initialState = {\r\n LoftName:'Powerhouse Loft',\r\n Collections: collections,\r\n CollectionNames:collectionnames,\r\n Currency: \"$\",\r\n Categories: [],\r\n Products: [{ListingID:1,ListingData: {ForSale:0, Title:'Bird 1',Description:'blah blah blah blah', Images:['2xwinner-removebg-preview.png','2xwinner-removebg-preview.png','2xwinner-removebg-preview.png','2xwinner-removebg-preview.png'], Sex:'H'}}],\r\n Shoppingcart: [],\r\n NewProduct: initializedListing,\r\n IsLogin: false,\r\n SortOptions: ['A-Z', 'Z-A'],\r\n UserName: \"\",\r\n APIVersion: 0,\r\n AccountID: \"accountID2\",\r\n // BaseURL: \"http://ec2-54-165-101-207.compute-1.amazonaws.com\",\r\n //BaseURL: \"http://localhost:50651/\",\r\n BaseURL: \"http://api.pigeonconnect.com/\",\r\n ImageLocation: \"https://cdpowerhouse-uploads.s3.amazonaws.com/\",\r\n};\r\n\r\nfunction reducer(state, action) {\r\n switch (action.actionType) {\r\n case ActionTypes.LOAD_CATEGORIES:\r\n return {\r\n ...state,\r\n Categories: [...new Set(action.payload)],\r\n };\r\n case ActionTypes.LOAD_PRODUCTS:\r\n return {\r\n ...state,\r\n Products: [...new Set(action.payload)],\r\n };\r\n case ActionTypes.GET_API_VERSION:\r\n return {\r\n ...state,\r\n APIVersion: action.payload,\r\n };\r\n case ActionTypes.RESET_RACE:\r\n return {\r\n ...state,\r\n Race: action.payload,\r\n };\r\n //temp\r\n case ActionTypes.LOAD_SHOPPINGCART:\r\n return {\r\n ...state,\r\n Shoppingcart: state.Shoppingcart,\r\n };\r\n case ActionTypes.UPDATE_SHOPPINGCART_ITEM:\r\n return {\r\n ...state,\r\n Shoppingcart: action.payload,\r\n };\r\n case ActionTypes.ADD_TO_CART:\r\n return {\r\n ...state,\r\n Shoppingcart: [...new Set(action.payload)],\r\n };\r\n\r\n case ActionTypes.UPDATE_PRODUCT_QUANTITY:\r\n return {\r\n ...state,\r\n Products: action.payload,\r\n };\r\n case ActionTypes.UPDATE_SHOPPINGCART:\r\n return {\r\n ...state,\r\n Shoppingcart: action.payload,\r\n };\r\n\r\n case ActionTypes.UPDATE_AUTH_TOKEN:\r\n return {\r\n ...state,\r\n AuthToken: action.payload,\r\n };\r\n case ActionTypes.UPDATE_LOGIN:\r\n return {\r\n ...state,\r\n IsLogin: action.payload,\r\n };\r\n case ActionTypes.UPDATE_USERNAME:\r\n return {\r\n ...state,\r\n UserName: action.payload,\r\n };\r\n }\r\n}\r\n\r\nexport const StoreContext = createContext({\r\n ...initialState,\r\n dispatch: undefined,\r\n});\r\n\r\nconst StoreProvider = ({ children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default StoreProvider;\r\n","import React, { useState } from \"react\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\n\r\nlet ModalWrapper = (props) => {\r\n // const [show, setShow] = useState(props.show);\r\n\r\n // if (show !== props.show) setShow(props.show);\r\n\r\n // const handleClose = () => setShow(false);\r\n // const handleShow = () => setShow(true);\r\n\r\n // const handleOnClickClose = () => {\r\n // handleClose();\r\n // };\r\n\r\n const handleSave = (event) => {\r\n if (props.handleOnClick(event)) {\r\n // handleClose();\r\n props.closeModal();\r\n }\r\n };\r\n\r\n const renderModal = () => {\r\n return (\r\n \r\n \r\n {props.title}\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {/* */}\r\n {props.show ? renderModal() : null}\r\n \r\n );\r\n};\r\n\r\nexport default ModalWrapper;\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../../../store\";\r\n\r\nimport ReactDOM from \"react-dom\";\r\nimport Modal from \"react-modal\";\r\nimport Image from \"react-bootstrap/Image\";\r\n//test\r\nconst customStyles = {\r\n content: {\r\n width: \"90%\",\r\n height: \"90%\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n marginRight: \"-50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n overflow: \"scroll\",\r\n },\r\n};\r\n\r\n// Make sure to bind modal to your appElement (http://reactcommunity.org/react-modal/accessibility/)\r\nModal.setAppElement(\"#root\");\r\n\r\nlet ImageModal = (props) => {\r\n const [modalIsOpen, setIsOpen] = useState(false);\r\n const { BaseURL } = useContext(StoreContext);\r\n let subtitle;\r\n function openModal() {\r\n setIsOpen(true);\r\n }\r\n\r\n function afterOpenModal() {\r\n // references are now sync'd and can be accessed.\r\n subtitle.style.color = \"#f00\";\r\n }\r\n\r\n function closeModal() {\r\n setIsOpen(false);\r\n }\r\n //const baseUrl = \"http://api.pigeonconnect.com/api/\";\r\n //const baseUrl = \"http://localhost:64567/api/\";\r\n // const imageURL = require(\"../../../birds/imports/\" + props.ImageURL);\r\n const imageURL =\r\n BaseURL + \"/UploadedFiles/wingandaprayerloft/Catalog/\" + props.ImageURL;\r\n\r\n return (\r\n
\r\n \r\n {props.Text}\r\n \r\n \r\n

(subtitle = _subtitle)}>{props.Alt}

\r\n
\r\n \r\n
\r\n \r\n
{props.Description}
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ImageModal;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { StoreContext } from \"../../../store\";\r\n\r\nimport ReactDOM from \"react-dom\";\r\nimport Modal from \"react-modal\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport {\r\n SaveProductWithUpload,\r\n DeleteImage,\r\n GetCategories,\r\n} from \"../../../actions\";\r\nimport Dropdown from \"react-dropdown\";\r\nimport ImageModal from \"./ImageModal\";\r\nimport {\r\n faPlusCircle,\r\n faMinusCircle,\r\n faTrash,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nconst qs = require(\"query-string\");\r\n//test\r\nconst labelStyle = {\r\n width: \"100px\",\r\n textAlign: \"right\",\r\n margin: \"10px\",\r\n};\r\n\r\nconst tagListStyleNormal = \"list-group-item list-group-item-primary text-left\";\r\nconst tagListStyleSelected = \"list-group-item list-group-item-danger text-left\";\r\n\r\nconst inputStyle = {\r\n width: \"300px\",\r\n textAlign: \"right\",\r\n margin: \"10px\",\r\n // border: \".5px solid red\",\r\n};\r\n\r\nconst inputRowStyle = {\r\n // border: \"1px solid blue\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n width: \"100%\",\r\n justifyContent: \"center\",\r\n};\r\n\r\nconst customStyles = {\r\n content: {\r\n width: \"90%\",\r\n height: \"90%\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n marginRight: \"-50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n overflow: \"scroll\",\r\n backgroundColor: \"#424756\",\r\n },\r\n};\r\n\r\n// Make sure to bind modal to your appElement (http://reactcommunity.org/react-modal/accessibility/)\r\nModal.setAppElement(\"#root\");\r\n\r\nlet UploadModal = (props) => {\r\n //const parsed = qs.parse(window.location);\r\n //allow user to create their own categories and store in server\r\n\r\n useEffect(() => {\r\n if (Categories.length == 0) GetCategories(dispatch);\r\n }, []);\r\n\r\n const conditions = [\"New\", \"Used\"];\r\n // const categories = [\r\n // { id: 1, label: \"Other\" },\r\n // { id: 2, label: \"Household\" },\r\n // { id: 3, label: \"Handmade\" },\r\n // { id: 4, label: \"Electronic\" },\r\n // { id: 5, label: \"Clothes And Accessories\" },\r\n // ];\r\n const {\r\n dispatch,\r\n AuthToken,\r\n BaseURL,\r\n AccountID,\r\n Categories,\r\n ImageLocation,\r\n } = useContext(StoreContext);\r\n\r\n const [modalIsOpen, setIsOpen] = useState(false);\r\n\r\n const [title, setTitle] = useState(\"\");\r\n const [tags, setTags] = useState([]);\r\n const [tag, setTag] = useState(\"\");\r\n const [images, setImages] = useState([]);\r\n const [description, setDescription] = useState(\"\");\r\n const [price, setPrice] = useState(\"\");\r\n const [cost, setCost] = useState(\"\");\r\n const [quantity, setQuantity] = useState(0);\r\n const [condition, setCondition] = useState(conditions[0]);\r\n const [categoryID, setCategoryID] = useState(0);\r\n\r\n const [categoryName, setCategoryName] = useState(\"\");\r\n const [sortingIndex, setSortingIndex] = useState(0);\r\n const [tagListStyle, setTagListStyle] = useState(tagListStyleNormal);\r\n\r\n const [fileData, setFileData] = useState();\r\n const [files, setFiles] = useState();\r\n const [bird, setBird] = useState();\r\n const categories = useState(Categories);\r\n useEffect(() => {\r\n if (modalIsOpen && props.Product != undefined) {\r\n setTitle(props.Product.ListingData.Title);\r\n setDescription(props.Product.ListingData.Description);\r\n setFiles(props.Product.ListingData.Images);\r\n const s = props.Product.ListingData.Condition;\r\n\r\n setImages(props.Product.ListingData.Images);\r\n setCondition(conditions.find((c) => c == s));\r\n setPrice(props.Product.ListingData.Price);\r\n setCost(props.Product.ListingData.Cost);\r\n setQuantity(props.Product.ListingData.Quantity);\r\n setSortingIndex(props.Product.ListingData.SortingIndex);\r\n setCategoryID(props.Product.ListingData.CategoryID);\r\n setCategoryName(\r\n Categories.find(\r\n (c) => c.CategoryID == props.Product.ListingData.CategoryID\r\n )?.CategoryName\r\n );\r\n }\r\n }, [modalIsOpen]);\r\n\r\n let subtitle;\r\n\r\n function openModal() {\r\n setIsOpen(true);\r\n }\r\n\r\n function handleClose() {\r\n setIsOpen(false);\r\n }\r\n\r\n const ReadFile = (e) => {\r\n e.preventDefault();\r\n const files = e.target.files;\r\n setFileData(files);\r\n };\r\n\r\n const onFileChangeHandler = (e) => {\r\n e.preventDefault();\r\n\r\n setFileData(e.target.files);\r\n };\r\n\r\n let handleSave = () => {\r\n if (!ValidateForm()) return;\r\n let product = {\r\n ListingID: props.Product.ListingID,\r\n ListingData: {\r\n ListingID: props.Product.ListingID,\r\n Title: title,\r\n Description: description,\r\n Cost: cost,\r\n Price: price,\r\n Quantity: quantity,\r\n Active: true,\r\n Images: images,\r\n CategoryID: categoryID,\r\n CategoryName: categoryName,\r\n Condition: condition,\r\n },\r\n AccountID: props.Product.AccountID,\r\n CreatedDate: props.Product.CreatedDate,\r\n ModifiedDate: props.Product.ModifiedDate,\r\n };\r\n\r\n //if (FormData.GUID == \"\") {\r\n SaveProductWithUpload(product, fileData, dispatch);\r\n //} else console.log(\"perform edit\");\r\n\r\n handleClose();\r\n };\r\n\r\n const buildProductObject = {\r\n ListingID: 1,\r\n ListingData: {\r\n ListingID: 100,\r\n Title: \"MyTitle\",\r\n Description: \"MyDescription\",\r\n Cost: 50,\r\n Price: 100,\r\n Quantity: 5,\r\n Active: true,\r\n Images: [\"24b4e449-4b6a-4c17-ac27-b29e8e256843farmAd (3).png\"],\r\n },\r\n AccountID: \"accountID\",\r\n CreatedDate: \"2020-09-18T01:53:37.12\",\r\n ModifiedDate: null,\r\n };\r\n\r\n const handleDeleteFile = (fname) => {\r\n handleClose();\r\n //DeleteImage(dispatch, fname);\r\n // setFiles(files.filter((item) => item != fname));\r\n var filtered = images.filter((item) => item != fname);\r\n\r\n var accountInfoProduct = buildProductObject;\r\n accountInfoProduct.Product.ListingData.Images = filtered;\r\n\r\n setImages(filtered);\r\n DeleteImage(dispatch, accountInfoProduct);\r\n };\r\n\r\n useEffect(() => {\r\n setFiles(files);\r\n }, [files]);\r\n\r\n const renderFiles = () => {\r\n return (\r\n
\r\n {images\r\n //.filter((item) => item.includes(\"jpg\"))\r\n ?.map((item) => {\r\n return (\r\n
\r\n
\r\n setImages(images.filter((i) => i != item))}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n };\r\n const ValidateForm = () => {\r\n let isValid = true;\r\n\r\n return isValid;\r\n };\r\n\r\n const addTag = (tag) => {\r\n let x = tags;\r\n x.push(tag);\r\n setTags(x);\r\n setTag(\"\");\r\n };\r\n\r\n const removeTag = (tag) => {\r\n let x = tags.filter((item) => item !== tag);\r\n renderTags();\r\n setTags(x);\r\n setTag(\"\");\r\n setTagListStyle(tagListStyleNormal);\r\n };\r\n\r\n const selectTagFromList = (e) => {\r\n setTag(e.target.innerText);\r\n setTagListStyle(tagListStyleNormal);\r\n e.target.className = tagListStyleSelected;\r\n //e.target.style.color = \"red\";\r\n //setTagListStyle(tagListStyleSelected);\r\n };\r\n\r\n const getTagListStyle = () => {\r\n return tagListStyle;\r\n };\r\n\r\n const renderTags = () => {\r\n let listStyle = \"list-group-item list-group-item-primary text-left\";\r\n return tags.map((item) => {\r\n if (item == tag)\r\n listStyle = \"list-group-item list-group-item-danger text-left\";\r\n else listStyle = \"list-group-item list-group-item-primary text-left\";\r\n return (\r\n
  • selectTagFromList(e)}>\r\n {item}\r\n
  • \r\n );\r\n });\r\n // tags.map((item) => {\r\n // if (item == tag) {\r\n // return (\r\n // selectTagFromList(e)}\r\n // >\r\n // {item}\r\n // \r\n // );\r\n // } else {\r\n // return (\r\n // selectTagFromList(e)}\r\n // >\r\n // {item}\r\n // \r\n // );\r\n // }\r\n // });\r\n };\r\n function afterOpenModal() {\r\n // references are now sync'd and can be accessed.\r\n subtitle.style.color = \"#f00\";\r\n }\r\n\r\n function closeModal() {\r\n setIsOpen(false);\r\n }\r\n return (\r\n
    \r\n
    {props.children}
    \r\n \r\n

    (subtitle = _subtitle)}>{props.Alt}

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {categoryName}\r\n \r\n
    \r\n {Categories.map((item) => {\r\n return (\r\n {\r\n setCategoryID(item.CategoryID);\r\n setCategoryName(item.CategoryName);\r\n }}\r\n >\r\n {item.CategoryName}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setTitle(e.target.value)}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setDescription(e.target.value)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setCost(e.target.value)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setPrice(e.target.value)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setQuantity(e.target.value)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {condition}\r\n \r\n
    \r\n {conditions.map((item) => {\r\n return (\r\n setCondition(item)}\r\n >\r\n {item}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setTag(e.target.value)}\r\n >\r\n\r\n addTag(tag)}\r\n />\r\n {\" \"}\r\n removeTag(tag)}\r\n />\r\n\r\n
    \r\n
      {renderTags()}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setSortingIndex(e.target.value)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {renderFiles()}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ReadFile(sender)}\r\n style={{ height: \"50px\" }}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n handleClose()}\r\n value=\"Close\"\r\n className=\"btn btn-info\"\r\n />\r\n
    \r\n\r\n
    \r\n handleSave()}\r\n value=\"Save\"\r\n />\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UploadModal;\r\n","import axios from \"axios\";\r\nimport React, { useState, useContext, useEffect } from \"react\";\r\n\r\nimport { StoreContext, initialState, SelectedYear } from \"./store\";\r\nimport ActionTypes from \"./actionTypes\";\r\nimport { findDOMNode } from \"react-dom\";\r\nimport Products from \"./components/products\";\r\nimport Shoppingcart from \"./components/shoppingcart\";\r\nconst appID = 2;\r\nconst accountID = \"3\";\r\nconst AuthStr = \"Bearer \".concat(accountID);\r\n\r\n\r\nconst config = { headers: { Authorization: AuthStr } };\r\n\r\nconst baseUrl = \"http://api.pigeonconnect.com/api/\";\r\n\r\n//const baseUrl = \"http://localhost:64567/api/\";\r\n\r\n\r\nexport function GetAPIVersion(dispatch) {\r\n var endPoint = baseUrl + `shoppinglist/GetAPIVersion`;\r\n\r\n return axios\r\n .get(endPoint,config)\r\n .then(function (response) {\r\n dispatch({\r\n actionType: ActionTypes.GET_API_VERSION,\r\n payload: response.data,\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\n\r\nexport function SaveProductWithUpload(product, fileData, dispatch) {\r\n const formData = new FormData();\r\n for (let i = 0; i < fileData?.length; i++) {\r\n formData.append(\"file\", fileData[i], fileData[i].name);\r\n }\r\n formData.append(\"metadata\", JSON.stringify(product));\r\n const config = { headers: { Authorization: AuthStr } };\r\n\r\n var endPoint = baseUrl + `shoppinglist/PostItem`;\r\n\r\n return axios\r\n .post(endPoint, formData)\r\n .then(function (response) {\r\n dispatch({\r\n actionType: ActionTypes.LOAD_PRODUCTS,\r\n payload: [],\r\n });\r\n GetProducts(dispatch);\r\n })\r\n .catch(function (error) {\r\n ErrorHandler(error);\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_LOGIN,\r\n payload: false,\r\n });\r\n });\r\n}\r\nexport function DeleteImage(dispatch, accountInfoProduct) {\r\n accountInfoProduct.AccountInfo.AccountID = accountID;\r\n accountInfoProduct.AccountInfo.AppID = appID;\r\n\r\n var endPoint = baseUrl + `Catalog/DeleteImage`;\r\n return axios\r\n .post(endPoint, accountInfoProduct)\r\n .then(function (response) {\r\n GetProducts(dispatch);\r\n })\r\n .catch(function (error) {\r\n ErrorHandler(error);\r\n });\r\n}\r\n\r\nexport function GetCategories(dispatch) {\r\n var endPoint = baseUrl + `shoppinglist/GetCategories`;\r\n\r\n return axios\r\n .get(endPoint)\r\n .then(function (response) {\r\n dispatch({\r\n actionType: ActionTypes.LOAD_CATEGORIES,\r\n payload: response.data,\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\nexport function GetProducts(dispatch) {\r\n var endPoint = baseUrl + `Shoppinglist/GetListingsByAccountID`;\r\n\r\n //const AuthStr = \"Token \".concat(authToken.Token + \"_\" + accountID);\r\n// const config = { headers: { Authorization: AuthStr } }; \r\n return axios\r\n .post(endPoint,null, config)\r\n .then(function (response) {\r\n dispatch({\r\n actionType: ActionTypes.LOAD_PRODUCTS,\r\n payload: response.data,\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nexport function GetShoppingcart(dispatch) {\r\n dispatch({\r\n actionType: ActionTypes.LOAD_SHOPPINGCART,\r\n payload: \"\",\r\n });\r\n\r\n // var endPoint = baseUrl + `shoppinglist/GetListingsByAccountID`;\r\n // var obj = { AppID: appID, AccountID: accountID, UserID: \"\" };\r\n\r\n // return axios\r\n // .get(endPoint)\r\n // .then(function (response) {\r\n // dispatch({\r\n // actionType: ActionTypes.LOAD_PRODUCTS,\r\n // payload: response.data,\r\n // });\r\n // })\r\n // .catch(function (error) {\r\n // console.log(error);\r\n // });\r\n}\r\nexport function UpdateShoppingcartItem(dispatch, item, shoppingcart) {\r\n // let newShoppingcart = shoppingcart.filter(\r\n // (i) => i.Item.ListingID != item.Item.ListingID\r\n // );\r\n // newShoppingcart.push(item);\r\n\r\n let newShoppingcart;\r\n if (\r\n shoppingcart.find((i) => i.Item.ListingID == item.Item.ListingID) ==\r\n undefined\r\n ) {\r\n newShoppingcart = shoppingcart;\r\n newShoppingcart.push(item);\r\n } else {\r\n //loop thru shoppingcart and update the qty\r\n newShoppingcart = shoppingcart.map(function (i) {\r\n if (i.Item.ListingID == item.Item.ListingID) {\r\n i.Quantity = item.Quantity;\r\n }\r\n return i;\r\n });\r\n }\r\n //filter out if quantity is 0\r\n const filtered = newShoppingcart.filter((i) => i.Quantity > 0);\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_SHOPPINGCART_ITEM,\r\n payload: filtered,\r\n });\r\n}\r\n\r\nexport function UpdateQuantityInCart(\r\n dispatch,\r\n shoppingCart,\r\n products,\r\n productData\r\n) {\r\n const scItem = shoppingCart.find(\r\n (item) => item.Item.ListingID == productData.ListingID\r\n );\r\n\r\n //update the quantity only\r\n shoppingCart.map(function (item) {\r\n if (item.Item.ListingID == productData.ListingID) {\r\n item.Quantity--;\r\n item.Total = item.Quantity * item.Item.Price;\r\n }\r\n return item;\r\n });\r\n\r\n dispatch({\r\n actionType: ActionTypes.ADD_TO_CART,\r\n payload: shoppingCart,\r\n });\r\n\r\n let updatedProducts = products.map(function (item) {\r\n if (item.ListingID == productData.ListingID) item.ListingData.Quantity++;\r\n return item;\r\n });\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_PRODUCT_QUANTITY,\r\n payload: updatedProducts,\r\n });\r\n}\r\n\r\nexport function AddToCart2(dispatch, shoppingCart, products, listingID) {\r\n const scItem = shoppingCart.find((item) => item.ListingID == listingID);\r\n const product = products.find((item) => item.ListingID == listingID)\r\n ?.ListingData;\r\n if (scItem == null) {\r\n const newItem = {\r\n ListingID: listingID,\r\n Item: product,\r\n Quantity: 1,\r\n Price: product.Price,\r\n Total: product.Price * 1,\r\n };\r\n\r\n shoppingCart.push(newItem);\r\n } else {\r\n scItem.Quantity++;\r\n scItem.Total = scItem.Quantity * scItem.Price;\r\n }\r\n //need to update quantity from listing\r\n //investigate this, i was not expecting this to work without updating via dispatch\r\n products.map(function (item) {\r\n if (item.ListingID == listingID) item.ListingData.Quantity--;\r\n });\r\n console.log(\r\n JSON.stringify(products.find((item) => item.ListingID == listingID))\r\n );\r\n // dispatch({\r\n // actionType: ActionTypes.UPDATE_PRODUCT_QUANTITY,\r\n // payload: shoppingCart,\r\n // });\r\n\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_SHOPPINGCART,\r\n payload: shoppingCart,\r\n });\r\n}\r\n\r\nexport function ClearShoppingcart(dispatch) {\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_SHOPPINGCART_ITEM,\r\n payload: [],\r\n });\r\n}\r\n\r\nexport function RemoveItemFromCart(dispatch) {}\r\n//add item to cart\r\nexport function AddToCart(dispatch, shoppingCart, products, productData) {\r\n const scItem = shoppingCart.find(\r\n (item) => item.Item.ListingID == productData.ListingID\r\n );\r\n //first time adding to sc\r\n if (scItem == null) {\r\n const newItem = {\r\n Item: productData,\r\n Quantity: 1,\r\n Total: productData.Price * 1,\r\n };\r\n shoppingCart.push(newItem);\r\n } else {\r\n //update the quantity only\r\n shoppingCart.map(function (item) {\r\n if (item.Item.ListingID == productData.ListingID) {\r\n item.Quantity++;\r\n item.Total = item.Quantity * item.Item.Price;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n dispatch({\r\n actionType: ActionTypes.ADD_TO_CART,\r\n payload: shoppingCart,\r\n });\r\n\r\n let updatedProducts = products.map(function (item) {\r\n if (item.ListingID == productData.ListingID) item.ListingData.Quantity--;\r\n return item;\r\n });\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_PRODUCT_QUANTITY,\r\n payload: updatedProducts,\r\n });\r\n}\r\n\r\nexport function UpdateShoppingCart(\r\n dispatch,\r\n shoppingCart,\r\n products,\r\n listingID\r\n) {\r\n const scItem = shoppingCart.find((item) => item.Item.ListingID == listingID);\r\n\r\n const product = products.find((item) => item.ListingID == listingID);\r\n\r\n product.ListingData.Quantity += scItem.Quantity;\r\n\r\n const filtered = shoppingCart.filter(\r\n (scItem) => scItem.Item.ListingID != listingID\r\n );\r\n // if (scItem.ListingID == listingID) {\r\n // const product = products.find((item) => item.ListingID == listingID);\r\n // product.ListingData.Quantity + scItem.Quantity;\r\n // return null;\r\n // }\r\n // else {\r\n // return scItem;\r\n // }\r\n\r\n shoppingCart = filtered;\r\n // dispatch({\r\n // actionType: ActionTypes.UPDATE_PRODUCT_QUANTITY,\r\n // payload: shoppingCart,\r\n // });\r\n\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_SHOPPINGCART,\r\n payload: filtered,\r\n });\r\n\r\n console.log(\"shoppingcart\" + JSON.stringify(shoppingCart));\r\n console.log(\"products\" + JSON.stringify(products));\r\n}\r\n// export function DeleteRoster(dispatch, Roster, authToken) {\r\n// var endPoint = baseUrl + `ClubRoster/Remove`;\r\n// const AuthStr = \"Token \".concat(authToken.Token + \"_\" + accountID);\r\n// const config = { headers: { Authorization: AuthStr } };\r\n\r\n// return axios\r\n// .post(endPoint, Roster, config)\r\n// .then(function (response) {\r\n// GetRosters(dispatch);\r\n// })\r\n// .catch(function (error) {\r\n// ErrorHandler(error);\r\n// dispatch({\r\n// actionType: ActionTypes.UPDATE_LOGIN,\r\n// payload: false,\r\n// });\r\n// });\r\n// }\r\n// export function Logout(dispatch) {\r\n// dispatch({\r\n// actionType: ActionTypes.UPDATE_AUTH_TOKEN,\r\n// payload: {},\r\n// });\r\n// dispatch({\r\n// actionType: ActionTypes.UPDATE_LOGIN,\r\n// payload: false,\r\n// });\r\n// }\r\n\r\n\r\nexport function SendMessage(dispatch, message) {\r\n message.AccountID = accountID;\r\n message.Recipient = \"christian.dairo@gmail.com\";\r\n var endPoint = baseUrl + `Account/SendMessage`;\r\n\r\n return axios\r\n .post(endPoint, message, config)\r\n .then(function (response) {\r\n console.log(response.data);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nexport function ActivityNotification(dispatch) {\r\n\r\n\r\n var Message = { Name: \"\", Email: \"\", Phone: \"\",Subject:\"\", MessageBody: \"\" };\r\n Message.Subject = \"Activity Notification\";\r\n Message.MessageBody = \"Activity Notification\";\r\n Message.Source = \"Powerhouse Loft Contact Page\";\r\n Message.AccountID = accountID;\r\n Message.Recipient = \"charmedcoder@gmail.com\";\r\n\r\n var endPoint = baseUrl + `Account/SendMessage`;\r\n\r\n return axios\r\n .post(endPoint, Message, config)\r\n .then(function (response) {\r\n console.log(response.data);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\n\r\nexport function DeleteProduct(dispatch, product, authToken) {\r\n\r\n}\r\nexport function Logout(dispatch) {\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_AUTH_TOKEN,\r\n payload: {},\r\n });\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_LOGIN,\r\n payload: false,\r\n });\r\n}\r\nexport function Logging(dispatch, userName, password) {\r\n var endPoint = baseUrl + `Account/Authenticate`;\r\n\r\n //const AuthStr = \"Bearer \".concat(accountID); //+ \", Token \".concat(initialState.Token);\r\n const config = {\r\n headers: { Authorization: AuthStr },\r\n params: { userName, password },\r\n };\r\n return axios\r\n .get(endPoint, config)\r\n .then(function (response) {\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_AUTH_TOKEN,\r\n payload: response.data,\r\n });\r\n\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_LOGIN,\r\n payload: response.data?.Token.length > 0 ? true : false,\r\n });\r\n dispatch({\r\n actionType: ActionTypes.UPDATE_USERNAME,\r\n payload: userName,\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nexport function UpdateLogin(dispatch, userName, password) {\r\n var endPoint = baseUrl + `Account/Login`;\r\n var x = \" Token\";\r\n const AuthStr = \"Bearer \".concat(accountID, x); //+ \", Token \".concat(initialState.Token);\r\n const config = {\r\n headers: { Authorization: AuthStr },\r\n params: { userName, password },\r\n };\r\n return axios\r\n .get(endPoint, config)\r\n .then(function (response) {})\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nfunction ErrorHandler(error) {\r\n var msg = \"\";\r\n if (error.toString().includes(\"401\")) {\r\n msg = \"Invalid Authentication or token expired. Please Login to continue.\";\r\n }\r\n console.log(msg);\r\n}\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport Modal from \"react-modal\";\r\nimport { DeleteProduct } from \"../../../actions\";\r\nimport { StoreContext } from \"../../../store\";\r\n\r\nconst DeleteConfirmation = (props) => {\r\n const { dispatch, AuthToken, Products } = useContext(StoreContext);\r\n const product = props.Product;\r\n let subtitle;\r\n\r\n const [modalIsOpen, setIsOpen] = useState(false);\r\n const [cancelStyle, setCancelStyle] = useState(false);\r\n function openModal() {\r\n setIsOpen(true);\r\n }\r\n function afterOpenModal() {\r\n // references are now sync'd and can be accessed.\r\n subtitle.style.color = \"#f00\";\r\n }\r\n\r\n function closeModal() {\r\n setIsOpen(false);\r\n }\r\n\r\n function handleClose() {\r\n setIsOpen(false);\r\n }\r\n\r\n //duplicated code\r\n\r\n const customStyles = {\r\n content: {\r\n width: \"300px\",\r\n height: \"300px\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n marginRight: \"-50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n backgroundColor: \"#675645\",\r\n color: \"#e1d798\",\r\n },\r\n };\r\n\r\n const handleDelete = () => {\r\n closeModal();\r\n\r\n //pass accountinfoproduct\r\n\r\n DeleteProduct(dispatch, props.Product.ListingID, AuthToken);\r\n };\r\n return (\r\n \r\n
    \r\n
    {props.children}
    \r\n \r\n

    (subtitle = _subtitle)}>{props.Alt}

    \r\n\r\n
    \r\n
    \r\n {}\r\n



    \r\n closeModal()}\r\n >\r\n Cancel\r\n \r\n



    \r\n handleDelete()}\r\n >\r\n Yes, I'm sure!\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default DeleteConfirmation;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\n\r\nconst NoPhoto = () => {\r\n return (\r\n \r\n No Photo\r\n \r\n );\r\n};\r\n\r\nexport default NoPhoto;\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\n\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { UpdateShoppingcartItem } from \"../../../actions\";\r\nimport { StoreContext } from \"../../../store\";\r\n\r\nconst DropDown = (props) => {\r\nconst label = props.Label;\r\nconst action = props.Action;\r\n/*\r\nexpected input\r\nconst options = ['A-Z', 'Z-A','Sex Male-Femaile', 'Sex Female-Male','Age Young- Old', 'Age Old-Young']\r\n\r\nhandleOnClick\r\n\r\n*/\r\n//test\r\n // const options = ['A-Z', 'Z-A','Sex Male-Femaile', 'Sex Female-Male','Age Young- Old', 'Age Old-Young'];\r\n const options = props.Options;\r\n const [selected, setSelected] = useState(options[0]);\r\n\r\n\r\n \r\n //const _selected = props.Selected;\r\n\r\n // useEffect(() => {\r\n // setSelected(props.Selected);\r\n // }, [props.Selected]);\r\n //if (_selected > 0) setSelected(_selected);\r\n\r\n \r\n const handleOnClick = (selectedItem) => {\r\n setSelected(selectedItem);\r\n action(selectedItem);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    {label}
    \r\n
    \r\n \r\n {selected}\r\n \r\n
    \r\n {options.map((item) => {\r\n return (\r\n handleOnClick(item)}\r\n >\r\n {item}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default DropDown;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\n\r\nconst ActionButton = (props) => {\r\n const btnLabel = props.Label;\r\n\r\n const handleOnClick = props.Action;\r\n\r\n return (\r\n \r\n {btnLabel}\r\n \r\n );\r\n};\r\n\r\nexport default ActionButton;\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\n\r\n\r\nconst PageHeader = (props) => {\r\nconst headerText = props.Text;\r\n\r\nreturn (
    {headerText}
    )\r\n};\r\nexport default PageHeader;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\n import NoPhoto from \"./NoPhoto\";\r\n// import Image from \"react-bootstrap/Image\";\r\n import { Link } from \"react-router-dom\";\r\n import Image from \"react-bootstrap/Image\";\r\n import { StoreContext } from \"../../store\";\r\nimport { useParams } from \"react-router-dom\";\r\n// import { GetProducts, AddToCart } from \"../../actions\";\r\n import DropDown from \"./dropdown/DropDown\";\r\n import ImageGallery from \"react-image-gallery\";\r\n import \"react-image-gallery/styles/css/image-gallery.css\";\r\n import { faHeart } from \"@fortawesome/free-solid-svg-icons\";\r\n import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n import ReactTooltip from \"react-tooltip\";\r\nimport ActionButton from \"./buttons/ActionButton\";\r\nimport PageHeader from \"./texts/PageHeader\";\r\nimport ContactUsModal from \"./../atoms/molecules/ContactUsModal\"\r\nconst ProductDetail = (props) => {\r\n\r\n const {\r\nCollections\r\n } = useContext(StoreContext);\r\n\r\n const [likes, setLikes] = useState(0);\r\n const [showContactModal, setShowContactModal] = useState(false);\r\n\r\n\r\n \r\n const handleShowContact = () => {\r\n setShowContactModal(true);\r\n };\r\n\r\n\r\n let { id } = useParams();\r\n const currency = \"$\";\r\n const listing = Collections?.find((item) => item.id == id);\r\n\r\n const { title,description,images, forSale,fields } = listing;\r\n\r\n const ImagesPath = images.map(function (item) {\r\n return {\r\n original:item, // ImageLocation + item,\r\n thumbnail: item,\r\n };\r\n });\r\n\r\n const renderListingDetailContent = () => {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n {images.length <= 0 ? (\r\n \r\n ) : (\r\n \r\n ImagesPath.length > 1 ? \r\n :\r\n \r\n\r\n \r\n )}\r\nClick the to view fullscreen\r\n
    \r\n
    \r\n {/*
    \r\n setLikes(likes + 1)}\r\n data-tip={`${likes} heart this item`}\r\n />\r\n {likes}\r\n
    */}\r\n \r\n \r\n
    \r\n \r\n {title}\r\n \r\n
    \r\n
    \r\n

    {description}

    \r\n \r\n \r\n {Object.entries(fields).map(([key,value]) => \r\n \r\n )}\r\n\r\n\r\n
    {key}{value}
    \r\n
    \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {renderListingDetailContent()}\r\n

    \r\n \r\n {(forSale>0) ?\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n : \r\n
    \r\n
    setShowContactModal(!showContactModal)}>\r\n \r\n
    \r\n
    \r\n }\r\n \r\n {showContactModal ? (\r\n setShowContactModal(!showContactModal)}\r\n Inquery={title}\r\n />\r\n ) : null}\r\n
    \r\n );\r\n\r\n};\r\n\r\nexport default ProductDetail;\r\n\r\nconst descriptionStyle = {\r\n borderTop: \".5px solid gray\",\r\n borderRadius: \"10px\",\r\n display: \"flex\",\r\n textAlign: \"left\",\r\n minWidth: \"100px\",\r\n lineHeight: \"1.5\",\r\n letterSpacing: \"1px\",\r\n fontSize: \"16px\",\r\n padding: \"10px\",\r\n};\r\nconst productContainerStyle = {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n backgroundColor: \"#424756\",\r\n padding: \"20px\",\r\n borderRadius: \"10px\",\r\n width: \"100%\",\r\n margin: \"10px\",\r\n color: \"#e1d798\",\r\n};\r\n\r\nconst imageDivStyle = {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width:'400px'\r\n};\r\n\r\nconst inputStyle = {\r\n width: \"300px\",\r\n textAlign: \"right\",\r\n margin: \"10px\",\r\n // border: \".5px solid red\",\r\n};\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../../../store\";\r\n\r\nimport Button from \"react-bootstrap/Button\";\r\n//import \"../../../../src/styles.less\";\r\nimport ModalWrapper from \"../modal/Modal\";\r\nimport { SendMessage } from \"../../../actions\";\r\n\r\nconst ContactUsModal = (props) => {\r\n console.log(\"loaded contact us modal\");\r\n const { dispatch } = useContext(StoreContext);\r\n\r\n const [Name, setName] = useState(\"\");\r\n const [Email, setEmail] = useState(\"\");\r\n const [Phone, setPhone] = useState(\"\");\r\n const [Subject, setSubject] = useState(\"\");\r\n const [error, setError] = useState(false);\r\n\r\n const [MessageBody, setMessageBody] = useState(\"\");\r\n\r\n useEffect(()=>{\r\n if(props.Inquery !=null) setSubject(props.Inquery);\r\n },[]);\r\n\r\n let handleSend = () => {\r\n\r\n if(Name.length==0 || (Email.length==0 || Phone.length==0) ||MessageBody.length==0){\r\n setError(true);\r\n return;\r\n \r\n }\r\n setError(false);\r\n var Message = { Name: \"\", Email: \"\", Phone: \"\",Subject:\"\", MessageBody: \"\" };\r\n Message.Name = Name;\r\n Message.Email = Email;\r\n Message.Phone = Phone;\r\n Message.Subject = Subject;\r\n Message.MessageBody = MessageBody;\r\n Message.Source = \"Powerhouse Loft Contact Page\";\r\n\r\n SendMessage(dispatch, Message);\r\n props.closeModal();\r\n };\r\n return (\r\n handleSend()}\r\n >\r\n
    \r\n {/*
    \r\n
    \r\n Email Us at \r\n\r\n \r\n chris_dairo@yahoo.com \r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n Fill up the form below\r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n \r\n setName(e.target.value)}\r\n required\r\n />\r\n
    • \r\n
    • \r\n \r\n setEmail(e.target.value)}\r\n required\r\n />\r\n
    • \r\n
    • \r\n \r\n setPhone(e.target.value)}\r\n required\r\n />\r\n
    • \r\n
    • \r\n \r\n setSubject(e.target.value)}\r\n />\r\n
    • \r\n
    • \r\n \r\n setMessageBody(e.target.value)}\r\n />\r\n
    • \r\n {error?
    • Oops looks like you're missing some information.
    • :''}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\nexport default ContactUsModal;\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\n// import \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport { StoreContext } from \"../store\";\r\nimport \"../App.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport ContactUsModal from \"./atoms/molecules/ContactUsModal\";\r\nimport { UpdateLogin, Logout } from \"../actions\";\r\nimport ShoppingCartIcon from \"./atoms/molecules/ShoppingCartIcon\";\r\n\r\nlet Navigation = (props) => {\r\n const { IsLogin, dispatch, LoftName } = useContext(StoreContext);\r\n\r\n const [showContactModal, setShowContactModal] = useState(false);\r\n const handleLogout = () => {\r\n Logout(dispatch);\r\n };\r\n\r\n const hideModalClick = () => {\r\n setShowContactModal(false);\r\n };\r\n\r\n const handleShowContact = () => {\r\n setShowContactModal(true);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {IsLogin ? (\r\n handleLogout()}>\r\n Logout\r\n {/* \r\n Logout\r\n */}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n\r\n
    \r\n
    \r\n {LoftName}\r\n
    \r\n
    \r\n \r\n Home\r\n \r\n
    \r\n
    \r\n \r\n Our Birds\r\n \r\n
    \r\n \r\n
    \r\n \r\n About Us\r\n \r\n
    \r\n\r\n \r\n
    handleShowContact()}>\r\n Contact Us\r\n
    \r\n {showContactModal ? (\r\n hideModalClick()}\r\n />\r\n ) : null}\r\n {IsLogin ? (\r\n
    \r\n \r\n Manage Page\r\n \r\n
    \r\n ) : null}\r\n {/* \r\n \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\nexport default Navigation;\r\n","\r\nimport React, { useState, useContext, useEffect } from \"react\";\r\nimport Image from \"react-bootstrap/Image\";\r\n\r\n\r\nconst MainImage = (props)=>{\r\n\r\n\r\n const imageURL = \"../../images/landingpage.jpg\";\r\n const text = \"\";\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default MainImage;","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../../store\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n\r\nconst CollectionCards= (props)=>{\r\n\r\n//get collectionnames\r\n//loop thru collection to find a match for each collectionname and grab the image\r\n\r\n const {Title, CollectionNames} = props;\r\n\r\n const {\r\n ImageLocation, \r\n \r\n } = useContext(StoreContext);\r\n \r\n \r\n \r\n const displayCards = () =>{\r\n\r\n return(\r\n \r\n
    \r\n\r\n \r\n {CollectionNames?.map((item)=>(\r\n \r\n
    \r\n \r\n {item.name}\r\n \r\n
    \r\n \r\n ))}\r\n \r\n\r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n

    {Title}

    \r\n {displayCards()}\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CollectionCards;","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../store\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport MainImage from '../components/atoms/imagetext/MainImage';\r\nimport CollectionCards from \"./atoms/CollectionCards\";\r\n\r\nlet Home = (props) => {\r\n const {\r\n \r\n CollectionNames\r\n } = useContext(StoreContext);\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Home;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Button, FormGroup, FormControl, FormLabel } from \"react-bootstrap\";\r\nimport { Logging } from \"../../../actions\";\r\nimport { StoreContext } from \"../../../store\";\r\n\r\nexport default function Login() {\r\n const { AuthToken, dispatch } = useContext(StoreContext);\r\n\r\n const [userName, setuserName] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [loginStatus, setLoginStatus] = useState(\"\");\r\n const [btnSubmitText, setBtnSubmitText] = useState(\"Submit\");\r\n const [failedAttempt, setFailedAttempt] = useState(0);\r\n\r\n const loginStatusMessage = `Failed Attempt ${failedAttempt}. Invalid Credentials. Try Again.`;\r\n function validateForm() {\r\n return userName.length > 0 && password.length > 0;\r\n }\r\n\r\n useEffect(() => {\r\n if (AuthToken === null && failedAttempt > 0) {\r\n setLoginStatus(loginStatusMessage);\r\n }\r\n\r\n setBtnSubmitText(\"Submit\");\r\n }, [AuthToken, failedAttempt]);\r\n\r\n const handleSubmit = (event) => {\r\n if (failedAttempt > 3) {\r\n alert(\r\n \"You've reached the allowed maximum Failed Attemp. Self-Destruct sequence to start. \"\r\n );\r\n }\r\n event.preventDefault();\r\n //UpdateLogin(dispatch, userName, password);\r\n setBtnSubmitText(\"Processing...\");\r\n\r\n if (userName.length > 1 && password.length > 1) {\r\n Logging(dispatch, userName, password);\r\n } else {\r\n setLoginStatus(loginStatusMessage);\r\n }\r\n setFailedAttempt(failedAttempt + 1);\r\n };\r\n\r\n // function handleSubmit(event) {\r\n // event.preventDefault();\r\n // if (userName == \"admin\" && password == \"acepigeon\")\r\n // UpdateLogin(dispatch, false);\r\n // else alert(\"invalid username or password\");\r\n // }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n User ID\r\n setuserName(e.target.value)}\r\n />\r\n \r\n \r\n Password\r\n setPassword(e.target.value)}\r\n type=\"password\"\r\n />\r\n \r\n \r\n {btnSubmitText}\r\n \r\n {loginStatus}\r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../store\";\r\nimport \"../App.css\";\r\nimport AdminCards from \"../components/atoms/molecules/AdminCards\";\r\nimport Login from \"./atoms/molecules/Login\";\r\n\r\nlet Admin = () => {\r\n const { IsLogin, UserName } = useContext(StoreContext);\r\n\r\n const renderLoggedin = () => {\r\n return (\r\n
    \r\n

    Welcome {UserName}! You're logged in.

    \r\n

    \r\n You may now add,edit, and delete from your bird catalog. Oh, and don't\r\n forget to logout (top right of your screen) when you're done.\r\n
    \r\n );\r\n };\r\n return (\r\n
    \r\n
    {IsLogin ? renderLoggedin() : }
    \r\n
    \r\n );\r\n};\r\nexport default Admin;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../../../store\";\r\nimport {\r\n GetAPIVersion,\r\n UpdateLogin,\r\n Logout,\r\n SaveProductWithUpload,\r\n ActivityNotification\r\n} from \"../../../actions\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { faBold, faFlagUsa } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst Footer = () => {\r\n const { APIVersion, dispatch, IsLogin } = useContext(StoreContext);\r\n\r\n // useEffect(() => {\r\n // GetAPIVersion(dispatch);\r\n // }, []);\r\n\r\n useEffect(()=>{\r\n ActivityNotification(dispatch)\r\n },[]);\r\n\r\n // const handleLogout = () => {\r\n // Logout(dispatch);\r\n // };\r\n\r\n const handleLogin = () => {\r\n //UpdateLogin(dispatch, true);\r\n };\r\n // useEffect(() => {\r\n // console.log(\"is login\" + IsLogin);\r\n // }, IsLogin);\r\n\r\n return (\r\n \r\n
    \r\n

    \r\n \r\n Powerhouse Loft ©{new Date().getFullYear()}\r\n \r\n

    \r\n\r\n

    \r\n \r\n \r\n \r\n

    \r\n\r\n

    \r\n Developed and maintained by{\" \"}\r\n CharmedCoder\r\n

    \r\n
    \r\n
    \r\n
    \r\n {APIVersion == 0 ? \"STATUS: API IS DOWN\" : \"API V\" + APIVersion}- app\r\n V1.6\r\n
    \r\n
    \r\n \r\n );\r\n};\r\nexport default Footer;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport NoPhoto from \"./NoPhoto\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport { StoreContext } from \"../../store\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport DeleteConfirmation from \"./molecules/DeleteConfirmation\";\r\nimport UploadModal from \"./molecules/UploadModal\";\r\nimport Products from \"../products\";\r\n\r\nconst ProductCardAdmin = (props) => {\r\n const { BaseURL, AccountID, ImageLocation } = useContext(StoreContext);\r\n const currency = \"$\";\r\n const [showConfirmDeleteModal, setShowConfirmDeleteModal] = useState(false);\r\n const [showContactModal, setShowContactModal] = useState(false);\r\n //props\r\n const [title, setTitle] = useState(props.Product.ListingData.Title);\r\n\r\n const product = props.Product;\r\n\r\n const accountInfo = props.Product.AccountInfo;\r\n\r\n //alert(JSON.stringify(props.children));\r\n\r\n const hideModalClick = () => {\r\n setShowContactModal(false);\r\n };\r\n\r\n // const renderAdmin = (product) => {\r\n // alert(\"title:\" + title);\r\n // return (\r\n // \r\n // {\" \"}\r\n //
    \r\n //

    Products Admin

    \r\n //
    \r\n //
    \r\n // hideModalClick()}\r\n // Product={product}\r\n // Msg={`Are you sure you want to delete this item (${title}) ?`}\r\n // >\r\n //
    \r\n //
    \r\n // );\r\n // };\r\n\r\n // const imageURL = product.ListingData.Images.filter(\r\n // (file) => file.includes(\"jpg\") || file.includes(\"png\")\r\n // );\r\n return (\r\n
    \r\n
    \r\n {props.Count + 1}\r\n
    \r\n
    \r\n {product.ListingData.Images[0] == null ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    {product.ListingData.Title}
    \r\n
    \r\n
    \r\n \r\n \r\n Add Edit\r\n
    \r\n {\" \"}\r\n
    \r\n
    {\" \"}\r\n
    \r\n
    \r\n hideModalClick()}\r\n Product={product}\r\n Msg={`Are you sure you want to delete this item (${title}) ?`}\r\n >\r\n \r\n Delete\r\n
    \r\n {\" \"}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductCardAdmin;\r\n\r\nconst productContainerStyle = {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n backgroundColor: \"#424756\",\r\n padding: \"20px\",\r\n borderRadius: \"10px\",\r\n width: \"1000px\",\r\n margin: \"10px\",\r\n flexWrap: \"wrap\",\r\n color: \"#e1d798\",\r\n};\r\n\r\nconst colItem = {\r\n width: \"200px\",\r\n //border: \".5px solid gray\",\r\n padding: \"10px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n};\r\n\r\nconst colItemNum = {\r\n backgroundColor: \"red\",\r\n};\r\n\r\nconst imageDivStyle = {\r\n justifyContent: \"center\",\r\n display: \"flex\",\r\n};\r\n\r\nconst inputStyle = {\r\n width: \"300px\",\r\n textAlign: \"right\",\r\n margin: \"10px\",\r\n // border: \".5px solid red\",\r\n};\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\n\r\nimport { StoreContext } from \"../store\";\r\n\r\nimport Image from \"react-bootstrap/Image\";\r\nimport ImageModal from \"./atoms/molecules/ImageModal\";\r\n//import Filter from \"./atoms/molecules/filter\";\r\nimport ContactUsModal from \"./atoms/molecules/ContactUsModal\";\r\nimport UploadModal from \"./atoms/molecules/UploadModal\";\r\nimport DeleteConfirmation from \"./atoms/molecules/DeleteConfirmation\";\r\nimport { GetProducts } from \"../actions\";\r\nimport ProductDetail from \"./atoms/ProductDetail\";\r\nimport ProductCardAdmin from \"./atoms/ProductCardAdmin\";\r\n\r\nlet ProductsAdmin = (props) => {\r\n //const baseUrl = \"http://localhost:64567\";\r\n const {\r\n dispatch,\r\n AuthToken,\r\n Products,\r\n IsLogin,\r\n BaseURL,\r\n NewProduct,\r\n } = useContext(StoreContext);\r\n //const [filter, setFilter] = useState(\"All\");\r\n const [showContactModal, setShowContactModal] = useState(false);\r\n const [showConfirmDeleteModal, setShowConfirmDeleteModal] = useState(false);\r\n const [products, setProducts] = useState();\r\n const [showDetail, setShowDetail] = useState();\r\n const [productDetail, setProductDetail] = useState(null);\r\n\r\n //next time define all the props here so if object changes it only needs to be updated here\r\n\r\n useEffect(() => {\r\n // console.log(JSON.stringify(Products));\r\n if (Products.length == 0) GetProducts(dispatch);\r\n }, []);\r\n\r\n function getRootUrl() {\r\n var defaultPorts = { \"http:\": 80, \"https:\": 443 };\r\n\r\n return (\r\n window.location.protocol +\r\n \"//\" +\r\n window.location.hostname +\r\n (window.location.port &&\r\n window.location.port != defaultPorts[window.location.protocol]\r\n ? \":\" + window.location.port\r\n : \"\")\r\n );\r\n }\r\n\r\n const currency = \"$\";\r\n\r\n const hideModalClick = () => {\r\n setShowContactModal(false);\r\n };\r\n\r\n const handleShowContact = () => {\r\n setShowContactModal(true);\r\n };\r\n\r\n const renderAdmin = (product) => {\r\n return (\r\n \r\n {\" \"}\r\n
    \r\n

    Products Admin

    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const handleProductClick = (product) => {\r\n setShowDetail(!showDetail);\r\n setProductDetail(product);\r\n };\r\n\r\n const handleAddEditClick = (product) => {\r\n alert(\"handleAddEditClick\");\r\n renderAdmin(product);\r\n };\r\n\r\n const renderItems = () => {\r\n return (\r\n \r\n
    \r\n {Products?.length > 0 ? (\r\n Products.sort(\r\n (a, b) =>\r\n b.SortingIndex - a.SortingIndex ||\r\n new Date(b.CreatedDate) - new Date(a.CreatedDate)\r\n )?.map((filteredProduct, index) => (\r\n \r\n ))\r\n ) : (\r\n \r\n No Result\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {IsLogin ? (\r\n
    \r\n \r\n \r\n Add Item\r\n
    \r\n {\" \"}\r\n
    \r\n ) : null}\r\n \r\n \r\n {productDetail == null ? (\r\n renderItems()\r\n ) : (\r\n \r\n
    \r\n {/* {\" \"} */}\r\n

    hey

    \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProductsAdmin;\r\n","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../store\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport CollectionWrapper from '../components/atoms/imagetext/MainImage';\r\nimport Products from \"./products\";\r\nimport NoPhoto from \"./atoms/NoPhoto\";\r\nimport CollectionCards from \"./atoms/CollectionCards\";\r\nimport PageHeader from \"./atoms/texts/PageHeader\";\r\n\r\n\r\n\r\nconst CollectionsPage = (props)=>{\r\n\r\n const {\r\n ImageLocation, \r\n Collections,\r\n CollectionNames\r\n } = useContext(StoreContext);\r\n \r\n const imageURL = \"../../images/landingpage.jpg\";\r\n const text = \"\";\r\n\r\n\r\n\r\n \r\n const displayCollections = () =>{\r\n\r\n return(\r\n \r\n
    \r\n\r\n \r\n {Collections?.map((item)=>(\r\n
    \r\n \r\n {item.Title}\r\n \r\n
    \r\n ))}\r\n \r\n\r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CollectionsPage;","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../store\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport CollectionWrapper from './atoms/imagetext/MainImage';\r\nimport Products from \"./products\";\r\nimport NoPhoto from \"./atoms/NoPhoto\";\r\nimport CollectionCards from \"./atoms/CollectionCards\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport DropDown from \"./atoms/dropdown/DropDown\";\r\nimport DropDownCheckBox from \"./atoms/dropdown/DropDownCheckBox\";\r\nimport PageHeader from \"../components/atoms/texts/PageHeader\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ContactUsModal from \"../components/atoms/molecules/ContactUsModal\";\r\n\r\n\r\nconst CollectionPage = (props)=>{\r\n\r\n const { collectionname} = useParams();\r\n\r\n const filterOptions = ['All','Cocks','Hens','For Sale','Imports'];\r\n const {\r\n SortOptions, \r\n Collections\r\n } = useContext(StoreContext);\r\n \r\n const imageURL = \"../../images/landingpage.jpg\";\r\n const text = \"\";\r\n\r\n const [showContactModal, setShowContactModal] = useState(false);\r\n \r\n const [sortBy, setSortBy] = useState(SortOptions[0])\r\n const [collections, setCollections] = useState(Collections?.filter((item)=>item.collectionname==collectionname));\r\n\r\n \r\n\r\n const sortIt = (list)=>{\r\n\r\n\r\n switch (sortBy) {\r\n case 'A-Z':\r\n return list.sort((a,b)=>(a.title.localeCompare(b.title)))\r\n break;\r\n case 'Z-A': \r\n return list.sort((a,b)=>(b.title.localeCompare(a.title)));\r\n break;\r\n default:\r\n console.log(`Sorry,unknown ${sortBy}.`);\r\n }\r\n }\r\n\r\n\r\n// useEffect(()=>{\r\n\r\n\r\n\r\n// switch (sortBy) {\r\n// case 'A-Z':\r\n// console.log('sorting a-z');\r\n// //a.firstname.localeCompare(b.firstname)\r\n// console.log(collections.sort((a,b)=>(a.title.localeCompare(b.title))));\r\n// var y = collections.sort((a,b)=>(a.title.localeCompare(b.title)))\r\n// setCollections(y);\r\n// break;\r\n// case 'Z-A':\r\n// console.log('sorting z-a');\r\n// //console.log(collections.sort((a,b)=>(b.title - a.title)));\r\n// console.log(collections.sort((a,b)=>(b.title.localeCompare(a.title))));\r\n// var x = collections.sort((a,b)=>(b.title.localeCompare(a.title)));\r\n// setCollections(x);\r\n// break;\r\n// default:\r\n// console.log(`Sorry,unknown ${sortBy}.`);\r\n// }\r\n\r\n// },[sortBy]);\r\n\r\n //const _collections = Collections.filter((item)=>item.collectionname==collectionname);\r\n\r\n // const data = [{'Title':'Bird1','Description':'Description asdfasdf', 'Image':'2xwinner-removebg-preview.png', 'CollectionName':'Winners'},\r\n // {'Title':'Bird2','Description':'Description 1234', 'Image':'381-removebg-preview.png', 'CollectionName':'Breeders'}]\r\n\r\n\r\n const onSelectSort = (item)=>{\r\n setSortBy(item);\r\n }\r\n \r\n const displayCollection = () =>{\r\n return(\r\n \r\n
    \r\n\r\n {sortIt(collections)?.map((item)=>{\r\n const {images,title} = item;\r\n\r\n return(\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {title}\r\n
    \r\n
    \r\n )\r\n })}\r\n \r\n\r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n\r\n {collections.length > 0 ? displayCollection():

    This Collection is empty, check back in a later time or setShowContactModal(!showContactModal)}>click here to drop us a message.

    }\r\n \r\n\r\n {showContactModal ? (\r\n setShowContactModal(!showContactModal)}\r\n />\r\n ) : null}\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CollectionPage;","import React, { useState, useContext, useEffect } from \"react\";\r\nimport { StoreContext } from \"../store\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport CollectionWrapper from './atoms/imagetext/MainImage';\r\nimport Products from \"./products\";\r\nimport NoPhoto from \"./atoms/NoPhoto\";\r\nimport CollectionCards from \"./atoms/CollectionCards\";\r\nimport PageHeader from \"./atoms/texts/PageHeader\";\r\nimport ImageLeftTextRight from \"./atoms/imagetext/ImageLeftTextRight\"\r\n\r\n\r\nconst AboutUsPage = (props)=>{\r\n\r\n const {\r\n ImageLocation, \r\n Collections,\r\n CollectionNames\r\n } = useContext(StoreContext);\r\n \r\n const imageURL = \"../../images/landingpage.jpg\";\r\n const text = \"\";\r\n\r\n\r\n\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    How it all started? Chris has always been an animal lover, adventurer, and enjoys competition. For those reasons he fell in love with this wonderful world of homing pigeons. \r\n He started raising pigeons before he was a teen. He enjoyed seeing them come home when they were taken away from the loft. He could still remember his first race against his neighbor (their own version of 1 bird derby). Waiting \r\n on the roof to see whos bird will land first. His bird was ahead but it decided to make another lap around the loft before landing and lost the race, regardless he's been hooked since then. Unfortunately, he had to give up his birds when \r\n they moved. Fast forward to several years later, he found his way back to this wonderful hobby. He was fortunate to have met great flyers and mentors in the beginning of his come back. They were all very generous with their knowledge, birds, and everything he needed, \r\n for that he'd always be greateful.

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n Our Birds Powerhouse Loft started with birds from local flyers from the Tri-state such as Wing's Loft, Amoco Loft, Hillside Loft, and Glory Loft. We're also fortunate to aquire a bird from Bunag Loft. Most of these bloodlines are still in our loft. These bloodlines allowed us \r\n to win a trophy, diplomas, and other prizes. Winning is great, but for now our real motivation is to develop a family of birds that have natural health and always ready to fly the distance. \r\n

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AboutUsPage;","(\"use strict\");\r\nimport React, { useState, useContext, useEffect } from \"react\";\r\n\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport Navigation from \"./components/navigation\";\r\nimport Home from \"./components/home\";\r\nimport Products from \"./components/products\";\r\nimport Admin from \"./components/admin\";\r\nimport Image from \"react-bootstrap/Image\";\r\nimport StoreProvider from \"./store\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport Footer from \"./components/atoms/molecules/Footer\";\r\nimport Filter from \"./components/atoms/molecules/filter\";\r\nimport ProductDetail from \"./components/atoms/ProductDetail\";\r\nimport ProductsAdmin from \"./components/productsadmin\";\r\nimport Shoppingcart from \"./components/shoppingcart\";\r\nimport CheckoutPage from \"./components/checkout\";\r\nimport CollectionsPage from \"./components/CollectionsPage\"\r\nimport CollectionPage from \"./components/CollectionPage\"\r\nimport AboutUsPage from \"./components/AboutUsPage\";\r\n\r\nfunction App() {\r\n const headerStyle = {\r\n color: \"red\",\r\n textAlign: \"center\",\r\n margin: \"20px\",\r\n fontFamily: \"Impact, Haettenschweiler,Arial Narrow Bold, sans-serif\",\r\n letterSpacing: \"5px\",\r\n };\r\n\r\n const [filter, setFilter] = useState(\"All\");\r\n const selectFilter = (event) => {\r\n setFilter(event.value);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/landingpage2.47022786.png\";","module.exports = __webpack_public_path__ + \"static/media/fullscreen.cf6ff8d4.JPG\";"],"sourceRoot":""}