{"version":3,"sources":["components/Free_form.jpeg","components/Portrait.jpeg","components/Model.jpeg","components/Cappella-sistina-volta.jpeg","components/white_canvas_written.png","components/logoNew2.png","components/Klevra_figure.png","components/Elvira_figure.jpeg","components/super_pope.jpeg","components/UMAN_figure.jpeg","components/logo_fontana_bar.png","components/Logo_adam_color.png","components/artecenatePlusLogo.png","components/behance.png","components/cretto_burri.jpg","components/user_icon.png","components/whiteboard_icon.png","components/Profile_pic.png","components/magLogo.png","components/Klevra_figure_old.jpeg","components/UMAN_figure_old.jpeg","components/Stillion_figure.jpg","components/Logo_logo.png","constants/apiConstants.js","components/LogoutGoogle.js","components/HamburgerMenu.js","components/SettingsMenu.js","components/AlertComponent.js","components/NotificationConversation.js","components/NotificationFollow.js","components/NotificationMenu.js","components/ChatMenu.js","components/MecenateAppBar.js","components/MecenateStackGrid.js","components/Search.js","components/HomeCards.js","components/Logo_adam.js","components/PasswordPage.js","components/BottomBar.js","components/PictureGrid.js","components/Home.js","components/UserGallery.js","components/UserBar.js","components/UserCommissions.js","components/SettingsProfile.js","components/UserProfile.js","components/UserHeader.js","components/UserSideLeft.js","components/User.js","components/SettingsPersonalImageCut.js","components/SettingsPersonal.js","components/SettingPortfolioEntry.js","components/SettingsPortfolio.js","components/SettingsCommission.js","components/SettingsAccount.js","components/LoginGoogle.js","components/LoginHome.js","components/Register.js","components/ChatMessage.js","components/ChatWhiteboard.js","components/ChatCommissionCenter.js","components/Chat.js","components/ChatEngine.js","components/About.js","components/AboutPhilosophy.js","components/AboutHowItWorks.js","components/AboutRegistrationForm.js","components/AboutContact.js","components/AboutPayments.js","components/Authentication.js","utils/PrivateRoute.js","utils/refreshToken.js","components/Password.js","components/ErrorPage.js","App.js","serviceWorker.js","index.js","components/logo_fontana.png"],"names":["module","exports","BASE_URL","HOME","ACCESS_TOKEN_NAME","USER_ID","USER_TYPE","LogoutGoogle","props","ticket","localStorage","getItem","token","Button","onClick","removeItem","window","location","chatLogout","axios","get","headers","then","res","console","log","HamburgerMenu","HamburgerButton","fontSize","fontWeight","marginTop","flag","className","style","display","StyledMenu","withStyles","paper","border","elevation","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","StyledMenuItem","theme","root","color","palette","common","black","MenuItem","SettingsMenu","React","useState","anchorEl","setAnchorEl","user_type","history","useHistory","IconButton","event","currentTarget","disabled","id","keepMounted","open","Boolean","onClose","push","fontVariant","ListItemIcon","ListItemText","primary","ButtonStyles","makeStyles","close","maxHeight","maxWidth","backgroundColor","AlertComponent","modalDisplay","toggleDisplay","closeModal","hideError","useEffect","errorMessage","classes","role","flexDirection","marginLeft","marginRight","marginBottom","type","aria-label","height","Alert","severity","justifyContent","NotificationConversation","modalOpen","modalOpenSet","updateErrorMessage","decisionRequest","e","value","method","url","data","commission_id","notification","commissioner_id","commissioner","status","reload","catch","err","user_one","timestamp","Date","decisionRequestCommissioner","sender_id","message","engagement_id","linkURL","path","handleModalClose","handleModalOpen","body","borderRadius","src","image_url","Link","href","first_name","last_name","commission_type","commission_media","commission_matters","commission_width","commission_height","commission_price","commission_message","variant","bodyCommissioner","paddingBottom","width","Modal","aria-labelledby","aria-describedby","NotificationFollow","notification_status","counterparty_id","NotificationMenu","conversationRequestList","conversationRequestListSet","userNotifications","userNotificationsSet","notificationCount","notificationCountSet","logoutOnError","requestOne","requestTwo","all","spread","responses","responseOne","responseTwo","counter","map","obj","i","forEach","error","response","interval","setInterval","errors","clearInterval","leader","notification_type","Badge","badgeContent","List","key","ChatMenu","activeConversationNumber","active_conversations","length","unread","conversation_id","dataSource","MecenateAppBar","routeChangeHome","hamburger","hamburgerSet","AppBar","position","Toolbar","logoIcon","alt","userID","unread_messages","close_Chat","transitions","scaleDown","search","alignItems","shape","fade","searchIcon","inputRoot","inputInput","padding","spacing","paddingLeft","transition","create","breakpoints","up","HomeCards","image","search_type","title","description","split","author","matter","dimensions","to","user_id","target","city","LogoAdam","PasswordPage","pswd","pswdSet","Container","Input","onChange","locker","setItem","BottomBar","PictureGrid","Home","setSearch","results","setResults","firstSearchSet","autocomplete","autocompleteSet","advancedShow","advancedShowSet","searchType","searchTypeSet","pageSet","pageCount","pageCountSet","user_typeSet","citySet","state","stateSet","country","countrySet","styleSet","education","educationSet","medium","mediumSet","matterSet","price","priceSet","size","pswdSelector","pswdSelectorSet","pswdFlag","query","mediaMatch","matchMedia","matches","setMatches","handler","addListener","removeListener","useMediaQuery","userFilter","price_filter","Math","round","filters","handleSearch","logo","InputBase","placeholder","inputProps","onKeyDown","RadioGroup","FormControlLabel","control","Radio","label","Autocomplete","options","renderInput","params","TextField","Slider","min","max","step","log10","Switch","checked","imageCard","index","offset","newResults","concat","MyGallery","images","descriptions","currentImage","imgGalleryRef","useRef","indexSet","Object","entries","galleryURL","original","owner","items","showPlayButton","thumbnailPosition","ref","current","onSlide","currentIndex","EmailShareButton","hashtag","EmailIcon","logoFillColor","FacebookShareButton","FacebookIcon","TwitterShareButton","profileInformation","via","TwitterIcon","PinterestShareButton","media","PinterestIcon","ProfileBar","StyledToggleButton","borderStyle","borderColor","ToggleButton","userType","ToggleButtonGroup","exclusive","selection","selectionHandler","UserCommissions","mediaSet","heightSet","widthSet","messageSet","priceSelected","priceSelectedSet","email","emailSet","inquirername","inquirernameSet","commissiontype","commissiontypeSet","mediaList","mediaListSet","matterList","matterListSet","priceList","priceListSet","severityUpdate","user","useParams","artistInformation","content","pop","Select","indexOf","priceTemp","parseInt","item","required","multiline","rows","maxLength","artist","commission_matter","user_two","sender","sender_email","freeform","freeForm","portrait","model","fullcustom","fullCustom","SettingsProfile","defaultValue","setContent","modules","toolbar","align","clipboard","matchVisual","UserProfile","displayBioSet","setDisplayBioSet","displayArtSet","setDisplayArtSet","biography","setBiography","art","setArt","handleSettingsBio","handleSettingsArt","readOnly","UserHeader","profile_image_url","statements","website","match","facebook","instagram","behance","Behance","useStyles","background","SimpleList","mediums","mediumsSet","matters","mattersSet","ListItem","min_price","max_price","travel","messageobj","hyphen","institution","gallery","User","profileInfo","profileInfoUpdate","artistInfo","artistInfoUpdate","portfolioURLs","portfolioURLsUpdate","setSelection","collectorMessage","collectorMessageSet","followFlag","followFlagSet","date","require","thumbnail","follows","startIcon","newFormats","pixelRatio","devicePixelRatio","generateDownload","previewCanvas","crop","canvas","newWidth","newHeight","tmpCanvas","document","createElement","getContext","drawImage","getResizedCanvas","toBlob","blob","form_data","FormData","append","CutImage","upImg","setUpImg","imgRef","previewCanvasRef","unit","aspect","setCrop","completedCrop","setCompletedCrop","onLoad","useCallback","img","scaleX","naturalWidth","scaleY","naturalHeight","ctx","setTransform","imageSmoothingQuality","x","y","accept","files","reader","FileReader","addEventListener","result","readAsDataURL","htmlFor","component","onImageLoaded","c","onComplete","SettingsPersonal","firstName","lastName","statement","dob","info","setInfo","countries","registerLocale","enLocale","countryObj","getNames","select","countryArr","prevState","date_of_birth","handleChange","handleSubmitClick","preventDefault","payloadInfo","userIcon","severityUpadate","InputLabelProps","shrink","option","SettingPortfolioEntry","imageN","image_N","dimension_one","dimension_two","tags","entriesSet","load","loadSet","handleTags","URLdescription","dim1","dim2","URLimage","identifier","descriptId","setImgObj","CircularProgress","handleImageChange","handleDelete","fullWidth","SettingsPortfolio","refresh","loading","loadingSet","output","img_default","URLimage1","URLimage2","URLimage3","URLimage4","URLimage5","URLimage6","URLimage7","URLimage8","URLimage9","URLimage10","URLdescription1","URLdescription2","URLdescription3","URLdescription4","URLdescription5","URLdescription6","URLdescription7","URLdescription8","URLdescription9","URLdescription10","imgURL","imgURLSet","image1","image2","image3","image4","image5","image6","image7","image8","image9","image10","description1","description2","description3","description4","description5","description6","description7","description8","description9","description10","imgObj","imageKey","descrkey","onload","ev","keyID","handleSubmit","gallery_data","formControl","margin","minWidth","chips","flexWrap","chip","noLabel","travelOptions","styles","SettingsCommission","sizeW","sizeH","freeFormSet","portraitSet","modelSet","fullCustomSet","matter_list","splice","medium_list","style_list","price_list","useTheme","handleChangePrice","array","multiple","element","toUpperCase","freeSolo","renderTags","getTagProps","Chip","Checkbox","freeFormPic","portraitPic","modelPic","fullCustomPic","stylesSummary","entry","mattersSummary","mediumsSummary","priceSummary","toString","SettingsAccount","LoginGoogle","register","LoginHome","screen","screenSet","password","successMessage","setState","severitySet","payload","access_token","redirectToHome","cursor","backgroundImage","Background","backgroundSize","back","Register","confirmPassword","displaySet","access","accessSet","accessPssw","accessPsswSet","handleAccessPasswordVerification","redirectToLogin","class","textAlign","sendDetailsToServer","large","ChatMessage","newmessage","toLocaleString","message_type","Avatar","image_src","paddingRight","paddingTop","whiteSpace","ChatWhiteboard","inbox","in_box","sendMessage","send_Message","canvasRef","contextRef","dummyCanvasRef","dummyContextRef","backgroundCanvasRef","backgroundContextRef","isDrawing","setIsDrawing","undo","undoSet","undocounts","undocountsSet","prevUndoCounts","prevUndoCountsSet","shapeSelector","shapeSelectorSet","cx","cxSet","cy","cySet","brushThickness","brushThicknessSet","hex","rgb","r","g","b","a","colorSet","lineStyle","lineStyleSet","textInput","textInputSet","handleOpen","canvasPic","Image","whiteboard","clearRect","canvasWidth","bkgPic","command","popOpen","context","dummyCanvas","dummyContext","backgroundCanvas","backgroundContext","lineCap","strokeStyle","lineWidth","setLineDash","fillStyle","font","dummyArray","startDrawing","nativeEvent","offsetX","offsetY","beginPath","moveTo","finishDrawing","toDataURL","stroke","fillText","draw","lineTo","bezierCurveTo","closePath","valueLabelDisplay","selected","onloadend","H","W","canvasHeight","ox","oy","borderWidth","Popover","onChangeComplete","disableAlpha","onMouseDown","onMouseUp","onMouseMove","ColorlibConnector","alternativeLabel","top","active","completed","line","StepConnector","useColorlibStepIconStyles","zIndex","boxShadow","ColorlibStepIcon","icons","1","2","3","clsx","String","icon","button","instructions","ChatCommissionCenter","activeStep","setActiveStep","steps","Typography","getStepContent","Stepper","connector","Step","StepLabel","StepIconComponent","prevActiveStep","drawer","flexShrink","drawerOpen","easing","sharp","duration","enteringScreen","drawerClose","leavingScreen","overflowX","Chat","conversationID","setOpen","textMessage","textMessageSet","pastMessages","pastMessagesSet","pagOffset","pagOffsetSet","pagLimit","pagLimitSet","screenSelector","screenSelectorSet","messageDisplay","messageDisplayFiltered","filter","handleSendMessage","messageEl","scroll","scrollHeight","behavior","messageSide","Drawer","Divider","whiteboardIcon","message_id","Off","Lim","onKeyUp","onSelect","lastMessage","extension","image_ext","ChatEngine","wsRef","setInbox","conversations","setConversations","setUnread","connected","setConnected","WebSocket","BASE_URL_WS","onopen","onmessage","evt","data_in","JSON","parse","onclose","send","stringify","closeChat","About","handleLink","Phiosophy","AboutHowItWorks","volume","controls","AboutRegistrationForm","fullname","fullnameSet","portfolio","portfolioSet","usertype","usertypeSet","full_name","AboutContact","AboutPayments","Authentication","authToken","verified","verifiedSet","errorSet","backgroundPosition","alignContent","PrivateRoute","children","rest","render","pathname","from","RefreshTokenSetup","tokenTime","tokenTimeSet","accessMinutes","getMinutes","d","getSeconds","abs","time","Password","ErrorPage","createMuiTheme","main","secondary","typography","allVariants","fontFamily","letterSpacing","App","ThemeProvider","CssBaseline","exact","showError","AboutPhilosophy","hostname","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.577706ce.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Free_form.fad1faf8.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/Portrait.660a899f.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/Model.5fce6a56.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/Cappella-sistina-volta.eb917491.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/white_canvas_written.415588e2.png\";","module.exports = __webpack_public_path__ + \"static/media/logoNew2.65b4716b.png\";","module.exports = __webpack_public_path__ + \"static/media/Klevra_figure.600aff13.png\";","module.exports = __webpack_public_path__ + \"static/media/Elvira_figure.bdb7ee42.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/super_pope.32a9cc65.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/UMAN_figure.a40b088a.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/logo_fontana_bar.75da9419.png\";","module.exports = __webpack_public_path__ + \"static/media/Logo_adam_color.6b92c7fb.png\";","module.exports = __webpack_public_path__ + \"static/media/artecenatePlusLogo.8a4bc8a5.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/cretto_burri.8baf7888.jpg\";","module.exports = __webpack_public_path__ + \"static/media/user_icon.6cd35e6c.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Profile_pic.154594ed.png\";","module.exports = __webpack_public_path__ + \"static/media/magLogo.3c4347fa.png\";","module.exports = __webpack_public_path__ + \"static/media/Klevra_figure_old.05b64a0e.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/UMAN_figure_old.0faba01c.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/Stillion_figure.d6c5721b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Logo_logo.d2d32c76.png\";","//export const BASE_URL = 'http://34.219.113.18:8000/';\n//export const BASE_URL = 'http://34.219.73.70:8008/';\n//export const BASE_URL = 'https://dev-api.artmecenate.com/'\nexport const BASE_URL = 'https://api.artmecenate.com/';\n\n//export const BASE_URL_WS = 'ws://34.219.113.18:8000/';\n//export const BASE_URL_WS = 'ws://34.219.73.70:8008/';\n//export const BASE_URL_WS = 'wss://dev-api.artmecenate.com/';\nexport const BASE_URL_WS = 'wss://api.artmecenate.com/';\n\n//export const HOME = 'http://localhost:3001/'\nexport const HOME = 'https://plus.artmecenate.com/'\n\n\nexport const ACCESS_TOKEN_NAME = 'login_access_token';\nexport const ACCESS_TOKEN_TIME = 'time_of_last_login_access_token';\nexport const ACCESS_TICKET_NAME = 'login_access_ticket';\nexport const USER_ID = 'login_user_id';\nexport const USER_TYPE = 'login_user_type';\nexport const WS_OBJECT = 'websocket_object';\n\nexport const PSWD_FLAG = 'password_flag';","\nimport React from 'react';\nimport { GoogleLogout } from 'react-google-login';\nimport { Button } from '@material-ui/core';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, ACCESS_TICKET_NAME, HOME} from '../constants/apiConstants'\n\n\nimport axios from 'axios';\n\nconst clientId =\n '703599566697-gb94cmabbt3q56mnkcud2i24f86vi5fd.apps.googleusercontent.com';\n\nfunction LogoutGoogle(props) {\n\n\n \n const ticket = localStorage.getItem(ACCESS_TICKET_NAME);\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n \n \n const onSuccess = () => {\n \n\n localStorage.removeItem(ACCESS_TOKEN_NAME)\n localStorage.removeItem(USER_ID)\n localStorage.removeItem(ACCESS_TICKET_NAME)\n\n //console.log('you are out');\n\n let path = HOME; \n window.location = path;\n\n props.chatLogout()\n \n axios.get(BASE_URL + 'oauth/logout/'+ ticket, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n .then((res) => {\n console.log(res)\n })\n \n\n };\n\n const handleLogout = () => {\n\n localStorage.removeItem(ACCESS_TOKEN_NAME)\n localStorage.removeItem(USER_ID)\n localStorage.removeItem(ACCESS_TICKET_NAME)\n\n \n\n let path = HOME\n window.location = path;\n\n props.chatLogout()\n \n axios.get(BASE_URL + 'oauth/logout/'+ ticket, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n .then((res) => {\n console.log(res)\n })\n\n }\n\n const handleLoginRoute = () => {\n\n let path = HOME+'loginhome'\n window.location = path;\n\n }\n\n\nif(token){\n\n\n return (\n\n \n\n
\n\n \n \n\n \n \n
\n );\n }\n\nif(!token){\n\n return(\n\n
\n \n
\n\n )\n\n }\n}\n\nexport default LogoutGoogle;","import React from 'react';\nimport {Button } from '@material-ui/core';\nimport {BASE_URL, HOME} from '../constants/apiConstants'\nimport './HamburgerMenu.css' \n\n\nexport default function HamburgerMenu(props) {\n\n\n const HamburgerButton = {\n\n fontSize: '30px',\n fontWeight: '200',\n marginTop: '2px',\n \n }\n\n\n const artLink = () => {\n window.location = HOME + 'ART/artIndex'\n }\n \n const artistsLink = () => {\n window.location = HOME + 'ARTISTS/artistsIndex'\n }\n \n const collectorsLink = () => {\n window.location = HOME + 'COLLECTORS/collectorsIndex'\n }\n \n const commissionersLink = () => {\n window.location = HOME + 'COMMISSIONERS/commissionersIndex'\n }\n \n const focusLink = () => {\n window.location = HOME + 'focus'\n }\n \n const homeLink = () => {\n window.location = HOME \n }\n \n const artMecenateLink = () => {\n window.location = 'https://artmecenate.com'\n }\n \n\n if(props.flag){ \n return (\n
\n
\n \n \n \n \n \n \n \n
\n \n\n
\n )\n }\n if(!props.flag){\n\n return(
)\n } \n}","import React from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport IconButton from '@material-ui/core/IconButton';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\n\nimport BrushIcon from '@material-ui/icons/Brush';\nimport ImageIcon from '@material-ui/icons/Image';\nimport PersonIcon from '@material-ui/icons/Person';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport ManageAccountsIcon from '@material-ui/icons/AccountCircle';\n\n\nimport {USER_TYPE, ACCESS_TOKEN_NAME} from '../constants/apiConstants'\n\nconst StyledMenu = withStyles({\n paper: {\n border: '1px solid #d3d4d5',\n },\n})((props) => (\n \n));\n\nconst StyledMenuItem = withStyles((theme) => ({\n root: {\n \n \n '& .MuiListItemIcon-root, & .MuiListItemText-primary': {\n color: theme.palette.common.black,\n \n },\n },\n}))(MenuItem);\n\nexport default function SettingsMenu() {\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n\n const user_type = localStorage.getItem(USER_TYPE);\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const history = useHistory();\n\n const routeChangeSettingsPersonal = () =>{ \n let path = `/SettingsPersonal`; \n history.push(path);\n }\n\n const routeChangeSettingsPortfolio= () =>{ \n let path = `/SettingsPortfolio`; \n history.push(path);\n }\n\n const routeChangeSettingsCommission= () =>{ \n let path = `/SettingsCommission`; \n history.push(path);\n }\n\n const routeChangeSettingsAccount= () =>{ \n let path = `/SettingsAccount`; \n history.push(path);\n }\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n
\n \n \n \n\n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n\n \n\n\n\n
\n );\n}","\nimport React, { useState, useEffect } from 'react';\nimport { Button, IconButton} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Alert} from '@material-ui/lab';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\n\n\nconst ButtonStyles = makeStyles({\n\n\n close: {\n \n color: 'inherit',\n maxHeight:'16px',\n maxWidth:'16px',\n\n \n '&:hover': {\n backgroundColor: \"rgba(255,10,0,0)\",\n color: \"rgba(200,0,0,1)\"\n }\n\n },\n});\n\n\nfunction AlertComponent(props) {\n\n const [modalDisplay, toggleDisplay] = useState('none');\n\n const openModal = () => {\n toggleDisplay('flex'); \n }\n const closeModal = () => {\n toggleDisplay('none'); \n props.hideError(null);\n }\n useEffect(() => {\n if(props.errorMessage !== null) {\n openModal()\n } else {\n closeModal()\n }\n });\n\n\n const classes = ButtonStyles();\n \n return(\n\n
\n\n \n\n
\n\n closeModal()}>\n\n \n\n \n\n
\n\n \n \n {props.errorMessage}\n \n \n \n\n \n \n \n \n
\n )\n} \n\nexport default AlertComponent","import React, {useState} from 'react';\nimport { Button } from '@material-ui/core';\nimport './User.css'\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, USER_TYPE, HOME} from '../constants/apiConstants'\nimport picture from './Profile_pic.png' \nimport axios from 'axios';\nimport Link from '@material-ui/core/Link';\nimport AlertComponent from './AlertComponent';\nimport Modal from '@material-ui/core/Modal';\nimport './User.css'\n\n\n\nfunction NotificationConversation(props) {\n\n \n const [modalOpen, modalOpenSet] = useState(false)\n \n const user_type = localStorage.getItem(USER_TYPE);\n const [errorMessage, updateErrorMessage] = useState(null);\n\n\n\n\t const decisionRequest = (e, value) => { \n\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const user_id = localStorage.getItem(USER_ID);\n\n\n axios({\n method: \"post\",\n \n url: BASE_URL + \"commissions/accept\",\n data: {\n \t\t\t\t\t commission_id: props.notification.commission_id,\n commissioner_id: props.notification.commissioner,\n \t\t\t\t\t status: value,\n \t\t\t\t\t //timestamp: new Date()\n\t\t\t\t\t },\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n window.location.reload()\n \n })\n .catch(err => {\n\n console.log(err)\n updateErrorMessage(\"Something went wrong. Try again or contact us!\")})\n\n\n\n\n axios({\n method: \"post\",\n \n url: BASE_URL + \"chat/conversation\",\n data: { \n user_one: props.notification.commissioner,\n status: value,\n timestamp: new Date()\n },\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n \n \n })\n .catch(err => console.log(err))\n\n\n };\n\n const decisionRequestCommissioner = (e, value) => { \n\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const user_id = localStorage.getItem(USER_ID);\n\n\n axios({\n method: \"post\",\n \n url: BASE_URL + \"chat/conversation\",\n data: { \n user_one: props.notification.sender_id,\n status: value,\n timestamp: new Date(),\n message: props.notification.message,\n engagement_id: props.notification.engagement_id\n },\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n window.location.reload() \n \n })\n .catch(err => {\n\n console.log(err)\n updateErrorMessage(\"Something went wrong. Try again or contact us!\")\n\n })\n\n\n };\n\n const linkURL = () => { \n\n \t\tlet path = HOME + props.notification.user_one \n\n window.location = path;\n\n }\n\n const handleModalClose = () => {\n modalOpenSet(false);\n };\n\n const handleModalOpen = () => {\n modalOpenSet(true);\n };\n\n\n const body = (\n
\n
\n\n
\n \n
{props.notification.first_name} {props.notification.last_name}
\n
\n\n
\n

COMMISSION TYPE:

{props.notification.commission_type}

\n

MEDIUM:

{props.notification.commission_media}

\n

MATTER:

{props.notification.commission_matters}

\n

DIMENSIONS:

{props.notification.commission_width} X {props.notification.commission_height} inch (W x H)

\n

PRICE:

{props.notification.commission_price} $

\n
\n\n

MESSAGE

\n
\n \n

{props.notification.commission_message}

\n
\n\n \n \n\n \n \n
\n
\n );\n\n const bodyCommissioner = (\n
\n
\n\n
\n \n
{props.notification.first_name} {props.notification.last_name}
\n
\n\n \n\n

MESSAGE

\n
\n \n

{props.notification.message}

\n
\n\n \n\n \n \n\n \n\n \n \n
\n
\n ); \n\n\nif(user_type == 'artist'){\n\n return (\n\n\n \t
\n\n \t
\n\n \t \tCOMMISSION REQUEST\n\n \t
\n\n
\n\n \n\n
\n\n \t {props.notification.first_name} {props.notification.last_name} \n
\n\n
\n\n
\n\n \n\n \n
\n\n \n {body}\n\n \n\n
\n )}\n\n if(user_type == 'commissioner'){\n \n return (\n\n\n
\n\n
\n\n MESSAGE REQUEST FROM\n\n
\n\n
\n\n \n\n
\n\n {props.notification.first_name} {props.notification.last_name} \n
\n\n
\n\n
\n\n \n\n \n
\n\n \n {bodyCommissioner}\n\n \n\n
\n )}\n\n\n}\n\nexport default NotificationConversation;","import React from 'react';\nimport Link from '@material-ui/core/Link';\nimport { HOME} from '../constants/apiConstants'\nimport './Notification.css'\n\n\nfunction NotificationFollow(props) {\n\n \n \n\n const linkURL = () => { \n\n let path = HOME+props.notification.counterparty_id\n\n window.location = path;\n\n }\n\n\n\t\n\n\n\n return (\n\n\n \t
\n\n
\n
\n {props.notification.first_name} {props.notification.last_name} \n
\n
\n {props.notification.notification}\n
\n
\n\n \t \n\n
\n );\n}\n\nexport default NotificationFollow;","import React, {useEffect, useState} from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport NotificationsNoneIcon from '@material-ui/icons/NotificationsNone';\nimport IconButton from '@material-ui/core/IconButton';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport List from '@material-ui/core/List';\nimport BrushIcon from '@material-ui/icons/Brush';\nimport Badge from '@material-ui/core/Badge';\nimport NotificationConversation from './NotificationConversation.js'\nimport NotificationFollow from './NotificationFollow.js'\nimport axios from 'axios';\n\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, USER_TYPE, ACCESS_TICKET_NAME, HOME} from '../constants/apiConstants'\n\n\nconst StyledMenu = withStyles({\n paper: {\n border: '1px solid #d3d4d5',\n },\n})((props) => (\n \n));\n\n\n\n\n\nexport default function NotificationMenu() {\n\n\n const [conversationRequestList, conversationRequestListSet] = useState([])\n const [userNotifications, userNotificationsSet] = useState([])\n\n const [notificationCount, notificationCountSet] = useState(0)\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n const user_type = localStorage.getItem(USER_TYPE)\n\n const ticket = localStorage.getItem(ACCESS_TICKET_NAME);\n \n\n\n\n const logoutOnError = () => {\n \n\n localStorage.removeItem(ACCESS_TOKEN_NAME)\n localStorage.removeItem(USER_ID)\n localStorage.removeItem(ACCESS_TICKET_NAME)\n\n //console.log('you are out');\n\n let path = HOME; \n window.location = path;\n\n \n \n axios.get(BASE_URL + 'oauth/logout/'+ ticket, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n .then((res) => {\n console.log(res)\n })\n \n\n };\n\n \n\n useEffect(() => {\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const pointer = (user_type == 'artist' ? 0:2)\n \n \n\n \n //const userID = localStorage.getItem(USER_ID);\n \n{/*}\n axios.get('http://34.219.113.18:8008/chat/conversation?status=PENDING', {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n console.log(res.data)\n conversationRequestListSet(res.data)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n */}\n\n // ################\n\n if (token){ \n\n \n\n const requestOne = (user_type == 'artist' ? (axios.get(BASE_URL + 'commissions/notifications?status=PENDING', { \n \n headers: {\n 'Authorization': 'Bearer '+ token, \n }\n\n }))\n\n : \n\n (axios.get(BASE_URL + 'chat/pendings?status=PENDING', {\n \n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })))\n\n\n\n const requestTwo = axios.get(BASE_URL + 'follows/notifications?offset=0&limit=10', {\n \n headers: {\n 'Authorization': 'Bearer '+ token, \n }\n });\n\n\n\n axios.all([requestOne, requestTwo])\n\n .then(\n\n \n axios.spread((...responses) => {\n\n \n\n const responseOne = responses[0];\n conversationRequestListSet(responseOne.data)\n //console.log(responseOne)\n \n \n const responseTwo = responses[1];\n userNotificationsSet(responseTwo.data)\n\n \n \n \n var counter = 0\n\n const mapping1 = responseOne.data.map((obj, i) => (\n\n counter = i+1 \n ))\n\n const mapping2 = responseTwo.data.forEach((obj, i) => \n\n { \n if(obj.notification_status == 'UNSEEN'){\n counter = counter + 1}\n\n }\n \n \n )\n\n notificationCountSet(counter)\n \n \n \n \n console.log(responses);\n })\n )\n .catch(function (error) {\n \n if(error.response.status===401){\n logoutOnError()\n }\n\n \n \n\n \n });\n\n }\n \n \n\n }, []);\n\n\n useEffect(() => {\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const pointer = (user_type == 'artist' ? 0:2)\n\n if(token){\n\n\n const interval = setInterval(() => {\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n //const userID = localStorage.getItem(USER_ID);\n \n {/*}\n axios.get('http://34.219.113.18:8008/chat/conversation?status=PENDING', {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n console.log(res.data)\n conversationRequestListSet(res.data)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n */}\n\n // ################\n\n const requestOne = (user_type == 'artist' ? (axios.get(BASE_URL + 'commissions/notifications?status=PENDING', { \n \n headers: {\n 'Authorization': 'Bearer '+ token, \n }\n\n }))\n\n : \n\n (axios.get(BASE_URL + 'chat/pendings?status=PENDING', {\n \n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })))\n\n\n const requestTwo = axios.get(BASE_URL + 'follows/notifications?offset=0&limit=10', {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n });\n \n\n axios.all([requestOne, requestTwo])\n\n .then(\n axios.spread((...responses) => {\n\n\n const responseOne = responses[0]\n\n conversationRequestListSet(responseOne.data)\n \n \n const responseTwo = responses[1];\n userNotificationsSet(responseTwo.data)\n \n \n var counter = 0\n\n const mapping1 = responseOne.data.map((obj, i) => (\n\n counter = i+1 \n ))\n\n const mapping2 = responseTwo.data.forEach((obj, i) => \n\n\n { \n if(obj.notification_status == 'UNSEEN'){\n counter = counter + 1}\n\n }\n \n \n )\n\n notificationCountSet(counter)\n\n \n \n \n //console.log(responseOne.data, responseTwo);\n })\n )\n .catch(errors => {\n // react on errors.\n console.error(errors);\n\n \n \n });\n\n\n }, 20000);\n return () => clearInterval(interval); \n\n } \n \n\n }, []);\n\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n axios({\n method: \"post\",\n url: BASE_URL + \"follows/request\",\n data: { leader: 'READ',\n notification_type: 'SERVICE'},\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n \n })\n .catch(err => console.log(err))\n\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n\n\n \n\n return (\n
\n \n \n \n \n \n\n\n \n \n \n \n\n \n\n { \n\n conversationRequestList.map((notification, i) => (\n\n \n \n \n ))}\n\n \n \n \n \n \n\n { \n\n userNotifications.map((notification, i) => (\n\n \n \n \n\n ))}\n\n \n\n \n \n\n
\n );\n}","import React from 'react';\nimport { ChatList } from 'react-chat-elements'\n\nimport 'react-chat-elements/dist/main.css'\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport Badge from '@material-ui/core/Badge';\nimport { useHistory } from \"react-router-dom\";\nimport {HOME, ACCESS_TOKEN_NAME} from '../constants/apiConstants';\n\n\n\n\n\nconst StyledMenu = withStyles({\n paper: {\n border: '1px solid #d3d4d5',\n },\n})((props) => (\n \n));\n\n\n\n\nexport default function ChatMenu(props) {\n\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n const history = useHistory();\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n \n\n const listFunction = (e) => { \n \n console.log(e.title);\n\n }\n\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const conversationManager = (e) => { \n \n //console.log(e.conversation_id);\n \n history.push('/chat/'+e.conversation_id )\n\n //let path = HOME + `chat/`\n //window.location = path;\n\n }\n\n const activeConversationNumber = props.active_conversations ? props.active_conversations.length : 0\n\n\n\n return (\n
\n\n \n \n messages\n \n \n\n\n \n \n\n \n \n \n\n
\n );\n}","import React, {useState} from 'react';\nimport { AppBar, Toolbar, Button } from '@material-ui/core';\nimport Badge from '@material-ui/core/Badge';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport {ACCESS_TOKEN_NAME, USER_ID} from '../constants/apiConstants'\nimport LogoutGoogle from './LogoutGoogle'\nimport HamburgerMenu from './HamburgerMenu';\nimport MenuIcon from '@material-ui/icons/Menu';\n\nimport logoIcon from './logo_fontana_bar.png';\n\nimport { useHistory } from \"react-router-dom\";\n\nimport SettingsMenu from './SettingsMenu'\nimport NotificationMenu from './NotificationMenu'\nimport ChatMenu from './ChatMenu'\nimport {HOME } from '../constants/apiConstants';\n\nimport './MecenateAppBar.css' \nimport './HamburgerMenu.css' \n\n\nfunction MecenateAppBar(props) {\n \n\n \n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const history = useHistory();\n\n const routeChangeProfile = () =>{ \n\n const userID = localStorage.getItem(USER_ID);\n //let path = `http://localhost:3001/`+userID; \n history.push('/'+userID)\n\n //window.location = HOME+userID\n }\n\n const routeChangeHome = () =>{ \n //let path = `http://localhost:3001/` \n //window.location = HOME\n history.push('/')\n }\n\n const routeChangeHowitWorks = () => {\n\n history.push('/'+'howitworks')\n\n }\n\n const [hamburger, hamburgerSet] = useState(false)\n\n const handleHamburgerMenu = () => {\n\n hamburgerSet(!hamburger)\n\n }\n \n\n\n return (\n\n
\n
\n \n \n \n\n
\n \n\n
HOW IT WORKS
\n \n\n \n \n
\n\n \n\n \n\n \n\n \n\n \n \n
\n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n\n
\n\n \n );\n}\n\nexport default MecenateAppBar;\n","import React from 'react';\n\nimport StackGrid, { transitions, easings } from \"react-stack-grid\";\n\nimport \"./MecenateStackGrid.css\"\n\nconst transition = transitions.scaleDown;\n\nconst images = [\n { src: './images/photos/photo01.jpg', label: 'Sample image 1' },\n { src: './images/photos/photo02.jpg', label: 'Sample image 2' },\n { src: './images/photos/photo03.jpg', label: 'Sample image 3' },\n { src: './images/photos/photo04.jpg', label: 'Sample image 4' },\n { src: './images/photos/photo05.jpg', label: 'Sample image 5' },\n { src: './images/photos/photo06.jpg', label: 'Sample image 6' },\n { src: './images/photos/photo07.jpg', label: 'Sample image 7' },\n { src: './images/photos/photo08.jpg', label: 'Sample image 8' },\n { src: './images/photos/photo09.jpg', label: 'Sample image 9' },\n { src: './images/photos/photo10.jpg', label: 'Sample image 10' },\n { src: './images/photos/photo11.jpg', label: 'Sample image 11' },\n { src: './images/photos/photo12.jpg', label: 'Sample image 12' },\n { src: './images/photos/photo13.jpg', label: 'Sample image 13' },\n { src: './images/photos/photo14.jpg', label: 'Sample image 14' },\n { src: './images/photos/photo15.jpg', label: 'Sample image 15' },\n { src: './images/photos/photo16.jpg', label: 'Sample image 16' },\n { src: './images/photos/photo17.jpg', label: 'Sample image 17' },\n { src: './images/photos/photo18.jpg', label: 'Sample image 18' },\n { src: './images/photos/photo19.jpg', label: 'Sample image 19' },\n { src: './images/photos/photo20.jpg', label: 'Sample image 20' },\n { src: './images/photos/photo21.jpg', label: 'Sample image 21' },\n { src: './images/photos/photo22.jpg', label: 'Sample image 22' },\n];\n\n\nconst MecenateStackGrid = () => (\n \n {images.map(obj => (\n \n {obj.label}\n
{obj.label}
\n \n ))}\n \n);\n\nexport default MecenateStackGrid;\n","import React from 'react';\n\nimport { InputBase, Container } from '@material-ui/core';\nimport { fade, makeStyles } from '@material-ui/core/styles';\n\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useStyles = makeStyles((theme) => ({\n search: {\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n maxWidth: '560px',\n display: 'flex',\n marginBottom: '100px',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: fade(theme.palette.common.black, 0.05),\n '&:hover': {\n backgroundColor: fade(theme.palette.common.black, 0.10),\n },\n\n },\n searchIcon: {\n height: '100%',\n alignItems: 'left',\n justifyContent: 'left',\n },\n inputRoot: {\n color: 'inherit',\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 0),\n // vertical padding + font size from searchIcon\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n [theme.breakpoints.up('md')]: {\n width: '20ch',\n },\n },\n}));\n\n\nfunction Search() {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n );\n\n}\n\nexport default Search;\n","import React from 'react';\nimport { Link } from \"react-router-dom\";\nimport './Home.css'\nimport Avatar from '@material-ui/core/Avatar';\n\n\nfunction HomeCards(props) {\n\n \n\n\n\n if(props.image.search_type==='IMAGE'){\n\n const title = props.image.description.split(';')[0]\n const author = props.image.description.split(';')[1]\n const matter = props.image.description.split(';')[2]\n const dimensions = props.image.description.split(';')[3]\n\n return (\n\n
\n\n \n\n \n \"image\"\n \n \n
\n\n \n \n \n\n
\n

{props.image.first_name} {props.image.last_name}

\n

{props.image.user_type}

\n
\n\n
\n \n
\n\n

title:

\n

{title}

\n

author:

\n

{author}

\n
\n\n
\n

{matter}, {dimensions} inch

\n
\n \n
\n\n \n \n \n \n \n
\n\n
\n );\n }\n\n else{\n\n return (\n\n \n\n \"image\"\n\n
\n\n

{props.image.first_name} {props.image.last_name}

\n

{props.image.user_type == 'artist' ? 'ARTIST' : 'COLLECTOR'} - {props.image.city}

\n\n
\n\n \n\n )\n\n }\n\n}\n\nexport default HomeCards; ","import React from 'react';\nimport logo from './Logo_adam_color.png'; // Tell webpack this JS file uses this image\n\n\n\n\n\n\n\nfunction LogoAdam() {\n // Import result is the URL of your image\n return \"Logo_adam\";\n}\nexport default LogoAdam;","import React, {useState} from 'react'\nimport { Container, Button, Input } from '@material-ui/core';\nimport Background from './cretto_burri.jpg';\nimport logoIcon from './Logo_logo.png';\nimport {PSWD_FLAG} from '../constants/apiConstants';\nimport './PasswordPage.css'\n\n\n\n\nfunction PasswordPage(props){\n\n\t\n const[pswd, pswdSet] = useState('')\n\n const handlePassword = (e) => {\n\n \tpswdSet(e.target.value)\n\n }\n\n const handleSubmitPassword = () => {\n\n \tif(pswd == 'Malevich'){\n\n \t\tprops.locker(0)\n \t\tlocalStorage.setItem(PSWD_FLAG,'Malevich');\n \t}\n\n \t\n }\n\n\n\n\n\treturn(\n\n\t\t
\n\n\t\t
\n\t\t
\n\n\t\t\t \n\n\t\t\t
\n\t\t\t \n\t\t\t
\n\n\t\t\t \"Logo_adam\"/\n\n\t\t\t
\n\t\t\t

Insert password

\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\n\t\t\t
\n\n\t\t\t
\n\n\t\t\t
\n\t\t \t
\n\n\t\t
\n\n\t\t
\n\n\n\t\t)\n}\n\nexport default PasswordPage","import React from 'react';\nimport './BottomBar.css';\nimport {Link} from \"react-router-dom\";\n\n\n\n\nfunction BottomBar(props) {\n\n\n\n\n return (\n\n
\n
\n
\n \n
About
\n
Contact Us
\n \n
artMecenate© 2022
\n\n
\n\n
\n );\n}\n\nexport default BottomBar;","import React from 'react';\nimport klevraFigure from './Klevra_figure.png';\nimport elviraFigure from './Elvira_figure.jpeg';\nimport maupalFigure from './super_pope.jpeg';\nimport umanFigure from './UMAN_figure.jpeg';\nimport HomeShortcutsCards from './HomeShortcutsCards';\nimport PictureGridCards from './PictureGridCards';\nimport './PictureGridCards.css'\n\n\nfunction PictureGrid(props) {\n\n \n\n const PictureGridCont = {\n\n display: 'grid',\n gridAutoColumns: props.unitColumn,\n gridAutoRows: props.unitRow,\n \n }\n\n return (\n\n
\n {props.children}\n
\n\n ) \n\n\n}\n\nexport default PictureGrid; ","import React, {useState, useEffect} from 'react';\nimport MecenateStackGrid from \"./MecenateStackGrid\"\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport Search from \"./Search\"\nimport SearchName from \"./SearchName\"\nimport HomeCards from './HomeCards'\nimport LogoAdam from './Logo_adam.js'\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, PSWD_FLAG} from '../constants/apiConstants'\nimport { Button } from '@material-ui/core';\nimport axios from 'axios';\nimport { Link } from \"react-router-dom\";\nimport Switch from '@material-ui/core/Switch';\nimport InputBase from '@material-ui/core/InputBase';\nimport IconButton from '@material-ui/core/IconButton';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport Slider from '@material-ui//core/Slider';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Pagination from '@material-ui/lab/Pagination';\nimport PasswordPage from './PasswordPage'\nimport BottomBar from './BottomBar';\nimport HomeShortcutsCards from './HomeShortcutsCards'\n\nimport PictureGrid from './PictureGrid'\nimport PictureGridCards from './PictureGridCards';\n\n/*import logo from './logoNew2.png';*/\n//import logo from './BannerFLogo.png'\nimport logo from './artecenatePlusLogo.png'\nimport magLogo from './magLogo.png'\nimport klevraFigure from './Klevra_figure.png';\nimport klevraFigure2 from './Klevra_figure_old.jpeg';\nimport elviraFigure from './Elvira_figure.jpeg';\nimport maupalFigure from './super_pope.jpeg';\n//import maupalFigure2 from './Maupal_figure2.png';\nimport umanFigure from './UMAN_figure.jpeg';\nimport umanFigure2 from './UMAN_figure_old.jpeg';\nimport stillionFigure from './Stillion_figure.jpg'\n\nimport './Home.css'\n\n\n\nexport const useMediaQuery = (query) => {\n const mediaMatch = window.matchMedia(query);\n const [matches, setMatches] = useState(mediaMatch.matches);\n\n useEffect(() => {\n const handler = e => setMatches(e.matches);\n mediaMatch.addListener(handler);\n return () => mediaMatch.removeListener(handler);\n });\n return matches;\n};\n\nfunction Home(props) {\n\n const [search, setSearch] = useState('')\n const [results, setResults] = useState([])\n const [firstSearch, firstSearchSet] = useState(0)\n\n const [autocomplete, autocompleteSet] = useState({})\n\n const [advancedShow, advancedShowSet] = useState(false)\n const [searchType, searchTypeSet] = useState('image')\n const [paginationCounts, paginationCountsSet] = useState(1)\n const [page, pageSet] = useState(1)\n const [pageCount, pageCountSet] = useState(2)\n \n const [user_type, user_typeSet] = useState('')\n const [city, citySet] = useState('')\n const [state, stateSet] = useState('')\n const [country, countrySet] = useState('')\n const [style, styleSet] = useState('')\n const [education, educationSet] = useState('')\n const [medium, mediumSet] = useState('')\n const [matter, matterSet] = useState('')\n const [price, priceSet] = useState([1, 6])\n const [size, sizeSet] = useState('')\n\n\n const [pswdSelector, pswdSelectorSet] = useState(0)\n\n const pswdFlag = localStorage.getItem(PSWD_FLAG);\n\n const mobileScreen = useMediaQuery('(max-width: 768px)');\n\n\n React.useEffect(() => {\n\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n \n\n axios.get(BASE_URL + 'search/distinct', {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n \n \n autocompleteSet(res.data)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n\n pageSet(1)\n pageCountSet(2)\n \n \n\n const userFilter = '&user_type=' + user_type\n\n const price_filter = \"&price_range=\"+Math.round(10**price[0])+'-'+Math.round(10**price[1])\n \n const filters = country+state+city+style+education+medium+matter+size+price_filter+userFilter\n\n \n\n const requestOne = axios.get(BASE_URL + 'search/'+searchType+'?text='+'green'+ '&limit=10&offset=0'+filters, {\n headers: {'Authorization': 'Bearer '+ token,}\n })\n\n \n {/* \n\n const requestTwo = axios.get(BASE_URL + 'search/image/count?text='+search, {\n headers: {'Authorization': 'Bearer '+ token,}\n })\n\n \n const requestThree = axios.get(BASE_URL + 'search/users/count?text='+search, {\n headers: {'Authorization': 'Bearer '+ token,}\n })\n\n */}\n\n axios.all([requestOne])\n\n\n .then(\n axios.spread((...responses) => {\n\n const responseOne = responses[0];\n setResults(responseOne.data)\n firstSearchSet(1)\n\n \n {/* \n const responseTwo = responses[1];\n const responseThree = responses[2]; \n\n if (searchType == 'image'){\n paginationCountsSet(responseTwo.data.count)}\n\n if (searchType == 'user'){\n paginationCountsSet(responseThree.data.count)}\n\n */} \n\n\n })\n )\n\n .catch((error) => {\n console.error(error)\n }) \n \n \n \n\n }, []);\n\n\n const handleSearch = () => {\n\n pageSet(1)\n pageCountSet(2)\n \n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n const userFilter = '&user_type=' + user_type\n\n const price_filter = \"&price_range=\"+Math.round(10**price[0])+'-'+Math.round(10**price[1])\n \n const filters = country+state+city+style+education+medium+matter+size+price_filter+userFilter\n\n \n\n const requestOne = axios.get(BASE_URL + 'search/'+searchType+'?text='+search+ '&limit=10&offset=0'+filters, {\n headers: {'Authorization': 'Bearer '+ token,}\n })\n\n \n {/* \n\n const requestTwo = axios.get(BASE_URL + 'search/image/count?text='+search, {\n headers: {'Authorization': 'Bearer '+ token,}\n })\n\n \n const requestThree = axios.get(BASE_URL + 'search/users/count?text='+search, {\n headers: {'Authorization': 'Bearer '+ token,}\n })\n\n */}\n\n axios.all([requestOne])\n\n\n .then(\n axios.spread((...responses) => {\n\n const responseOne = responses[0];\n setResults(responseOne.data)\n firstSearchSet(1)\n\n \n {/* \n const responseTwo = responses[1];\n const responseThree = responses[2]; \n\n if (searchType == 'image'){\n paginationCountsSet(responseTwo.data.count)}\n\n if (searchType == 'user'){\n paginationCountsSet(responseThree.data.count)}\n\n */} \n\n\n })\n )\n\n .catch((error) => {\n console.error(error)\n }) \n\n\n };\n\n const selectSearch = (e) => {\n\n if(e.target.checked){\n\n searchTypeSet('user')\n }\n \n if(!e.target.checked){\n\n searchTypeSet('image')\n }\n\n\n\n }\n\n const handleSearchChange = (e) => {\n\n const {id , value} = e.target \n setSearch(value)\n\n\n }\n\n const handleAdvancedShow = () => {\n\n advancedShowSet(!advancedShow)\n\n }\n\n const handleUser_type = (e) =>{\n\n user_typeSet(e.target.value)\n \n }\n \n const handleCountry = (e, value) => {\n \n if(value){\n countrySet('&country=' + value)}\n else{\n countrySet('')\n }\n\n }\n\n const handleState = (e, value) => {\n \n if(value){\n stateSet('&state=' + value)}\n else{\n stateSet('')\n }\n\n }\n\n const handleCity = (e, value) => {\n \n if(value){\n citySet('&city=' + value)}\n else{\n citySet('')\n }\n\n }\n\n const handlePrice = (e, value) => {\n \n if(value){\n priceSet(value)}\n\n }\n\n const handleMinPrice = (e, value) => {\n \n priceSet([Math.log10(e.target.value),price[1]])\n\n }\n\n const handleMaxPrice = (e, value) => {\n \n priceSet([price[0],Math.log10(e.target.value)])\n\n }\n\n const handleSize = (e, value) => {\n \n if(value){\n sizeSet('&size=' + value)}\n else{\n sizeSet('')\n }\n\n }\n\n const handleStyle = (e, value) => {\n\n if(value){\n styleSet('&style=' + value)}\n else{\n styleSet('')\n }\n\n }\n\n const handleEducation = (e, value) => {\n\n if(value){\n educationSet('&education=' + value)}\n else{\n educationSet('')\n }\n\n }\n\n const handleMedium = (e, value) => {\n\n if(value){\n mediumSet('&medium=' + value)}\n else{\n mediumSet('')\n }\n\n }\n\n const handleMatter = (e, value) => {\n\n if(value){\n matterSet('&matter=' + value)}\n else{\n matterSet('')\n }\n\n }\n\n const handlePagination = (e, value) => {\n\n //console.log(value)\n\n //pageSet(value)\n pageCountSet( pageCount + 1)\n //const offset = (value * 10)-10\n\n const offset = (pageCount * 10)-10\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n const userFilter = '&user_type=' + user_type\n const price_filter = \"&price_range=\"+Math.round(10**price[0])+'-'+Math.round(10**price[1])\n \n const filters = country+state+city+style+education+medium+matter+price_filter+size+userFilter\n\n\n\n axios.get(BASE_URL + 'search/'+searchType+'?text='+search+ '&limit=10&offset='+offset+filters, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n var newResults = results.concat(res.data)\n\n //setResults(res.data)\n setResults(newResults)\n\n \n \n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n }\n\n\n\n const options = ['San Francisco', 'Toronto'];\n const prices = ['100$ - 500$', '500$ - 2000$'];\n const sizes = ['1sqft', '10sqft'];\n\n if(pswdSelector == 0 | pswdFlag=='Malevich'){\n \n return (\n
\n \n\n {/*
*/}\n \n
\n \"Logo_adam\"\n
\n \n \n
\n
\n {\n if (e.key === 'Enter') {\n handleSearch() \n }\n }}\n />\n \n \n \n\n\n
\n\n\n \n
\n
\n\n\n
\n\n \n\n
\n } label=\"Artists\" />\n } label=\"Collectors\" />\n } label=\"All\" />\n
\n \n
\n\n \n
\n\n\n
\n \n }\n />\n\n }\n />\n\n }\n />\n\n }\n />\n\n }\n />\n\n
\n\n
\n\n }\n />\n\n }\n />\n\n
\n\n
\n PRICE RANGE\n
\n \n
\n
\n \n $ \n
\n
\n \n $ \n
\n
\n
\n\n \n\n
\n \n

search by name

\n
\n \n
\n
\n
\n\n
\n\n {/*\n
\n\n
\n ALL STREETS LEAD TO ROME: ARTISTS\n
\n\n \n\n \n \n \n\n \n\n\n
\n THE HUMAN SHAPE SERIES\n
\n\n \n \n \n \n \n \n\n \n
\n VISIT OUR MAGAZINE\n
\n\n \n \n
\n
visit our magazine to find the latest news on our artists, commissions, collectors, interviews, critical essays, commissions, and much more from the art world
\n \n \n \n\n
\n\n \n \n \n \n
\n
\n\n */}\n\n \n \n \n \n \n{/*\n
\n { [...Array(pageCount-1)].map((x, k) => (\n\n \n
\n\n { results[0] || !firstSearch ? (\n results.slice(k*10,10+k*10).map((imageCard, i) => ( \n \n\n )) \n ): \n (
No results for this search, sorry!
) \n }\n\n
\n \n\n ))}\n
\n\n */}\n\n
\n\n
\n { results.map((imageCard, i) => ( i%3==0 ? (\n ) : ''\n )) \n }\n
\n\n
\n { results.map((imageCard, i) => ( i%3==1 ? (\n ) : ''\n )) \n }\n
\n\n
\n { results.map((imageCard, i) => ( i%3==2 ? (\n ) : ''\n )) \n }\n
\n\n
\n { results.map((imageCard, i) => ( \n \n )) \n }\n
\n\n
\n\n\n\n
\n\n {/* */} \n\n \n\n
\n\n
\n \n
\n\n \n\n
\n )}\n\n if(pswdSelector==1){\n\n return()\n }\n\n}\n\nexport default Home;\n","import ImageGallery from 'react-image-gallery';\nimport React, {useRef, useState} from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { useHistory } from \"react-router-dom\";\nimport './image-gallery.css'\nimport './User.css'\n\nimport {EmailShareButton,FacebookShareButton,PinterestShareButton,TwitterShareButton} from \"react-share\";\nimport {EmailIcon,FacebookIcon,PinterestIcon,TwitterIcon} from \"react-share\";\n\n\n\n\n\n\nfunction MyGallery(props) {\n\n /*\n const images = [\n {\n original: props.galleryURL.image1,\n thumbnail: props.galleryURL.image1,\n description: 'Road through the hills: oil on canvas, 50x70',\n\n },\n {\n original: props.galleryURL.image2,\n thumbnail: props.galleryURL.image2,\n description: 'Oil on canvas 20X20',\n \n },\n {\n original: props.galleryURL.image3,\n thumbnail: props.galleryURL.image3,\n description: 'Oil on canvas 30X30',\n \n },\n\n {\n original: 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/1200px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg',\n thumbnail: 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/1200px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg',\n description: 'Oil on canvas 30X30',\n \n },\n\n];\n*/\n\n\n const images = []\n const descriptions = ['']\n const currentImage = ['']\n\n const imgGalleryRef = useRef();\n const [index, indexSet] = useState(0)\n\n //const [description, descriptionSet] = useState('')\n \n \n \n for (const [key, value] of Object.entries(props.galleryURL)) {\n\n images.push(value);\n descriptions[key] = value.description\n currentImage[key] = value.original\n }\n \n \n\n const indexUpdate = () => {\n\n if(imgGalleryRef.current){\n indexSet(imgGalleryRef.current.state.currentIndex) \n }\n\n }\n\n const history = useHistory();\n \n const handleGallerySettings = () => {\n \n let path = `/SettingsPortfolio`; \n history.push(path);\n };\n \n\n return (\n\n
\n\n
\n \n\n imgGalleryRef.current = i} onSlide={indexUpdate} description = {false}/>\n\n
\n\n

title:

\n\n

{descriptions[index].split(';')[0]} -

\n\n

{descriptions[index].split(';')[3]} inch,

\n\n

{descriptions[index].split(';')[2]} -

\n\n

author:

\n\n

{descriptions[index].split(';')[1]}

\n\n
\n\n
\n\n \n \n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n\n \n \n \n \n\n
\n \n\n
\n\n\n )\n\n \n}\n\nexport default MyGallery","import React from 'react';\nimport ToggleButton from '@material-ui/lab/ToggleButton';\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport './User.css';\n\n\n\nexport default function ProfileBar(props) {\n\n\n //const [formats, setFormats] = useState(() => ['portfolio']);\n\n //const handleFormat = (event, newFormats) => {\n //setFormats(newFormats);\n //};\n\n const StyledToggleButton = withStyles((theme) => ({\n \n\n\n root: {\n\n \"&.Mui-selected\": {\n color: 'black'\n },\n\n border: '0.5px',\n borderStyle: 'solid',\n borderColor: 'grey',\n marginTop: '5px',\n color: 'grey',\n height: 48, \n fontWeight: '400',\n \n },\n\n}))(ToggleButton);\n\n\nif(props.userType == 'artist'){\n\n return (\n \n\n \n PORTFOLIO\n \n \n PROFILE\n \n \n COMMISSIONS\n \n \n \n );\n}\n\n\nif(props.userType == 'commissioner'){\n\n return (\n \n\n \n COLLECTION\n \n \n PROFILE\n \n \n \n \n );\n}\n\n\n\n\n\n}\n\n\n","import React, {useState, useEffect} from 'react';\nimport { Button, Input, TextField } from '@material-ui/core';\nimport './User.css'\nimport axios from 'axios';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID} from '../constants/apiConstants'\nimport { useParams} from \"react-router-dom\";\nimport freeForm from './Free_form.jpeg';\nimport portrait from './Portrait.jpeg';\nimport model from './Model.jpeg';\nimport fullCustom from './Cappella-sistina-volta.jpeg';\n\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\n\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { useHistory } from \"react-router-dom\";\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Modal from '@material-ui/core/Modal';\nimport AlertComponent from './AlertComponent';\n\n\n\n\nfunction UserCommissions(props) {\n\n const [modalOpen, modalOpenSet] = useState(false)\n const [media, mediaSet] = useState(null)\n const [matter, matterSet] = useState(\"\")\n const [height, heightSet] = useState(0)\n const [width, widthSet] = useState(0)\n const [message, messageSet] = useState(\"\")\n const [price, priceSet] = useState(0)\n const [priceSelected, priceSelectedSet] = useState(0)\n\n const [email, emailSet] = useState('')\n const [inquirername, inquirernameSet] = useState('')\n\n const [commissiontype, commissiontypeSet] = useState('')\n const [mediaList, mediaListSet] = useState([])\n const [matterList, matterListSet] = useState([])\n const [priceList, priceListSet] = useState([])\n\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n \n\n let { user } = useParams();\n\n const requestConversation = () => { \n\n if(!token){\n\n updateErrorMessage(\"Please login first or create an account\");\n severityUpdate(\"error\"); \n\n }\n \n if(token){\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n axios({\n method: \"post\",\n url: BASE_URL + \"commissions/request\",\n data: { artist: user,\n commission_type: commissiontype,\n commission_message: message,\n commission_matter: matter,\n commission_media: media,\n commission_width: width,\n commission_height: height,\n commission_price: price },\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n if(res.status === 201){\n\n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")}\n \n \n \n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"An error occured. Please try again. If the problem persists please contact the support team\");\n severityUpdate(\"warning\"); \n \n });\n\n\n\n\n axios({\n method: \"post\",\n url: BASE_URL + \"chat/invite\",\n \n data: { user_two: user,\n },\n\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n \n })\n .catch(function (error) {\n \n \n });\n\n \n\n }\n }\n\n const handleInquiry = () => { \n\n axios({\n method: \"post\",\n url: BASE_URL + \"commissions/inquiry\",\n data: { artist: user,\n commission_type: commissiontype,\n commission_message: message,\n commission_matter: matter,\n commission_media: media,\n commission_width: width,\n commission_height: height,\n commission_price: price,\n sender: inquirername,\n sender_email: email },\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n if(res.status === 201){\n\n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")}\n \n \n \n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"An error occured. Please try again. If the problem persists please contact the support team\");\n severityUpdate(\"warning\"); \n \n });\n\n\n \n\n \n }\n\n useEffect(() => {\n \n \n if(props.artistInformation.medium){\n \n var content = []\n content = props.artistInformation.medium.split(';')\n content.pop()\n mediaListSet(content)\n }\n\n if(props.artistInformation.matter){\n \n var content = []\n content = props.artistInformation.matter.split(';')\n content.pop()\n matterListSet(content)\n }\n\n if(props.artistInformation.price){\n \n var content = []\n content = props.artistInformation.price.split(';')\n content.pop()\n priceListSet(content)\n\n \n }\n\n \n\n\n \n },[props])\n\n\n\n const handleFreeForm = () => { \n\n commissiontypeSet('Free form')\n modalOpenSet(true);\n priceSet(0)\n priceSelectedSet(0)\n heightSet(0)\n widthSet(0)\n mediaSet('')\n matterSet('')\n } \n const handlePortrait = () => { \n\n commissiontypeSet('Portrait')\n modalOpenSet(true);\n priceSet(0)\n priceSelectedSet(0)\n heightSet(0)\n widthSet(0)\n mediaSet('')\n matterSet('')\n } \n const handleModel = () => { \n\n commissiontypeSet('Model')\n modalOpenSet(true);\n priceSet(0)\n priceSelectedSet(0)\n heightSet(0)\n widthSet(0)\n mediaSet('')\n matterSet('')\n } \n const handleFullCustom = () => { \n\n commissiontypeSet('Full Custom')\n modalOpenSet(true);\n priceSet(0)\n priceSelectedSet(0)\n heightSet(0)\n widthSet(0)\n mediaSet('')\n matterSet('')\n } \n\n const handleModalClose = () => {\n modalOpenSet(false);\n };\n\n const handleMediaChange = (e) => {\n mediaSet(e.target.value);\n\n var index = 0;\n index = mediaList.indexOf(e.target.value);\n priceSelectedSet(priceList[index])\n var priceTemp = parseInt(priceList[index])\n priceSet(priceTemp*(parseInt(width)+parseInt(height)))\n \n\n };\n\n const handleMatterChange = (e) => {\n matterSet(e.target.value);\n\n };\n\n const handleChangeHeight = (e, value) => {\n heightSet(e.target.value);\n priceSet(priceSelected * (parseInt(e.target.value) + parseInt(width)))\n };\n\n const handleChangeWidth = (e, value) => {\n widthSet(e.target.value);\n priceSet(priceSelected * (parseInt(e.target.value) + parseInt(height)))\n };\n\n const handleChangeEmail = (e, value) => {\n \n emailSet(e.target.value)\n };\n\n const handleChangeName = (e, value) => {\n \n inquirernameSet(e.target.value)\n };\n\n const handleChangeMessage = (e, value) => {\n messageSet(e.target.value);\n };\n\n const history = useHistory();\n const handleCommissionSettings = () => {\n \n let path = `/SettingsCommission`; \n history.push(path);\n };\n\n \n\n\n const body = (\n
\n\n
\n\n
\n\n

{commissiontype}

\n\n

Please fill each entry of this form before submitting your commission request

\n\n
\n\n
\n\n

MEDIA

\n\n \n {mediaList.map((item) => (\n \n {item}\n \n ))}\n \n\n

MATTER

\n\n \n {matterList.map((item) => (\n \n {item}\n \n ))}\n \n\n \n\n \n \n

Height

\n
\n \n

inches

\n
\n

Width

\n
\n \n

inches

\n
\n\n
\n\n
\n\n
price: {price} $
\n\n
\n \n

Write a brief message to the Artist explaining the commission you want

\n\n

e-mail

\n
\n \n

your name

\n
\n \n

MESSAGE

\n \n \n { token ? \n\n
\n :\n
\n }\n\n \n
\n \n\n
\n
\n );\n\n\n return (\n\n
\n\n \n
\n\n

Select the option that better describes the commission you want and see your price

\n \n \n
\n \n
\n

Free form

\n

You choose dimensions, support, and matter, the artist will create something for you

\n
\n
\n\n
\n \n
\n

portrait

\n

Commission a portrait for you or the ones you love!

\n
\n
\n\n
\n \n
\n

model

\n

Choose one of the artist's portfolio pictures as a model and ask for the same or similar commission with minor changes (colors, dimensions...)

\n
\n
\n\n
\n \n
\n

full custom

\n

This is your chance to ask for a completely custom artwork!

\n
\n
\n\n \n {body}\n \n\n \n \n \n\n
\n );\n}\n\nexport default UserCommissions;","import React from \"react\";\nimport ReactQuill from 'react-quill';\nimport './UserProfileQuill.css';\n\nfunction SettingsProfile(props) {\n\n\n \n\n\n\n\n\n\n const setModules = {\n toolbar: [\n [ { 'font': [] }],\n [{size: []}],\n [{align: []}],\n [{color: []}],\n ['bold', 'italic', 'underline', 'strike', 'blockquote',],\n [{'list': 'ordered'}, {'list': 'bullet'}, \n {'indent': '-1'}, {'indent': '+1'}],\n ['link', 'image'],\n ['clean']\n ],\n clipboard: {\n // toggle to add extra line breaks when pasting HTML:\n matchVisual: false,\n }\n}\n\n\n\n return (\n\n \t
\n\n \n\n\n\n
\n\n );\n}\n\nexport default SettingsProfile;","import React, {useState} from 'react';\nimport './User.css'\nimport SettingsProfile from './SettingsProfile'\nimport axios from 'axios';\nimport { Button } from '@material-ui/core';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport ReactQuill from 'react-quill';\nimport AlertComponent from './AlertComponent';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID} from '../constants/apiConstants'\nimport { useParams} from \"react-router-dom\";\n\n\n\n\nfunction UserProfile(props) {\n\n \n\n let { user } = useParams();\n\n const userID = localStorage.getItem(USER_ID); \n\n const owner = userID==props.profileInformation.user_id\n\n\n const [displayBioSet, setDisplayBioSet] = useState(false);\n const [displayArtSet, setDisplayArtSet] = useState(false);\n\n const [biography, setBiography] = useState(props.profileInformation.biography);\n const [art, setArt] = useState(props.profileInformation.art);\n\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n\n\n const handleSettingsBio = () => {\n\n setDisplayBioSet(!displayBioSet)\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n if(displayBioSet){\n\n\n axios({\n method: \"post\",\n url: BASE_URL + \"users/update/biography\",\n data: {\"biography\": biography,\n \"art\": art},\n headers: {\n\n 'Authorization': 'Bearer '+ token, \n 'Content-Type': 'application/json'\n\n }\n })\n .then(function (response) {\n if(response.status === 200){\n\n updateErrorMessage(\"Information updated succesfully. Refresh to see changes\");\n severityUpdate(\"success\"); \n \n } else{\n\n \n }\n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"warning\"); \n \n \n }); \n\n }\n\n\n }\n const handleSettingsArt = () => {\n\n setDisplayArtSet(!displayArtSet)\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n if(displayArtSet){\n\n\n axios({\n method: \"post\",\n url: BASE_URL + \"users/update/biography\",\n data: {\"biography\": biography,\n \"art\": art},\n headers: {\n\n 'Authorization': 'Bearer '+ token, \n 'Content-Type': 'application/json'\n\n }\n })\n .then(function (response) {\n if(response.status === 200){\n\n //window.location.reload(false)\n updateErrorMessage(\"Information updated succesfully. Refresh to see changes\");\n severityUpdate(\"success\"); \n\n \n } else{\n\n \n }\n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"warning\"); \n \n \n }); \n\n }\n }\n\n \n\n return (\n\n\n
\n\n \n
\n\n BIOGRAPHY \n\n
\n \n \n
\n\n
\n\n\n
\n\n
\n \n\n \n
\n\n
\n \n
\n\n
\n\n\n\n
\n\n ART\n\n
\n \n \n
\n\n
\n\n
\n\n
\n \n
\n\n\n
\n \n
\n\n\n
\n\n \n\n
\n );\n}\n\nexport default UserProfile;","import React from 'react';\nimport './User.css';\nimport useFitText from \"use-fit-text\";\nimport IconButton from '@material-ui/core/IconButton';\nimport FacebookIcon from '@material-ui/icons/Facebook';\nimport InstagramIcon from '@material-ui/icons/Instagram';\nimport LanguageIcon from '@material-ui/icons/Language';\nimport Behance from './behance.png';\nimport { useHistory } from \"react-router-dom\";\n\nimport Link from '@material-ui/core/Link';\n\n\n\n\n\nexport default function UserHeader(props) {\n\n\n const handleInstagram = () => {\n\n var url = props.profileInformation.instagram\n\n if (!props.profileInformation.instagram.match(/^https?:\\/\\//i)) {\n url = 'http://' + props.profileInformation.instagram;\n }\n\n window.open(url, '_blank');\n }\n\n const handleFacebook = () => {\n \n var url = props.profileInformation.facebook\n\n if (!props.profileInformation.facebook.match(/^https?:\\/\\//i)) {\n url = 'http://' + props.profileInformation.facebook;\n }\n window.open(url, '_blank');\n }\n\n const handleWebsite = () => {\n\n var url = props.profileInformation.website\n\n if (!props.profileInformation.website.match(/^https?:\\/\\//i)) {\n url = 'http://' + props.profileInformation.website;\n }\n window.open(url, '_blank');\n }\n\n const handleBehance = () => {\n\n var url = props.profileInformation.behance\n\n if (!props.profileInformation.behance.match(/^https?:\\/\\//i)) {\n url = 'http://' + props.profileInformation.behance;\n }\n window.open(url, '_blank');\n }\n\n const history = useHistory();\n\n const goToProfileSettings = () => {\n\n if(props.owner){\n \n history.push('/settingspersonal')\n\n }\n }\n\n\n return (\n \n\n
\n\n \n\n
\n\n
\n\n
\n\n \"profile\n
\n\n

{props.userType == 'artist' ? 'ARTIST' : 'COLLECTOR'}

\n\n
\n\n

{props.profileInformation.first_name} {props.profileInformation.last_name}

\n\n
\n\n\n
\n \n
\n

{props.profileInformation.statements}

\n
\n\n
\n\n \n \n \n \n \n
\n\n
\n\n \n\n
\n );\n}\n","import React, {useState, useEffect} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\n\n\n\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\nimport FlightIcon from '@material-ui/icons/Flight';\nimport ColorLensIcon from '@material-ui/icons/ColorLens';\nimport CropDinIcon from '@material-ui/icons/CropDin';\nimport SchoolIcon from '@material-ui/icons/School';\nimport PublicIcon from '@material-ui/icons/Public';\nimport StoreIcon from '@material-ui/icons/Store';\n\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { useHistory } from \"react-router-dom\";\n\nimport './User.css'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper,\n marginLeft: '20px',\n marginTop: '50px',\n\n \n \n },\n}));\n\n\n\nexport default function SimpleList(props) {\n\n const[mediums, mediumsSet] = useState([])\n\n const[matters, mattersSet] = useState([])\n\n\n const classes = useStyles();\n\n \n\n useEffect(() => {\n \n \n if(props.artistInformation.medium){\n \n var content = []\n content = props.artistInformation.medium.split(';')\n content.pop()\n mediumsSet(content)\n }\n\n if(props.artistInformation.matter){\n \n var content = []\n content = props.artistInformation.matter.split(';')\n content.pop()\n mattersSet(content)\n }\n\n\n \n },[props])\n\n\n const history = useHistory();\n const handleCommissionSettings = () => {\n \n let path = `/SettingsCommission`; \n history.push(path);\n };\n\n\n return (\n \n
\n\n\n \n
\n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n\n
\n \n \n {props.profileInformation.city + ', '}   \n { props.profileInformation.state + ', '} \n {props.profileInformation.country }\n\n
\n
\n\n
\n \n
\n );\n}\n","import React, {useState} from 'react';\nimport MyGallery from './UserGallery'\nimport ProfileBar from './UserBar'\nimport UserCommissions from './UserCommissions'\nimport UserProfile from './UserProfile'\nimport axios from 'axios';\nimport { useParams, useHistory} from \"react-router-dom\";\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_TYPE, HOME} from '../constants/apiConstants'\nimport {USER_ID} from '../constants/apiConstants'\nimport UserHeader from './UserHeader'\nimport SideLeft from './UserSideLeft'\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport AlertComponent from './AlertComponent';\nimport { Button, TextField } from '@material-ui/core';\n\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\nimport Modal from '@material-ui/core/Modal';\nimport emptyGallery from './white_canvas_written.png';\n\nimport {EmailShareButton,FacebookShareButton,PinterestShareButton,TwitterShareButton} from \"react-share\";\nimport {EmailIcon,FacebookIcon,PinterestIcon,TwitterIcon} from \"react-share\";\n\n\n\nimport './User.css'\n\n\n\n\n\n\n\nfunction User(props) {\n\n\n\n let { user } = useParams();\n \n\n\n\n const [barSelector, changeSelection] = useState(false);\n const [profileInfo, profileInfoUpdate] = useState([]);\n const [artistInfo, artistInfoUpdate] = useState([]);\n const [portfolioURLs, portfolioURLsUpdate] = useState({});\n const [selection, setSelection] = useState(() => ['portfolio']);\n\n const [modalOpen, modalOpenSet] = useState(false)\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n const [collectorMessage, collectorMessageSet] = useState('')\n \n\n const [user_type, user_typeSet] = useState('artist');\n \n const [followFlag,followFlagSet] = useState({});\n\n const userID = localStorage.getItem(USER_ID);\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n\n const handleSelection = (event, newFormats) => {\n setSelection(newFormats);\n };\n \n \n \n\n\n\n\n React.useEffect(() => {\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n\n\n axios.get(BASE_URL + 'users/get/'+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n \n profileInfoUpdate(res.data)\n user_typeSet(res.data.user_type)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n\n axios.get(BASE_URL + 'users/get/artist/'+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n \n artistInfoUpdate(res.data)\n \n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n\n axios.get(BASE_URL + 'users/image/portfolio/'+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n \n \n portfolioURLsUpdate(res.data)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n if(token){\n\n axios.get(BASE_URL + 'follows/following?leader='+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n \n \n followFlagSet(res.data)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n }\n\n\n\n\n //#########################################################\n \n /* const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n const requestOne = axios.get(BASE_URL + 'users/get/'+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n });\n const requestTwo = axios.get(BASE_URL + 'users/image/portfolio/'+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n });\n\n const requestFollow = axios.get(BASE_URL + 'follows/following?leader='+user, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n });\n\n\n axios.all([requestOne, requestTwo, requestFollow])\n\n .then(\n axios.spread((...responses) => {\n const responseOne = responses[0];\n profileInfoUpdate(responseOne.data)\n user_typeSet(responseOne.data.user_type)\n \n const responseTwo = responses[1];\n portfolioURLsUpdate(responseTwo.data)\n\n const responseFollow = responses[2];\n followFlagSet(responseFollow.data)\n console.log(responseFollow)\n \n \n //console.log(responseOne.data, responseTwo);\n })\n )\n .catch(errors => {\n // react on errors.\n console.error(errors);\n \n \n }); */\n \n\n }, []);\n \n\n \n const history = useHistory();\n\n const redirectToError = () => {\n let path = `./error`; \n history.push(path);\n }\n\n const handleFollow = () => {\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n axios({\n method: \"post\",\n url: BASE_URL + \"follows/request\",\n data: { leader: user,\n notification_type: 'FOLLOW'},\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n console.log(res.data);\n window.location.reload(false)\n })\n .catch(err => console.log(err))\n }\n\n const handleModalClose = () => {\n modalOpenSet(false);\n };\n\n const handleModalOpen = () => { \n modalOpenSet(true);\n } \n\n const sendCollectorMessage = () => { \n\n const date = new Date()\n\n axios({\n method: \"post\",\n url: BASE_URL + \"chat/engage/commissioner\",\n \n data: { commissioner: user,\n message: collectorMessage,\n timestamp: date\n },\n\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n if(res.status === 201){\n\n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")}\n\n \n })\n .catch(function (error) {\n\n updateErrorMessage(\"Something went wronf. Try again or contact us!\");\n severityUpdate(\"warning\")\n\n \n });\n } \n\n const handleCollectorMessage = (e, value) => {\n collectorMessageSet(e.target.value);\n };\n\n\n const body = (\n\n
\n\n
\n\n
\n \n

Write a brief message

\n \n
\n \n
\n \n\n
\n
\n );\n\n\n\n \n let content;\n\n \n if (selection == 'portfolio') {\n content =
;\n } \n\n if (selection == 'portfolio' & user_type == 'commissioner' & !portfolioURLs[0]) {\n content =
;\n } \n\n if (selection == 'profile') {\n content = ;\n } \n if (selection == 'commissions') {\n \n content = ;\n }\n\n return (\n\n \n\n
\n\n\n
\n \n \n\n \n\n
\n }\n disabled = {!token}\n >\n \n { token ? followFlag.follows : \"follow\" }\n\n \n\n }\n onClick = {handleModalOpen}\n disabled={!token}\n >\n Message\n \n\n
\n\n \n\n
\n\t\t \n\n
\n\n\t\t\t \n\t\t\t
\n \n \n \n {content} \n\n\n\n
\n\n \n {body}\n \n\n\n
\n );\n}\n\nexport default User;\n","import React, { useState, useCallback, useRef, useEffect } from \"react\";\nimport ReactCrop from \"react-image-crop\";\nimport axios from 'axios';\nimport { Button } from '@material-ui/core';\nimport {BASE_URL, ACCESS_TOKEN_NAME} from '../constants/apiConstants'\nimport \"./ReactCrop.css\";\n\n// Increase pixel density for crop preview quality on retina screens.\nconst pixelRatio = window.devicePixelRatio || 1;\n\n// We resize the canvas down when saving on retina devices otherwise the image\n// will be double or triple the preview size.\nfunction getResizedCanvas(canvas, newWidth, newHeight) {\n const tmpCanvas = document.createElement(\"canvas\");\n tmpCanvas.width = newWidth;\n tmpCanvas.height = newHeight;\n\n const ctx = tmpCanvas.getContext(\"2d\");\n ctx.drawImage(\n canvas,\n 0,\n 0,\n canvas.width,\n canvas.height,\n 0,\n 0,\n newWidth,\n newHeight\n );\n\n return tmpCanvas;\n}\n\nfunction generateDownload(previewCanvas, crop, props) {\n if (!crop || !previewCanvas) {\n return;\n }\n\n const canvas = getResizedCanvas(previewCanvas, crop.width, crop.height);\n \n \n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n \n canvas.toBlob(\n (blob) => {\n\n let form_data = new FormData();\n form_data.append('image', blob);\n console.log(blob)\n\n axios({\n method: \"post\",\n url: BASE_URL + \"users/image/profile\",\n data: form_data,\n headers: {\n\n 'Authorization': 'Bearer '+ token, \n 'Content-Type': 'application/json'\n\n }\n })\n .then(function (response) {\n \n\n window.location.reload(false)\n console.log(response)\n \n \n \n })\n .catch(function (error) {\n \n if(error.response.status===415){\n \n props.errorMessage('file extension not supported')\n props.severityUpdate('warning')\n }\n \n }); \n },\n \"image/png\",\n 1\n ); \n\n\n}\n\nexport default function CutImage(props) {\n const [upImg, setUpImg] = useState();\n const imgRef = useRef(null);\n const previewCanvasRef = useRef(null);\n const [crop, setCrop] = useState({ unit: \"%\", width: 30, aspect: 10 / 10 });\n const [completedCrop, setCompletedCrop] = useState(null);\n\n const onSelectFile = (e) => {\n if (e.target.files && e.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => setUpImg(reader.result));\n reader.readAsDataURL(e.target.files[0]);\n }\n };\n\n const onLoad = useCallback((img) => {\n imgRef.current = img;\n }, []);\n\n useEffect(() => {\n if (!completedCrop || !previewCanvasRef.current || !imgRef.current) {\n return;\n }\n\n const image = imgRef.current;\n const canvas = previewCanvasRef.current;\n const crop = completedCrop;\n\n const scaleX = image.naturalWidth / image.width;\n const scaleY = image.naturalHeight / image.height;\n const ctx = canvas.getContext(\"2d\");\n\n canvas.width = crop.width * pixelRatio;\n canvas.height = crop.height * pixelRatio;\n\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n ctx.imageSmoothingQuality = \"high\";\n\n ctx.drawImage(\n image,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width,\n crop.height\n );\n }, [completedCrop]);\n\n return (\n
\n\n
\n \n\n \n\n \n\n {\n generateDownload(previewCanvasRef.current, completedCrop);\n\n }\n }\n >\n upload picture\n \n\n
\n\n
\n\n setCrop(c)}\n onComplete={(c) => setCompletedCrop(c)}\n />\n
\n\n \n
\n\n
\n \n \n
\n );\n}\n","import React, {useState} from 'react';\nimport {TextField, Input, Button } from '@material-ui/core';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport countries from \"i18n-iso-countries\";\nimport enLocale from \"i18n-iso-countries/langs/en.json\";\n\nimport CutImage from './SettingsPersonalImageCut.js'\nimport axios from 'axios';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID} from '../constants/apiConstants'\nimport AlertComponent from './AlertComponent';\nimport userIcon from './user_icon.png';\nimport './Settings.css'\n\n\nfunction SettingsPersonal(props) {\n\n\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n\n const [profileInfo, profileInfoUpdate] = useState({});\n\n const [info , setInfo] = useState({\n\n firstName : \"\",\n lastName : \"\",\n statement : \"\",\n dob : \"\",\n city : \"\",\n state: \"\",\n country: \"\",\n education : \"\",\n gallery : \"\",\n facebook : \"\",\n website : \"\",\n instagram: \"\",\n behance: \"\"\n \n })\n\n countries.registerLocale(enLocale);\n const countryObj = countries.getNames(\"en\", { select: \"official\" });\n\n const countryArr = Object.entries(countryObj).map(([key, value]) => {\n return value\n \n });\n\n const USstates = [' ',\n 'Alabama',\n 'Alaska',\n 'Arizona',\n 'Arkansas',\n 'California',\n 'Colorado',\n 'Connecticut',\n 'Delaware',\n 'Florida',\n 'Georgia',\n 'Hawaii',\n 'Idaho',\n 'Illinois',\n 'Indiana',\n 'Iowa',\n 'Kansas',\n 'Kentucky',\n 'Louisiana',\n 'Maine',\n 'Maryland',\n 'Massachusetts',\n 'Michigan',\n 'Minnesota',\n 'Mississippi',\n 'Missouri',\n 'Montana',\n 'Nebraska',\n 'Nevada',\n 'New Hampshire',\n 'New Jersey',\n 'New Mexico',\n 'New York',\n 'North Carolina',\n 'North Dakota',\n 'Ohio',\n 'Oklahoma',\n 'Oregon',\n 'Pennsylvania',\n 'Rhode Island',\n 'South Carolina',\n 'South Dakota',\n 'Tennessee',\n 'Texas',\n 'Utah',\n 'Vermont',\n 'Virginia',\n 'Washington',\n 'West Virginia',\n 'Wisconsin',\n 'Wyoming']\n\n \n\n\n\n\nReact.useEffect(() => {\n \n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const userID = localStorage.getItem(USER_ID);\n \n\n axios.get(BASE_URL + 'users/get/'+userID, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n .then((res) => {\n \n profileInfoUpdate(res.data)\n\n setInfo(prevState => ({\n ...prevState,\n firstName : res.data.first_name,\n lastName : res.data.last_name,\n statement : res.data.statements,\n dob : res.data.date_of_birth,\n city : res.data.city,\n state: res.data.state,\n country: res.data.country,\n education : res.data.institution,\n gallery : res.data.gallery,\n facebook : res.data.facebook,\n website : res.data.website,\n instagram: res.data.instagram,\n behance: res.data.behance,\n }))\n \n\n \n })\n .catch((error) => {\n console.error(error)\n })\n\n \n \n\n }, []);\n\n\n\n\n\n const handleChange = (e) => {\n\n console.log(e.target)\n const {id , value} = e.target \n setInfo(prevState => ({\n ...prevState,\n [id] : value\n }))\n }\n\n const handleCountryChange = (e) => {\n\n\n console.log(e.target)\n \n setInfo(prevState => ({\n ...prevState,\n 'country' : e.target.value\n }))\n\n }\n\n const handleStateChange = (e) => {\n\n\n console.log(e.target)\n \n setInfo(prevState => ({\n ...prevState,\n 'state' : e.target.value\n }))\n\n }\n\n\n\n\nconst handleSubmitClick = (e) => {\n\n e.preventDefault();\n const payloadInfo={\n\n\n \"first_name\":info.firstName,\n \"last_name\":info.lastName,\n \"date_of_birth\":info.dob,\n \"city\":info.city, \n \"state\":info.state,\n \"gallery\":info.gallery,\n \"country\":info.country,\n \"institution\": info.education, \n \"statements\": info.statement,\n \"facebook\" : info.facebook,\n \"website\" : info.website,\n \"instagram\": info.instagram,\n \"behance\": info.behance,\n\n }\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n console.log(payloadInfo)\n\n axios({\n method: \"post\",\n url: BASE_URL + \"users/update/profile\",\n data: payloadInfo,\n headers: {\n\n 'Authorization': 'Bearer '+ token, \n 'Content-Type': 'application/json'\n\n }\n })\n .then(function (response) {\n if(response.status === 200){\n\n updateErrorMessage(\"Information updated succesfully\");\n severityUpdate(\"success\");\n \n \n } else{\n\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"success\"); \n }\n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"warning\"); \n \n }); \n \n\n\n \n \n }\n\n\n \n\n\n \n\n return (\n\n\n
\n\n\n\n

Settings

\n

PROFILE PICTURE

\n
\n\n \n\n
\t \n\n\t\t\t \n \n \"profile\n \n \n\n\n
\n \n \t \n\n
\n\t\t\t \n
\n\n \n

PERSONAL INFORMATION

\n
\n\n\n\n {/* ######### FORM ########### */}\n\n
\n\n
\n \t\t \t

FIRST NAME:

\n \t \t \t\n\n
\n\n
\n

LAST NAME:

\n \n
\n\n
\n

YOUR MOTTO:

\n \n
\n\n\n
\n \t\t \t

DATE OF BIRTH:

\n \t \t\n
\n\n\n\n
\n \t\t \t

CITY:

\n \t \t\n
\n\n
\n

STATE:

\n \n \n \n { !!countryArr?.length &&\n USstates.map((option) => (\n \n {option}\n \n ))}\n \n
\n\n
\n

COUNTRY:

\n \n\n \n { !!countryArr?.length &&\n countryArr.map((option) => (\n \n {option}\n \n ))}\n \n
\n\n\n
\n \t\t \t

EDUCATION:

\n \t \t \n
\n\n\n
\n \t\t \t

GALLERY:

\n \t \t \n
\n\n
\n\n
\n \n
\n\n

LINKS AND SOCIAL MEDIA

\n
\n\n
\n

WEBSITE:

\n \n
\n\n
\n

FACEBOOK PROFILE:

\n \n
\n\n
\n

INSTAGRAM PROFILE:

\n \n
\n\n
\n

BEHANCE PROFILE:

\n \n
\n\n\n
\n \n
\n\n\n\n \n\n\n\n\n\n\n
\n\n\n )\n}\n\nexport default SettingsPersonal;\n","import React, {useState, useEffect} from 'react';\nimport {TextField, Button } from '@material-ui/core';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\n\nfunction SettingPortfolioEntry(props) {\n\n\tconst imageN = 'image' + props.index\n\tconst image_N = 'image_' + props.index\n\n\t//const [title, titleSet] = useState('') \n\t//const [matter, matterSet] = useState('') \n\t//const [dimension_one, dimension_oneSet] = useState('')\n\t//const [dimension_two, dimension_twoSet] = useState('')\n\t//const [tags, tagsSet] = useState('')\n \n\tconst [entries, entriesSet] = useState({title:'', author: '', matter: '', dimension_one: '', dimension_two:'', tags:''})\n \n const [load, loadSet] = useState(true)\n\n\tconst handleTags = (e) => {\n\n const {id , value} = e.target \n \n\n entriesSet(prevState => ({\n ...prevState,\n [id] : value\n }))\n \t\n\t}\n\n\tconst onImageLoad = (e) => {\n\n loadSet(false)\n \t\n\t}\n\n\tuseEffect(() => {\n \n if(props.URLdescription.split(';')[0]){\n\n \tvar dim1 = parseInt(props.URLdescription.split(';')[3].split('x')[0])\n \tvar dim2 = parseInt(props.URLdescription.split(';')[3].split('x')[1])\n\n\t\t\tentriesSet(prevState => ({\n\t ...prevState,\n\t 'title' : props.URLdescription.split(';')[0],\n\t 'author' : props.URLdescription.split(';')[1],\n\t 'matter' : props.URLdescription.split(';')[2],\n 'dimension_one': dim1,\n 'dimension_two': dim2,\n\t 'tags' : props.URLdescription.split(';')[4],\n\t }))\n\t }\n\n\t},[props.URLdescription])\n\n\n\tuseEffect(() => {\n\n\t\tloadSet(true)\n\n\t},[props.URLimage])\n\n\n\n\tuseEffect(() => {\n\n const identifier = props.descriptId\n\t\tprops.setImgObj(prevState => ({\n ...prevState,\n [identifier] : entries.title + ';'+ entries.author + ';' + entries.matter + ';'+ entries.dimension_one + ' x ' +entries.dimension_two + ';' + entries.tags\n }))\n\n console.log('entries is:' + entries.title)\n\n\n\n\t}, [entries])\n\n\n\n\n\treturn(\n\n\t\t
\n\n\n\n\n
\n\t\t \t \n\t\t \t\n\t\t
\n\n\t\t
\n\t\t \t
\n\t\t\t \n\n\n\t\t\t \t\n\n\t\t\t \t \n\n\t\t\t \t \n\t\t\t \t\n\n\n\t\t\t \t
\n\n\t\t\t \t
\n\n
\n\n
\n\t\t\t\t \t \n\t\t\t\t \t
\n\t\t\t\t \t
\n\t\t\t\t \t \n
\n
\n\n\t\t\t \t
\n\n
\n\t\t\t \t\t\n\t\t\t
\n\t\t\t

size:

\n\t\t\t
\n\t\t\t \t\n\t\t\t
\n\t\t\t

X

\n\t\t\t
\n\t\t\t \t\n
\n

inches

\n\t\t\t
\n\n\t\t\t \n\n\t\t
\n\t\t
\n\t \t
\n\n\t\t)\n}\n\n\n\nexport default SettingPortfolioEntry;","import React, {useState, useEffect} from 'react';\nimport {TextField, Button } from '@material-ui/core';\nimport axios from 'axios';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport img_default from \"./cretto_burri.jpg\";\nimport './Settings.css'\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, USER_TYPE} from '../constants/apiConstants'\n\nimport PortfolioEntry from './SettingPortfolioEntry'\nimport AlertComponent from './AlertComponent';\n\nfunction SettingsPortfolio(props) {\n\nconst [errorMessage, updateErrorMessage] = useState(null);\nconst [severity, severityUpdate] = useState(\"success\");\nconst [refresh, refreshSet] = useState([]);\n\nconst [index, indexSet] = useState([1,2,3,4,5,6,7,8,9,10])\n\nconst [title, titleSet] = useState('') \nconst [matter, matterSet] = useState('') \nconst [dimension_one, dimension_oneSet] = useState()\nconst [dimension_two, dimension_twoSet] = useState()\nconst [tags, tagsSet] = useState()\n\nconst [loading, loadingSet] = useState(true)\n\nconst userType = localStorage.getItem(USER_TYPE);\n\n\nconst [imgURLnew, imgURLnewSet] = useState( () =>{\n \n const index2 = [1,2,3,4,5,6,7,8,9,10]\n const output = {}\n index2.map((currentIndex, i) => (\n\n \toutput['URLimage'+currentIndex] = img_default\n\n\t\t\t \n\t\t\t ))\n return output\n})\n\n//console.log(imgURLnew) \n\t\nconst [imgURL, imgURLSet] = useState({\n\n\t URLimage1 : img_default,\n URLimage2 : img_default,\n URLimage3 : img_default,\n URLimage4 : img_default,\n URLimage5 : img_default,\n URLimage6 : img_default,\n URLimage7 : img_default,\n URLimage8 : img_default,\n URLimage9 : img_default,\n URLimage10 : img_default,\n URLdescription1: '',\n URLdescription2: '',\n\t URLdescription3: '',\n\t\tURLdescription4: '',\n\t\tURLdescription5: '',\n\t\tURLdescription6: '',\n\t\tURLdescription7: '',\n\t\tURLdescription8: '',\n\t\tURLdescription9: '',\n\t\tURLdescription10: '',})\n\n\n\nconst [imgObj , setImgObj] = useState({\n image1 : null,\n image2 : null,\n image3 : null,\n image4 : null,\n image5 : null,\n image6 : null,\n image7 : null,\n image8 : null,\n image9 : null,\n image10 : null,\n description1 : \"\",\n description2 : \"\",\n description3 : \"\",\n description4 : \"\",\n description5 : \"\",\n description6 : \"\",\n description7 : \"\",\n description8 : \"\",\n description9 : \"\",\n description10 : \"\",\n \n })\n\n\n useEffect(() => {\n \n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const userID = localStorage.getItem(USER_ID);\n \n\n axios.get(BASE_URL + 'users/image/portfolio/'+userID, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n \tconsole.log(res.data)\n\n\n \tres.data.forEach(imgArraySet);\n \t\n\n\t\t\t\tfunction imgArraySet(value) {\n\n\t\t\t\t\t let imageKey = 'URLimage'+value.index\n\t\t\t\t\t let descrkey = 'URLdescription'+value.index\n\n\t\t\t\t\t //const dummy = {}\n\n\t\t\t\t\t imgURLSet(prevState => ({\n\t\t\t\t\t ...prevState,\n\t\t\t\t\t [imageKey] : value.original,\n\t\t\t\t\t [descrkey] : value.description\n\t\t\t\t\t }))\n\n\t\t\t\t\t //value.description.split(';')[0]\n\n\t\t\t\t\t //dummy[imageKey] = value.original\n\n\t\t\t\t\t //return dummy\n\n\t\t\t\t}\n\n\t\t\t\tloadingSet(false)\t\n \n\t\t\t \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n \n\n }, [refresh]);\n\n\n\n\n const handleChange = (e) => {\n const {id , value} = e.target \n setImgObj(prevState => ({\n ...prevState,\n [id] : value\n }))\n console.log(imgObj);\n \n\n }\n\n\n\n\t const handleImageChange = (e) => {\n\t \n\t \tconst {id} = e.target\n\n\t setImgObj(prevState => ({\n ...prevState,\n [id] : e.target.files[0]\n\n\n }))\n\n //console.log(e.target.files[0])\n\n let reader = new FileReader();\n reader.onload = function(ev){\n\n let keyID = 'URL'+id\n\n imgURLSet(prevState => ({\n ...prevState,\n [keyID] : ev.target.result\n\n\n }))\n\n\n }\n\n if(e.target.files[0]){\n\n reader.readAsDataURL(e.target.files[0])}\n\n \t \n\n\t };\n\n\n\t const handleSubmit = (e) => { \n\n\t e.preventDefault();\n\t console.log(imgObj);\n\t let gallery_data = new FormData();\n\n\t if (imgObj.image1 != null) {\n\t gallery_data.append('image_1', imgObj.image1);\n\t }\n\t if (imgObj.description1 != null) { \n\t gallery_data.append('description_1', imgObj.description1);\n\t }\t \t \n\t if (imgObj.image2 != null) {\n\t gallery_data.append('image_2', imgObj.image2);\n\t \n\t }\n\t if (imgObj.description2 != null) { \n\t gallery_data.append('description_2', imgObj.description2);\n\t }\t\n\t if (imgObj.image3 != null) {\n\t gallery_data.append('image_3', imgObj.image3);\n\t \n\t }\n\t if (imgObj.description3 != null) { \n\t gallery_data.append('description_3', imgObj.description3);\n\t }\t\n\t if (imgObj.image4 != null) {\n\t gallery_data.append('image_4', imgObj.image4);\n\t }\n\t if (imgObj.description4 != null) { \n\t gallery_data.append('description_4', imgObj.description4);\n\t }\t\n\t if (imgObj.image5 != null) {\n\t gallery_data.append('image_5', imgObj.image5);\n\t }\n\t if (imgObj.description5 != null) { \n\t gallery_data.append('description_5', imgObj.description5);\n\t }\t\n\t if (imgObj.image6 != null) {\n\t gallery_data.append('image_6', imgObj.image6);\n\t }\n\t if (imgObj.description6 != null) { \n\t gallery_data.append('description_6', imgObj.description6);\n\t }\t\n\t if (imgObj.image7 != null) {\n\t gallery_data.append('image_7', imgObj.image7);\n\t }\n\t if (imgObj.description7 != null) { \n\t gallery_data.append('description_7', imgObj.description7);\n\t }\t\n\t if (imgObj.image8 != null) {\n\t gallery_data.append('image_8', imgObj.image8);\n\t }\n\t if (imgObj.description8 != null) { \n\t gallery_data.append('description_8', imgObj.description8);\n\t }\t\n\t if (imgObj.image9 != null) {\n\t gallery_data.append('image_9', imgObj.image9);\n\t }\n\t if (imgObj.description9 != null) { \n\t gallery_data.append('description_9', imgObj.description9);\n\t }\t\n\t if (imgObj.image10 != null) {\n\t gallery_data.append('image_10', imgObj.image10);\n\t }\n\t if (imgObj.description10 != null) { \n\t gallery_data.append('description_10', imgObj.description10);\n\t }\t\n\t \n\t \n\n\t const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n\t loadingSet(true)\n\n\n\t axios({\n method: \"post\",\n url: BASE_URL + \"users/image/portfolio\",\n data: gallery_data,\n headers: {\n\t 'Authorization': 'Bearer '+ token,\n\t 'Content-Type': 'multipart/form-data'\n\t }\n\t })\n\t .then(res => {\n\t //console.log(res.data);\n\t updateErrorMessage(\"Information updated succesfully\");\n severityUpdate(\"success\");\n loadingSet(false)\n\t //window.location.reload(false)\n\t })\n\t .catch(function (error) {\n\n\t \t if(error.response.status!=415){\n console.log(error);\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"warning\");\n loadingSet(false); \n }\n\n if(error.response.status===415){\n \t\n updateErrorMessage(\"Information not updated. File extension not supported\");\n severityUpdate(\"warning\");\n loadingSet(false); \n }\n \n }); \n\t };\n\n\n\n\t const handleDelete = (e) => { \n\n\t \t\tconst id = e.target.id\n\n\t \t\tconsole.log(id)\n\n\t\t \tconst token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n\t\t axios({\n\t method: \"post\",\n\t url: BASE_URL + \"users/delete/portfolio/images\",\n\t data: {[id]: 'delete'},\n\t headers: {\n\t\t 'Authorization': 'Bearer '+ token,\n\t\t 'Content-Type': 'application/json'\n\t\t }\n\t\t })\n\t\t .then(res => {\n\n\t\t updateErrorMessage(\"Information deleted succesfully\");\n severityUpdate(\"success\");\t\n \n\t\t window.location.reload(false)\n\t\t \n\t\t })\n\t\t .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"warning\"); \n \n }); \n\n\t };\n\n\n \n\n return (\n\n\n
\n\n \n\n \n

Settings

\n

{userType == 'artist' ? 'PORTFOLIO' : 'COLLECTION'}

\n
\n\n
LOADING
\n\n

\n \tAdd pictures to your {userType == 'artist' ? 'portfolio' : 'collection'} here! Insert all information so your pictures will appear in more searches! In the 'tags' section\n \tyou can add keywords that are relevant to the picture, for example 'red', 'abstract' etc. this will increase your visibility when people searches for artworks\n\n

\n\n \n\n\n \n\t\t
\n \n
\n\n
\n\t
\n\n\t { \n\n\t index.map((currentIndex, i) => (\n\n\t\t\t \n\t\t\t ))\n\t }\n\t \n\t \n
\n\n
\n \n
\n\n \n\n
\n\n\n )\n}\n\nexport default SettingsPortfolio;\n","import React, {useState} from 'react';\nimport {TextField, Input, Button } from '@material-ui/core';\n\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport axios from 'axios';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID} from '../constants/apiConstants'\nimport AlertComponent from './AlertComponent';\n\nimport clsx from 'clsx';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Select from '@material-ui/core/Select';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Chip from '@material-ui/core/Chip';\nimport Slider from '@material-ui/core/Slider';\n\nimport freeFormPic from './Free_form.jpeg';\nimport portraitPic from './Portrait.jpeg';\nimport modelPic from './Model.jpeg';\nimport fullCustomPic from './Cappella-sistina-volta.jpeg';\n\nimport './Settings.css'\n\n\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n maxWidth: 300,\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n}));\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\nconst travelOptions = [\n 'no travel',\n 'statewide',\n 'nationwide',\n 'international', \n];\n\nconst styles = [\n 'Abstract',\n 'Metaphysics',\n 'Figurative', \n 'Portraits']\n\nconst matters = [\n 'oil',\n 'tempera',\n 'watercolor', \n 'acrylic']\n\n const mediums = [\n 'canvas',\n 'paper',\n 'wood', \n ]\n\n\n\nfunction getStyles(name, personName, theme) {\n return {\n fontWeight:\n personName.indexOf(name) === -1\n ? theme.typography.fontWeightRegular\n : theme.typography.fontWeightMedium,\n };\n}\n\n\n\nfunction SettingsCommission(props) {\n\n\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n\n const [profileInfo, profileInfoUpdate] = useState({});\n\n const [info , setInfo] = useState({\n\n style : [],\n matter : [],\n medium : [],\n sizeW : \"\",\n sizeH : \"\",\n min_price : '',\n max_price: '',\n price: [],\n travel: 'no travel', \n })\n \n const [freeForm, freeFormSet] = useState(false)\n const [portrait, portraitSet] = useState(false) \n const [model, modelSet] = useState(false) \n const [fullCustom, fullCustomSet] = useState(false) \n\n\n\n\nReact.useEffect(() => {\n \n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const userID = localStorage.getItem(USER_ID);\n \n\n axios.get(BASE_URL + 'users/get/artist/'+userID, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n .then((res) => {\n \n profileInfoUpdate(res.data)\n\n console.log(res.data)\n\n var matter_list = []\n if(res.data.matter){\n matter_list = res.data.matter.split(';')\n matter_list.splice(matter_list.length-1,1)\n }\n\n var medium_list = []\n if(res.data.medium){\n medium_list = res.data.medium.split(';')\n medium_list.splice(medium_list.length-1,1)\n }\n\n var style_list = []\n if(res.data.style){\n style_list = res.data.style.split(';')\n style_list.splice(style_list.length-1,1)\n }\n\n var price_list = []\n if(res.data.price){\n price_list = res.data.price.split(';')\n price_list.splice(price_list.length-1,1)\n }\n\n\n setInfo(prevState => ({\n ...prevState,\n style : style_list,\n matter : matter_list,\n medium : medium_list,\n price : price_list,\n min_price : res.data.min_price,\n max_price: res.data.max_price,\n travel: res.data.travel, \n\n }))\n\n freeFormSet(res.data.freeform)\n portraitSet(res.data.portrait)\n modelSet(res.data.model)\n fullCustomSet(res.data.fullcustom)\n\n \n\n \n })\n .catch((error) => {\n console.error(error)\n })\n\n \n \n\n }, []);\n\n\n\n\n\n const handleChange = (e) => {\n const {id , value} = e.target \n setInfo(prevState => ({\n ...prevState,\n [id] : value\n }))\n }\n\n\n\n\nconst handleSubmitClick = (e) => {\n\n e.preventDefault();\n\n var stylesSummary = ''\n info.style.map((entry) => (stylesSummary = stylesSummary + entry + ';'))\n\n var mattersSummary = ''\n info.matter.map((entry) => (mattersSummary = mattersSummary + entry + ';'))\n\n var mediumsSummary = ''\n info.medium.map((entry) => (mediumsSummary = mediumsSummary + entry + ';'))\n\n var priceSummary = ''\n info.price.map((entry) => (priceSummary = priceSummary + entry + ';'))\n\n \n var size = Math.max(info.sizeW, info.sizeH)\n \n\n const payloadInfo={\n\n\n \"style\":stylesSummary,\n \"matter\":mattersSummary,\n \"medium\":mediumsSummary,\n \"price\":priceSummary,\n \"min_price\":parseInt(info.min_price), \n \"max_price\":parseInt(info.max_price),\n \"size\":size.toString(),\n \"travel\": info.travel,\n \"freeform\": freeForm,\n \"portrait\": portrait,\n \"model\": model,\n \"fullcustom\": fullCustom \n\n }\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n //console.log(payloadInfo)\n\n axios({\n method: \"post\",\n url: BASE_URL+'users/update/artist',\n data: payloadInfo,\n headers: {\n\n 'Authorization': 'Bearer '+ token, \n 'Content-Type': 'application/json'\n\n }\n })\n .then(function (response) {\n if(response.status === 200){\n\n updateErrorMessage(\"Information updated succesfully\");\n severityUpdate(\"success\");\n \n \n } else{\n\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"success\"); \n }\n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"Information not updated. Please try again\");\n severityUpdate(\"warning\"); \n \n }); \n \n \n }\n\n \n\n /* MATERIAL-UI STYLE */\n\n const classes = useStyles();\n const theme = useTheme();\n const [personName, setPersonName] = React.useState(['alvaro']);\n\n\n\n const handleChangeStyle = (e, value) => {\n \n setInfo(prevState => ({\n ...prevState,\n 'style' : value.map(element => {\n return element.toUpperCase();\n })\n }))\n \n \n };\n\n const handleChangeMatter = (e, value) => {\n \n console.log(value)\n setInfo(prevState => ({\n ...prevState,\n 'matter' : value.map(element => {\n return element.toUpperCase();\n })\n }))\n };\n\n const handleChangeMedium = (e, value) => {\n \n setInfo(prevState => ({\n ...prevState,\n 'medium' : value.map(element => {\n return element.toUpperCase();\n })\n }))\n };\n\n const handleChangeSizeW = (e) => {\n \n setInfo(prevState => ({\n ...prevState,\n 'sizeW' : e.target.value\n }))\n };\n\n const handleChangeSizeH = (e) => {\n \n setInfo(prevState => ({\n ...prevState,\n 'sizeH' : e.target.value\n }))\n };\n\n const handleChangeMinPrice = (e) => {\n \n setInfo(prevState => ({\n ...prevState,\n 'min_price' : e.target.value\n }))\n };\n\n const handleChangeMaxPrice = (e) => {\n \n setInfo(prevState => ({\n ...prevState,\n 'max_price' : e.target.value\n }))\n };\n\n const handleChangeTravel = (e) => {\n\n console.log(e.target.value)\n setInfo(prevState => ({\n ...prevState,\n 'travel' : e.target.value\n }))\n };\n\n\n const handleChangePrice = (e) => {\n\n console.log(info.price)\n var array = info.price\n array[e.target.id] = e.target.value\n setInfo(prevState => ({\n ...prevState,\n 'price' : array\n }))\n\n };\n\n\n\n \n const handleFreeForm = (e) => {\n\n freeFormSet(!freeForm)\n };\n\n const handlePortrait = (e) => {\n\n portraitSet(!portrait)\n };\n\n const handleModel= (e) => {\n\n modelSet(!model)\n };\n\n const handleFullCustom = (e) => {\n\n fullCustomSet(!fullCustom)\n };\n \n\n \n\n return (\n\n\n
\n\n\n\n \n

COMMISSION SETTINGS

\n
\n\n\n\n {/* ######### FORM ########### */}\n\n
\n\n
\n \t\t \t

STYLE:

\n\n
\n\n option)}\n value={info.style}\n defaultValue= {[]}\n onChange={handleChangeStyle}\n freeSolo\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n />\n \t \t
\n \n\n
\n\n
\n

MATTERS:

\n \n
\n option)}\n value={info.matter}\n defaultValue= {[]}\n onChange={handleChangeMatter}\n freeSolo\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n /> \n
\n
\n\n
\n

MEDIUMS:

\n
\n option)}\n value={info.medium}\n defaultValue= {[]}\n onChange={handleChangeMedium}\n freeSolo\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n /> \n
\n
\n\n
\n\n {info.medium.map((medium, index) => \n\n
\n

PRICE {medium}:

\n\n
\n \n \n $/inch - The price of the artwork will be (width + height) x price\n
\n \n
\n\n\n )}\n\n
\n\n\n
\n \t\t \t

SIZE:

\n\n
\n \t \t\n x\n \n inch\n
\n\n
\n\n
\n

PRICE RANGE:

\n\n
\n \n $\n

-

\n\n \n $\n
\n \n
\n\n
\n

TRAVEL:

\n \n \n
\n \n {travelOptions.map((option) => (\n \n {option}\n \n ))}\n \n \n
\n \n
\n\n \n\n\n\n
\n \n\n \n \n
\n\n\n

COMMISSION MODES SETTINGS

\n
\n\n\n\n
\n\n Select which types of commission you are willing to accept \n\n
\n \n \n\n
\n \n
\n

Free form

\n

The commissioner only sets the dimensions, the support (canvas, paper ...), and the matter (oil, graphite, ...), the artist will create something freely

\n
\n
\n\n
\n\n\n
\n \n \n\n
\n \n
\n

portrait

\n

A commission of a portrait.

\n
\n
\n
\n\n
\n \n \n\n
\n \n
\n

model

\n

The commissioner chooses one of the artist's portfolio pictures as a model and ask for a similar commission. The commissioner can personalize dimensions, colors, medium, and matter.

\n
\n
\n
\n \n
\n \n \n\n
\n \n
\n

full custom

\n

The commissioner can customize the commission in all aspects.

\n
\n
\n\n
\n
\n\n\n\n\n\n
\n \n
\n\n\n \n\n\n\n\n\n\n
\n\n\n )\n}\n\nexport default SettingsCommission;\n","import React, {useState} from 'react';\nimport {TextField, Input, Button } from '@material-ui/core';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, ACCESS_TICKET_NAME, HOME} from '../constants/apiConstants'\nimport Modal from '@material-ui/core/Modal';\nimport AlertComponent from './AlertComponent';\nimport axios from 'axios';\nimport './Settings.css'\n\n\n\nfunction SettingsAccount(props) {\n\n\n const [modalOpen, modalOpenSet] = useState(false)\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n const handleModalClose = () => {\n modalOpenSet(false);\n };\n\n const handleModalOpen = () => {\n modalOpenSet(true);\n };\n\n\n\n const deleteAccount = () => { \n \n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const userID = localStorage.getItem(USER_ID);\n\n axios({\n method: \"DELETE\",\n url: BASE_URL + \"deletes/account/\" + userID ,\n \n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n \n\n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")\n let path = HOME; \n window.location = path;\n \n\n\n })\n .catch(function (error) {\n\n if(error.response.status === 200){\n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")\n let path = HOME; \n window.location = path;\n }\n \n else{\n updateErrorMessage(\"An error occured. Please try again. If the problem persists please contact the support team\");\n severityUpdate(\"warning\"); }\n \n });\n }\n\n\n \n\n\n const body = (\n
\n\n
\n\n

ARE YOU SURE YOU WANT TO DELETE YOUR ACCOUNT?

\n\n
\n \n
\n\n \n \n\n
\n
\n );\n\n\n return (\n\n\n
\n\n
\n \n

Account

\n\n

DELETE ACCOUNT

\n\n
\n\n\n
\n \n
Press this button to delete your account. All your infromation stored in Mecenate, including images and chats will be deleted
\n
\n\n \n {body}\n \n\n
\n \n
\n\n\n )\n}\n\nexport default SettingsAccount;\n","\nimport React from 'react';\nimport { GoogleLogin } from 'react-google-login';\nimport {BASE_URL, ACCESS_TOKEN_NAME, ACCESS_TICKET_NAME, USER_ID, USER_TYPE} from '../constants/apiConstants'\nimport { useHistory } from \"react-router-dom\";\nimport axios from 'axios';\nconst clientId =\n '703599566697-gb94cmabbt3q56mnkcud2i24f86vi5fd.apps.googleusercontent.com';\n\n\n\n\n\n\nfunction LoginGoogle(props) {\n\n\n const onSuccess = (res) => {\n\n \n\n if(res.profileObj && res.tokenObj) {\n\n //console.log(res.tokenObj) \n const payload = res.tokenObj;\n \n\n axios({\n method: \"post\",\n url: BASE_URL + \"oauth/google/login\",\n data: payload,\n headers: {\n 'Content-Type': 'text/plain;charset=utf-8'\n\n }\n })\n .then(function (response) {\n if(response.status === 200){\n\n localStorage.setItem(ACCESS_TOKEN_NAME,response.data.access_token);\n localStorage.setItem(ACCESS_TICKET_NAME,response.data.ticket);\n localStorage.setItem(USER_ID,response.data.user_id);\n localStorage.setItem(USER_TYPE,response.data.user_type);\n redirectToHome();\n \n } \n\n if(response.status === 206){\n\n console.log('response: 206' + res.profileObj.email)\n\n props.screenSet(2)\n props.emailSet(res.profileObj.email)\n\n {/*}\n\n axios({\n method: \"post\",\n url: \"http://34.219.113.18:8008/oauth/google/register\",\n data: {user_type: '',\n email: res.profileObj.email},\n headers: {\n 'Content-Type': 'text/plain;charset=utf-8'\n\n }\n }) \n\n .then(function (response) {\n \n if(response.status === 201){\n\n localStorage.setItem(ACCESS_TOKEN_NAME,response.data.access_token);\n localStorage.setItem(ACCESS_TICKET_NAME,response.data.ticket);\n localStorage.setItem(USER_ID,response.data.user_id);\n localStorage.setItem(USER_TYPE,response.data.user_type);\n redirectToHome();\n \n }\n })\n\n .catch(function (error) {\n \n }); \n\n */} \n \n } \n\n\n\n else{\n \n }\n })\n .catch(function (error) {\n \n }); \n } else {\n \n }\n \n\n\n };\n\n\n\n\n const redirectToHome = () => {\n let path = `./`; \n history.push(path);\n }\n\n const history = useHistory();\n\n\n const onFailure = (res) => {\n console.log('Login failed: res:', res);\n alert(\n `Failed to login`\n );\n };\n\n return (\n
\n \n
\n );\n}\n\nexport default LoginGoogle;\n\n","import React, {useState} from 'react';\nimport { Container, Button, Input } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport axios from 'axios';\nimport { useHistory } from \"react-router-dom\";\nimport logoIcon from './logo_fontana.png';\n\nimport Background from './cretto_burri.jpg';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\n\nimport AlertComponent from './AlertComponent';\nimport LoginGoogle from './LoginGoogle'\n\nimport {BASE_URL, ACCESS_TOKEN_NAME, ACCESS_TICKET_NAME, USER_ID, USER_TYPE, HOME, ACCESS_TOKEN_TIME} from '../constants/apiConstants'\n\nimport './LoginHome.css'\n\n\nconst ButtonStyles = makeStyles({\n root: {\n background: 'white',\n border: 10,\n borderColor: 'black',\n borderRadius: 3,\n marginTop: '5px',\n color: 'black',\n height: 48,\n padding: '0 30px',\n fontSize: '15px',\n },\n\n register: {\n background: 'white',\n border: 10,\n borderColor: 'black',\n borderRadius: 83,\n marginTop: '5px',\n color: 'black',\n height: 48,\n padding: '0 30px',\n fontSize: '15px',\n },\n});\n\n\n\n\n\nfunction LoginHome(props) {\n\n\n const [pswd, pswdSet] = useState('')\n\n const [screen, screenSet] = useState(1)\n const [email, emailSet] = useState(null)\n const [user_type, user_typeSet] = useState(null);\n\n const[userVerification, userVerificationSet] = useState('')\n\n const [state , setState] = useState({\n email : \"\",\n password : \"\",\n successMessage: null\n })\n\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severitySet] = useState(\"success\")\n const handleChange = (e) => {\n const {id , value} = e.target \n setState(prevState => ({\n ...prevState,\n [id] : value\n }))\n }\n\n const handleSubmitClick = (e) => {\n\n \n const payload={\n \"email\":state.email,\n \"password\":state.password,\n }\n\n \n\n \n \n\n\n\n axios({\n method: \"post\",\n \n url: BASE_URL+\"oauth/login\",\n data: payload,\n headers: {\n 'Content-Type': 'text/plain;charset=utf-8',\n }\n })\n .then(function (response, error) {\n\n \n\n\n if(response.status === 200){\n\n updateErrorMessage('You are in')\n setState(prevState => ({\n ...prevState,\n 'successMessage' : 'Login successful. Redirecting to home page..'\n }))\n\n \n localStorage.setItem(ACCESS_TOKEN_NAME,response.data.access_token);\n localStorage.setItem(ACCESS_TICKET_NAME,response.data.ticket);\n localStorage.setItem(USER_ID,response.data.user_id);\n localStorage.setItem(USER_TYPE,response.data.user_type);\n localStorage.setItem(ACCESS_TOKEN_TIME, new Date())\n \n \n redirectToHome();\n updateErrorMessage(null)\n }\n \n })\n .catch(function (error) {\n\n \n //console.log(response.response.status)\n \n if(error.response.status === 406){\n screenSet(4)\n }\n\n\n updateErrorMessage(\"Incorrect username or password\")\n\n \n \n //if(error.response.status === 401){\n // updateErrorMessage(\"Incorrect username or password\");\n //}\n //else{\n // updateErrorMessage(\"Incorrect username or password\");\n //}\n\n \n });\n }\n\n \n\n const redirectToHome = () => {\n \n \n window.location = HOME\n //history.push('./')\n\n }\n\n const handleUser_type = (e, value) => {\n\n \n user_typeSet(prevState => value)\n\n }\n\n const handleGoogleReg = () => {\n\n axios({\n method: \"post\",\n url: BASE_URL + \"oauth/google/register\",\n data: {user_type: user_type,\n email: email},\n headers: {\n 'Content-Type': 'text/plain;charset=utf-8'\n\n }\n }) \n\n .then(function (response) {\n \n if(response.status === 201){\n\n localStorage.setItem(ACCESS_TOKEN_NAME,response.data.access_token);\n localStorage.setItem(ACCESS_TICKET_NAME,response.data.ticket);\n localStorage.setItem(USER_ID,response.data.user_id);\n localStorage.setItem(USER_TYPE,response.data.user_type);\n redirectToHome();\n \n }\n })\n\n .catch(function (error) {\n \n }); \n\n\n\n \n\n }\n\n const handleSubmitVerification = () =>{\n\n axios({\n method: \"post\",\n url: BASE_URL + \"oauth/resend\" ,\n data: {\n email: state.email},\n headers: {\n 'Content-Type': 'text/plain;charset=utf-8'\n\n }\n }) \n\n .then(function (response) {\n\n severitySet('success')\n updateErrorMessage('an email has been sent')\n \n\n \n\n })\n\n .catch(function (error) {\n\n severitySet('warning')\n updateErrorMessage('an error occured, please try again')\n \n }); \n}\n\n const history = useHistory();\n\n const routeChangeRegister = () =>{ \n let path = `./Register`; \n history.push(path);\n }\n\n const handleSubmitPassword = () =>{ \n if(pswd == 'Malevich'){\n\n screenSet(1)\n }\n }\n\n const handlePassword = (e) =>{ \n pswdSet(e.target.value)\n }\n\n const classes = ButtonStyles();\n\n\nif(screen ===1){\n\n return (\n\n\n
\n\n
\n \n
\n\n \n\n \n \n
\n\n \"Logo_adam\"\n\n \n
\n \n {\n if (e.key === 'Enter') {\n handleSubmitClick() \n }\n }}/>\n \n\n \n\n\n \n \n \n \n\n
\n\n\n \n\n \n\n
\n\n \n\n
\n\n\n\n
\n\n \n
\n\n\n\n \n\n
\n )}\n\n if(screen ===2){\n\n return (\n\n\n
\n\n
\n \n
\n\n \n\n \n \n
\n\n \"Logo_adam\"/\n\n
\n\n

Welcome to Mecenate

\n \n

Please choose your account type

\n\n
\n\n }\n />\n
\n\n \n \n \n \n \n
\n\n
\n\n \n\n
\n\n\n\n
\n\n \n
\n\n\n\n \n\n
\n )}\n\n if(screen === 0){\n\n return (\n\n\n
\n\n
\n \n
\n\n \n\n
\n \n
\n\n \"Logo_adam\"/\n\n
\n\n

Insert password

\n \n \n\n \n \n\n \n \n \n \n \n
\n\n
\n\n
\n\n
\n\n\n\n
\n\n \n
\n\n\n
\n )}\n\n if(screen === 4){\n\n return (\n\n
\n\n
\n \n
\n\n \n\n \n \n
\n\n \"Logo_adam\"\n\n \n
\n\n
\n \n Your account is not verified. Please verify your account before login. If you need another verification link please push the button below, we'll resend an email to you.\n\n
\n\n \n\n\n
\n\n
\n\n \n\n \n\n
\n\n\n\n
\n\n \n
\n
\n\n\n \n )}\n}\n\nexport default LoginHome;\n","import React, {useState} from 'react';\nimport { Container, Button, Input } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport axios from 'axios';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport { useHistory } from \"react-router-dom\";\nimport logoIcon from './logo_fontana.png';\nimport IconButton from '@material-ui/core/IconButton';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport Background from './cretto_burri.jpg';\nimport {BASE_URL, ACCESS_TOKEN_NAME, ACCESS_TICKET_NAME, USER_ID, USER_TYPE, HOME} from '../constants/apiConstants'\n\n\nimport AlertComponent from './AlertComponent';\n\nimport './LoginHome.css'\n\nconst ButtonStyles = makeStyles({\n\n\n register: {\n background: 'white',\n border: 10,\n borderColor: 'black',\n borderRadius: 83,\n marginTop: '10px',\n color: 'black',\n padding: '0 30px',\n fontSize: '15px',\n height: 28,\n },\n\n back: {\n background: 'white',\n border: 10,\n borderColor: 'black',\n borderRadius: 83,\n \n color: 'black',\n height: 28,\n padding: '0 15px',\n fontSize: '12px',\n },\n\n});\n\n\n\n\n\nfunction Register(props) {\n\n\n const [state , setState] = useState({\n email : \"\",\n password : \"\",\n confirmPassword: \"\",\n successMessage: null\n })\n\n\n const [errorMessage, updateErrorMessage] = useState(null);\n\n const [severity, severitySet] = useState('error')\n\n const [user_type, user_typeSet] = useState(null);\n\n const [display, displaySet] = useState('input')\n\n const [access, accessSet] = useState(false)\n const [accessPssw, accessPsswSet] = useState('')\n\n\n \n \n\n const handleAccessPassword = (e) =>{\n\n accessPsswSet(e.target.value)\n }\n\n const handleAccessPasswordVerification = () =>{\n\n if(accessPssw == 'AM_vs1274wt'){\n\n accessSet(true)\n }\n else{\n updateErrorMessage('The inserted password is wrong') \n }\n }\n\n\n const handleChange = (e) => {\n const {id , value} = e.target \n setState(prevState => ({\n ...prevState,\n [id] : value\n }))\n }\n\n\n const sendDetailsToServer = () => {\n\n if(state.email.length && state.password.length && user_type) {\n updateErrorMessage(null);\n const payload={\n \"email\":state.email,\n \"user_type\": user_type,\n \"password\":state.password,\n \"auth_type\": \"password\",\n }\n axios({\n method: \"post\",\n url: BASE_URL + \"users/create\",\n data: payload,\n headers: {\n 'Content-Type': 'text/plain;charset=utf-8'\n\n }\n })\n .then(res=> {\n\n displaySet('verification')\n\n if(res.status === 201){\n\n displaySet('verification')\n \n\n {/*\n\n localStorage.setItem(ACCESS_TOKEN_NAME,response.data.access_token);\n localStorage.setItem(ACCESS_TICKET_NAME,response.data.ticket);\n localStorage.setItem(USER_ID,response.data.user_id);\n localStorage.setItem(USER_TYPE,response.data.user_type);\n redirectToHome();\n updateErrorMessage(null)\n\n */}\n } \n \n\n })\n\n .catch(function (error) {\n\n updateErrorMessage(\"Registration error. The user might be already registered\");\n\n \n }); \n\n } else {\n updateErrorMessage('Please enter valid username, password and user type') \n }\n \n }\n\n\n const history = useHistory();\n\n const redirectToHome = () => {\n window.location = HOME\n }\n\n const redirectToLogin = () => {\n let path = `./LoginHome`; \n history.push(path);\n }\n \n const handleSubmitClick = (e) => {\n e.preventDefault();\n if(state.password === state.confirmPassword) {\n sendDetailsToServer() \n } else {\n updateErrorMessage('Passwords do not match');\n }\n }\n\n const classes = ButtonStyles();\n\n\n const handleUser_type = (e, value) => {\n\n \n user_typeSet(value)\n\n console.log(value)\n \n\n }\n\nif(access){\n return (\n\n\n
\n\n
\n\n
\n\n \n\n \n \n
\n\n\n \"Logo_adam\"/\n\n
\n\n Almost there! An email was sent to the address you used to register with a link to verify your account. Please verify your account to join Mecenate!\n\n
\n\n
\n\n
\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n }\n />\n \n \n\n
\n\n
\n\n
\n\n \n\n
\n\n \n\n
\n \n\n\n
\n \n
\n\n
\n
\n )\n }\n\n if(!access){\n return (\n\n\n
\n\n
\n\n
\n\n \n\n \n \n
\n\n\n \"Logo_adam\"/\n\n
\n\n
\n Insert your password if you have one already or submit your application form here \n
\n\n {\n if (e.key === 'Enter') {\n handleAccessPasswordVerification() \n }\n }}> \n \n \n\n\n\n \n\n
\n\n \n\n
\n\n \n\n
\n\n \n\n
\n \n\n\n
\n \n
\n\n
\n
\n )\n }\n}\n\nexport default Register;\n","import React from 'react';\nimport Avatar from '@material-ui/core/Avatar';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {USER_ID} from '../constants/apiConstants'\n\n\n\n\nconst useStyles = makeStyles((theme) => ({\n \n large: {\n width: theme.spacing(4.5),\n height: theme.spacing(4.5),\n },\n}));\n\n\nfunction ChatMessage(props) {\n\n\n\t\n\tconst user_id = localStorage.getItem(USER_ID);\n\n const owner = user_id == props.newmessage.sender_id \n\n\tconst classes = useStyles();\n\n \n var t_stamp = new Date(props.newmessage.timestamp),\n date = t_stamp.toLocaleString()\n \n \n\n\n \n if(props.newmessage.message_type == \"TEXT\"){\n\n if(props.type == 'main'){\n \n return(\n\n
\n\n \t
\n \t\t{date}\n \t
\n\n \t
\n\n\t \t\n\t \t
\n\t \t\t{props.newmessage.first_name}\n\t
\n\n
\n\t
\n\t {props.newmessage.message}\n\t
\n
\n )}\n\n if(props.type == 'sidebar'){\n \n return(\n\n
\n\n\n \n
\n {props.newmessage.message} \n
\n
\n )}\n \n\n\n }\n\n if(props.newmessage.message_type ==\"IMAGE\"){\n\n if(props.type == 'main'){\n\n return(\n\n \n\n\n
\n\n
\n {date}\n
\n\n
\n\n \n
\n {props.newmessage.first_name}\n
\n\n
\n
\n \n
\n\n \n \n
\n\n\n \n )\n }\n }\n\n return(\n\n
\n
)\n\n\n}\nexport default ChatMessage","import React, {useRef, useEffect, useState} from 'react';\nimport axios from 'axios';\n\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\n\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID} from '../constants/apiConstants';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport UndoIcon from '@material-ui/icons/Undo';\nimport LineStyleIcon from '@material-ui/icons/LineStyle';\nimport RadioButtonUncheckedIcon from '@material-ui/icons/RadioButtonUnchecked';\nimport CreateIcon from '@material-ui/icons/Create';\nimport TextFieldsIcon from '@material-ui/icons/TextFields';\nimport ImageIcon from '@material-ui/icons/Image';\nimport SaveOutlinedIcon from '@material-ui/icons/SaveOutlined';\nimport ColorLensIcon from '@material-ui/icons/ColorLens';\nimport FolderOpenIcon from '@material-ui/icons/FolderOpen';\n\nimport Slider from '@material-ui/core/Slider';\nimport DeleteOutlineIcon from '@material-ui/icons/DeleteOutline';\nimport ToggleButton from '@material-ui/lab/ToggleButton';\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\nimport { AlphaPicker, ChromePicker } from 'react-color';\nimport Popover from '@material-ui/core/Popover';\nimport './ChatWhiteboard.css'\n\n\n\nfunction ChatWhiteboard(props) {\n\n\n const inbox = props.in_box\n\n const sendMessage = props.send_Message\n\n const conversation_id = props.conversation_id\n\n\n const canvasRef = useRef()\n const contextRef = useRef()\n\n const dummyCanvasRef = useRef()\n const dummyContextRef = useRef()\n\n const backgroundCanvasRef = useRef()\n const backgroundContextRef = useRef()\n\n const inboxRef = useRef()\n\n const [isDrawing, setIsDrawing] = useState(false)\n\n const [undo, undoSet] = useState([0,0,0,0,0])\n const [undocounts, undocountsSet] = useState(1)\n const [prevUndoCounts, prevUndoCountsSet] = useState(0)\n\n const [shapeSelector, shapeSelectorSet] = useState('pencil')\n const[cx, cxSet] = useState()\n const[cy, cySet] = useState()\n\n const [anchorEl, setAnchorEl] = useState(null);\n\n\n //const canvasHeight = window.innerHeight*0.85\n //const canvasWidth = window.innerWidth*0.8\n const canvasWidth = 1350\n const canvasHeight = canvasWidth/2\n // #######################################\n //####### Whiteboard Toolbar ##############\n //###########################################\n\n const [brushThickness, brushThicknessSet] = useState(50)\n const [color, colorSet] = useState({hex: 'black',\n rgb: {r:'10', g:'50', b:'200',a:'0.5'}})\n const [lineStyle, lineStyleSet] = useState([])\n const [textInput, textInputSet] = useState('')\n const [backgroundImg, backgroundImgSet] = useState('')\n \n\n const handleBrushThickness = (e, value) => { \n \n brushThicknessSet(value)\n }\n\n const handleColor = (value) => { \n \n colorSet(value)\n //console.log(value)\n \n }\n\n const handleDelete = () => { \n\n const date = new Date()\n \n sendMessage({ message: 'delete', \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'DELETE' })\n \n \n }\n\n const handleSave = () => { \n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n axios({\n method: \"post\",\n url: BASE_URL + \"wb/save\",\n data: {conversation_id: conversation_id, whiteboard: canvasRef.current.toDataURL(), background : backgroundCanvasRef.current.toDataURL() },\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n //console.log(res.data);\n \n })\n .catch(err => console.log(err))\n }\n\n\n const handleOpen = () => { \n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n axios.get(BASE_URL + 'wb/conversation/' + conversation_id, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n var canvasPic = new Image();\n\n canvasPic.src = res.data[0].whiteboard\n canvasPic.onload = function () { \n\n contextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n contextRef.current.drawImage(canvasPic, 0, 0, canvasWidth, canvasHeight)}\n\n\n var bkgPic = new Image();\n\n bkgPic.src = res.data[0].background\n bkgPic.onload = function () { \n\n backgroundContextRef.current.clearRect(0, 0, backgroundCanvasRef.current.width, backgroundCanvasRef.current.height)\n backgroundContextRef.current.drawImage(bkgPic, 0, 0, canvasWidth, canvasHeight)}\n \n\n //console.log(res.data[0])\n\n const date = new Date()\n sendMessage({ message: 'open', \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'OPEN' })\n \n \n \n\n\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n }\n\n const handleLineStyle = (value) => { \n \n if(!lineStyle[0]){\n lineStyleSet([5,15])}\n else{\n lineStyleSet([])\n }\n \n }\n\n const handleShapeSelector = (e,value) => { \n \n shapeSelectorSet(value)\n \n \n }\n\n const handleTextInput = (e) => { \n \n \n textInputSet(e.target.value)\n \n \n }\n \n const HandleInsertImage = (e) => { \n \n var extension = e.target.files[0].type\n \n var reader = new FileReader();\n var img = new Image();\n \n reader.onloadend = function() {\n\n var img = new Image();\n img.onload = function() {\n\n var H = img.height\n var W = img.width\n var ox = 0\n var oy = 0\n\n if (img.height > canvasHeight | img.width > canvasWidth){\n if(img.height>=img.width){ \n \n if(img.height/img.width >= canvasHeight/canvasWidth){\n W = img.width*(canvasHeight/img.height); H = canvasHeight}\n\n if(img.height/img.width < canvasHeight/canvasWidth){\n H = img.height*(canvasWidth/img.width); W = canvasWidth}\n }\n\n if(img.height= canvasHeight/canvasWidth){\n W = img.width*(canvasHeight/img.height); H = canvasHeight}\n\n if(img.height/img.width < canvasHeight/canvasWidth){\n H = img.height*(canvasWidth/img.width); W = canvasWidth}\n }\n }\n\n var ox = ((canvasWidth) - W)/2\n var oy = ((canvasHeight) - H)/2\n\n backgroundContextRef.current.drawImage(img, ox, oy, W,H)\n\n const date = new Date()\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n\n axios({\n method: \"post\",\n url: BASE_URL + \"wb/message\",\n data: {conversation_id: conversation_id, whiteboard: canvasRef.current.toDataURL(), background : backgroundCanvasRef.current.toDataURL() },\n headers: {\n 'Authorization': 'Bearer '+ token,\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n //console.log(res.data);\n\n if(res.status === 201){\n\n console.log('201!!')\n\n sendMessage({ message: 'backgroundCanvasRef.current.toDataURL()', \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'BKG'})\n\n\n }\n \n })\n .catch(err => console.log(err))\n\n //sendMessage({ message: 'backgroundCanvasRef.current.toDataURL()', \n // timestamp: date,\n // message_type: \"WB\",\n // conversation_id: conversation_id,\n // x: 0, \n // y: 0, \n // command: 'BKG'})\n\n }\n \n img.src = reader.result\n \n \n \n } \n \n reader.readAsDataURL(e.target.files[0]); \n\n\n\n\n }\n\n\n const handlePopClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handlePopClose = () => {\n setAnchorEl(null);\n };\n\n const popOpen = Boolean(anchorEl);\n\n\n\n\n \n useEffect(() => {\n\n const canvas = canvasRef.current\n\n canvas.width = canvasWidth\n canvas.height = canvasHeight\n const context = canvas.getContext('2d')\n contextRef.current = context\n\n\n const dummyCanvas = dummyCanvasRef.current\n\n dummyCanvas.width = canvasWidth\n dummyCanvas.height = canvasHeight\n const dummyContext = dummyCanvas.getContext('2d')\n dummyContextRef.current = dummyContext\n\n const backgroundCanvas = backgroundCanvasRef.current\n\n backgroundCanvas.width = canvasWidth\n backgroundCanvas.height = canvasHeight\n const backgroundContext = backgroundCanvas.getContext('2d')\n backgroundContextRef.current = backgroundContext\n\n },[])\n\n useEffect(() => {\n\n\n contextRef.current.lineCap = 'round'\n contextRef.current.strokeStyle = 'rgba(' + color.rgb.r + ', '+ color.rgb.g + ', '+ color.rgb.b + ', '+ color.rgb.a +')'\n contextRef.current.lineWidth = brushThickness/4\n contextRef.current.setLineDash(lineStyle)\n contextRef.current.fillStyle = 'rgba(' + color.rgb.r + ', '+ color.rgb.g + ', '+ color.rgb.b + ', '+ color.rgb.a +')'\n contextRef.current.font = brushThickness+\"px Arial\";\n\n\n dummyContextRef.current.lineCap = 'round'\n dummyContextRef.current.strokeStyle = 'rgba(' + color.rgb.r + ', '+ color.rgb.g + ', '+ color.rgb.b + ', '+ color.rgb.a +')'\n dummyContextRef.current.lineWidth = brushThickness/4\n dummyContextRef.current.setLineDash(lineStyle)\n\n\n },[brushThickness, color, lineStyle])\n\n\n // ########################################################\n // ########################################################\n // ########### REMOTE CONTROL ################\n // ########################################################\n // ########################################################\n \n useEffect(() => {\n\n if (inbox[inbox.length-1] && inbox[inbox.length-1].command == 'DRAW'){\n\n //contextRef.current.strokeStyle = 'red'\n //contextRef.current.lineWidth = 70\n\n var canvasPic = new Image();\n\n canvasPic.src = inbox[inbox.length-1].message;\n canvasPic.onload = function () { \n\n\n contextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n contextRef.current.drawImage(canvasPic, 0, 0, canvasWidth, canvasHeight)}\n\n //undoSet(JSON.pox.length-1].command))\n\n const dummyArray = undo\n dummyArray[undocounts] = inbox[inbox.length-1].message\n //dummyArray[undocounts] = 1\n undoSet(dummyArray)\n\n //console.log('undoCounts is: ' + undocounts + ' PrevundoCounts is: ' + prevUndoCounts)\n //console.log('undo is: ' + undo)\n\n \n\n if (undocounts==4)\n {undocountsSet(0)}\n else{\n undocountsSet(undocounts+1)}\n\n if(prevUndoCounts==4)\n {prevUndoCountsSet(0)}\n else{\n prevUndoCountsSet(prevUndoCounts+1)}\n\n \n }\n\n if (inbox[inbox.length-1] && inbox[inbox.length-1].command == 'BKG'){\n\n //contextRef.current.strokeStyle = 'red'\n //contextRef.current.lineWidth = 70\n \n\n var canvasPic = new Image();\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n \n console.log('BKG received')\n\n \n \n axios.get(BASE_URL + \"wb/message/\" + conversation_id, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n console.log(res.data)\n\n var canvasPic = new Image();\n canvasPic.src = res.data[0].background\n canvasPic.onload = function () { \n\n\n backgroundContextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n backgroundContextRef.current.drawImage(canvasPic, 0, 0, canvasWidth, canvasHeight)}\n\n \n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n //canvasPic.src = inbox[inbox.length-1].message;\n //canvasPic.onload = function () { \n\n\n //backgroundContextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n //backgroundContextRef.current.drawImage(canvasPic, 0, 0, canvasWidth, canvasHeight)}\n\n //undoSet(JSON.pox.length-1].command)) \n }\n\n if (inbox[inbox.length-1] && inbox[inbox.length-1].command == 'OPEN'){\n\n handleOpen()\n\n }\n\n if (inbox[inbox.length-1] && inbox[inbox.length-1].message == 'UNDO'){\n\n\n if(undocounts==0){undocountsSet(4)}\n else{\n undocountsSet(undocounts-1)}\n\n if(prevUndoCounts==0){prevUndoCountsSet(4)}\n else{\n prevUndoCountsSet(prevUndoCounts-1)}\n\n contextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n\n var canvasPic = new Image();\n\n canvasPic.src = undo[prevUndoCounts];\n canvasPic.onload = function () { contextRef.current.drawImage(canvasPic, 0, 0, canvasWidth, canvasHeight)}\n\n }\n\n if (inbox[inbox.length-1] && inbox[inbox.length-1].command == 'DELETE'){\n\n contextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n backgroundContextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n\n if (undocounts==4)\n {undocountsSet(0)}\n else{\n undocountsSet(undocounts+1)}\n\n if(prevUndoCounts==4)\n {prevUndoCountsSet(0)}\n else{\n prevUndoCountsSet(prevUndoCounts+1)}\n\n\n }\n \n\n },[inbox])\n\n{/*\n \n useEffect(() => {\n \n const lastCommand = inbox[inbox.length-1]\n\n //if(inbox[inbox.length-1]){console.log('last command is '+ inbox[inbox.length-1].message)}\n\n if (inbox[inbox.length-1] && inbox[inbox.length-1].message == 'onMouseDown'){\n\n\n if(shapeSelector=='circle'||'text'){\n\n cxSet(inbox[inbox.length-1].x)\n cySet(inbox[inbox.length-1].y)\n }\n\n if(shapeSelector=='pencil'){\n \n contextRef.current.beginPath()\n contextRef.current.moveTo(inbox[inbox.length-1].x, inbox[inbox.length-1].y)\n\n dummyContextRef.current.beginPath()\n dummyContextRef.current.moveTo(inbox[inbox.length-1].x, inbox[inbox.length-1].y)\n }\n\n\n setIsDrawing(true)\n\n const dummyArray = undo\n dummyArray[undocounts] = canvasRef.current.toDataURL()\n undoSet(dummyArray)\n\n if (undocounts==4)\n {undocountsSet(0)}\n else{\n undocountsSet(undocounts+1)}\n\n if(prevUndoCounts==4)\n {prevUndoCountsSet(0)}\n else{\n prevUndoCountsSet(prevUndoCounts+1)}\n \n }\n\n if(inbox[inbox.length-1] && inbox[inbox.length-1].message =='onMouseUp'){\n\n setIsDrawing(false)\n\n if(shapeSelector=='circle'){\n contextRef.current.stroke();\n }\n\n dummyContextRef.current.clearRect(0,0,canvasRef.current.width,canvasRef.current.height);\n\n if(shapeSelector=='text'){\n contextRef.current.textAlign = \"center\";\n contextRef.current.fillText(textInput, cx, cy);\n } \n }\n\n if(inbox[inbox.length-1] && inbox[inbox.length-1].message =='onMouseMove'){\n\n\n if(!isDrawing){\n return\n }\n if(shapeSelector=='pencil'){\n \n contextRef.current.lineTo(inbox[inbox.length-1].x, inbox[inbox.length-1].y) \n contextRef.current.stroke()\n\n dummyContextRef.current.lineTo(inbox[inbox.length-1].x, inbox[inbox.length-1].y) \n dummyContextRef.current.stroke()\n\n }\n\n if(shapeSelector=='circle'){\n\n \n \n const x = inbox[inbox.length-1].x\n const y = inbox[inbox.length-1].y\n\n \n \n \n //contextRef.current.clearRect(0,0,canvasRef.current.width,canvasRef.current.height);\n contextRef.current.beginPath();\n contextRef.current.moveTo(cx, cy + (y-cy)/2);\n contextRef.current.bezierCurveTo(cx, cy, x, cy, x, cy + (y-cy)/2);\n contextRef.current.bezierCurveTo(x, y, cx, y, cx, cy + (y-cy)/2);\n contextRef.current.closePath();\n //contextRef.current.stroke();\n\n\n dummyContextRef.current.clearRect(0,0,canvasRef.current.width,canvasRef.current.height);\n dummyContextRef.current.beginPath();\n dummyContextRef.current.moveTo(cx, cy + (y-cy)/2);\n dummyContextRef.current.bezierCurveTo(cx, cy, x, cy, x, cy + (y-cy)/2);\n dummyContextRef.current.bezierCurveTo(x, y, cx, y, cx, cy + (y-cy)/2);\n //dummyContextRef.current.closePath();\n dummyContextRef.current.stroke();\n }\n\n\n\n }\n\n\n\n },[inbox])\n\n\n \n*/}\n \n\n const startDrawing = ({nativeEvent}) => { \n\n\n //const {offsetX, offsetY} = nativeEvent\n\n //const date = new Date()\n //sendMessage({ message: 'onMouseDown', \n // timestamp: date,\n // message_type: \"WB\",\n // conversation_id: conversation_id,\n // x: offsetX, \n // y: offsetY, \n // command: 'test'})\n\n //console.log(inbox)\n\n \n if(shapeSelector=='pencil'){\n const {offsetX, offsetY} = nativeEvent\n contextRef.current.beginPath()\n contextRef.current.moveTo(offsetX, offsetY)\n\n dummyContextRef.current.beginPath()\n dummyContextRef.current.moveTo(offsetX, offsetY)\n }\n\n if(shapeSelector=='circle'||'text'){\n\n const {offsetX, offsetY} = nativeEvent\n cxSet(offsetX)\n cySet(offsetY)\n }\n\n \n \n setIsDrawing(true)\n\n {/*\n const dummyArray = undo\n dummyArray[undocounts] = canvasRef.current.toDataURL()\n undoSet(dummyArray)\n\n\n\n\n if (undocounts==4)\n {undocountsSet(0)}\n else{\n undocountsSet(undocounts+1)}\n\n if(prevUndoCounts==4)\n {prevUndoCountsSet(0)}\n else{\n prevUndoCountsSet(prevUndoCounts+1)}\n */}\n\n \n\n }\n\n const finishDrawing = () => { \n\n \n \n //contextRef.current.closePath()\n \n setIsDrawing(false)\n\n //const dummyArray = undo\n //dummyArray[undocounts] = canvasRef.current.toDataURL()\n //dummyArray[undocounts] = 1\n //undoSet(dummyArray)\n\n if(shapeSelector=='pencil'){\n const date = new Date()\n sendMessage({ message: canvasRef.current.toDataURL(), \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'DRAW'})\n }\n\n if(shapeSelector=='circle'){\n contextRef.current.stroke();\n\n \n\n const date = new Date()\n sendMessage({ message: canvasRef.current.toDataURL(), \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'DRAW'})\n }\n\n dummyContextRef.current.clearRect(0,0,canvasRef.current.width,canvasRef.current.height);\n\n if(shapeSelector=='text'){\n\n contextRef.current.textAlign = \"center\";\n contextRef.current.fillText(textInput, cx, cy);\n\n \n\n const date = new Date()\n sendMessage({ message: canvasRef.current.toDataURL(), \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'DRAW' })\n }\n\n\n \n }\n\n const draw = ({nativeEvent}) => {\n\n if(!isDrawing){\n return}\n\n const {offsetX, offsetY} = nativeEvent\n //const date = new Date()\n //sendMessage({ message: 'onMouseMove', \n // timestamp: date,\n // message_type: \"WB\",\n // conversation_id: conversation_id,\n // x: offsetX, \n // y: offsetY, \n // command: 'test'})\n\n \n if(shapeSelector=='pencil'){\n const {offsetX, offsetY} = nativeEvent\n contextRef.current.lineTo(offsetX, offsetY) \n contextRef.current.stroke()\n\n dummyContextRef.current.lineTo(offsetX, offsetY) \n dummyContextRef.current.stroke()\n\n }\n\n if(shapeSelector=='circle'){\n\n //var {offsetX, offsetY} = nativeEvent\n \n const x = offsetX\n const y = offsetY\n\n \n \n \n //contextRef.current.clearRect(0,0,canvasRef.current.width,canvasRef.current.height);\n contextRef.current.beginPath();\n contextRef.current.moveTo(cx, cy + (y-cy)/2);\n contextRef.current.bezierCurveTo(cx, cy, x, cy, x, cy + (y-cy)/2);\n contextRef.current.bezierCurveTo(x, y, cx, y, cx, cy + (y-cy)/2);\n contextRef.current.closePath();\n //contextRef.current.stroke();\n\n\n dummyContextRef.current.clearRect(0,0,canvasRef.current.width,canvasRef.current.height);\n dummyContextRef.current.beginPath();\n dummyContextRef.current.moveTo(cx, cy + (y-cy)/2);\n dummyContextRef.current.bezierCurveTo(cx, cy, x, cy, x, cy + (y-cy)/2);\n dummyContextRef.current.bezierCurveTo(x, y, cx, y, cx, cy + (y-cy)/2);\n //dummyContextRef.current.closePath();\n dummyContextRef.current.stroke();\n }\n\n \n \n }\n\n\n const undoFunction = () => {\n\n const date = new Date()\n sendMessage({ message: 'UNDO', \n timestamp: date,\n message_type: \"WB\",\n conversation_id: conversation_id,\n x: 0, \n y: 0, \n command: 'UNDO'})\n\n {/*}\n if(undocounts==0){undocountsSet(4)}\n else{\n undocountsSet(undocounts-1)}\n\n if(prevUndoCounts==0){prevUndoCountsSet(4)}\n else{\n prevUndoCountsSet(prevUndoCounts-1)}\n\n contextRef.current.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n\n var canvasPic = new Image();\n\n canvasPic.src = undo[prevUndoCounts];\n canvasPic.onload = function () { contextRef.current.drawImage(canvasPic, 0, 0)}\n */}\n \n\n } \n \n\n return (\n\n
\n\n
\n\n \n\n
\n
\n Brush thickness\n
\n \n \n
\n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n\n\n \n \n \n \n \n \n \n \n\n \n \n \n \n
\n\n
\n\n
\n \n\n \n\n \n
\n\n \n\n \n
\n\n
\n \t \n\n \n );\n}\n\nexport default ChatWhiteboard;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport Stepper from '@material-ui/core/Stepper';\nimport Step from '@material-ui/core/Step';\nimport StepLabel from '@material-ui/core/StepLabel';\nimport Check from '@material-ui/icons/Check';\n\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport GroupAddIcon from '@material-ui/icons/GroupAdd';\nimport VideoLabelIcon from '@material-ui/icons/VideoLabel';\nimport ChatIcon from '@material-ui/icons/Chat';\nimport HourglassEmptyIcon from '@material-ui/icons/HourglassEmpty';\nimport DoneOutlineIcon from '@material-ui/icons/DoneOutline';\n\nimport StepConnector from '@material-ui/core/StepConnector';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\n\n\n\nconst ColorlibConnector = withStyles({\n alternativeLabel: {\n top: 22,\n },\n active: {\n '& $line': {\n backgroundImage:\n 'linear-gradient( 95deg,rgb(33,113,242) 0%,rgb(8,154,233) 50%,rgb(13,95,138) 100%)',\n },\n },\n completed: {\n '& $line': {\n backgroundImage:\n 'linear-gradient( 95deg,rgb(33,113,242) 0%,rgb(8,154,233) 50%,rgb(13,95,138) 100%)',\n },\n },\n line: {\n height: 3,\n border: 0,\n backgroundColor: '#eaeaf0',\n borderRadius: 1,\n },\n})(StepConnector);\n\nconst useColorlibStepIconStyles = makeStyles({\n root: {\n backgroundColor: '#ccc',\n zIndex: 1,\n color: '#fff',\n width: 50,\n height: 50,\n display: 'flex',\n borderRadius: '50%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n active: {\n backgroundImage:\n 'linear-gradient( 136deg, rgb(33,113,242) 0%,rgb(8,124,233) 50%,rgb(13,95,138) 100%)',\n boxShadow: '0 4px 10px 0 rgba(0,0,0,.25)',\n },\n completed: {\n backgroundImage:\n 'linear-gradient( 136deg, rgb(33,113,242) 0%,rgb(8,124,233) 50%,rgb(13,95,138) 100%)',\n },\n});\n\nfunction ColorlibStepIcon(props) {\n const classes = useColorlibStepIconStyles();\n const { active, completed } = props;\n\n const icons = {\n 1: ,\n 2: ,\n 3: ,\n };\n\n return (\n \n {icons[String(props.icon)]}\n \n );\n}\n\nColorlibStepIcon.propTypes = {\n /**\n * Whether this step is active.\n */\n active: PropTypes.bool,\n /**\n * Mark the step as completed. Is passed to child components.\n */\n completed: PropTypes.bool,\n /**\n * The label displayed in the step icon.\n */\n icon: PropTypes.node,\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n },\n button: {\n marginRight: theme.spacing(1),\n },\n instructions: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n}));\n\nfunction getSteps() {\n return ['Contact the Artist', 'Wait for the artwork completion', 'Congratulation on your new commission!'];\n}\n\nfunction getStepContent(step) {\n switch (step) {\n case 0:\n return 'STEP 1';\n case 1:\n return 'STEP 2';\n case 2:\n return 'STEP 3';\n default:\n return 'Unknown step';\n }\n}\n\nexport default function ChatCommissionCenter() {\n const classes = useStyles();\n const [activeStep, setActiveStep] = React.useState(1);\n const steps = getSteps();\n\n const handleNext = () => {\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n };\n\n const handleBack = () => {\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\n };\n\n const handleReset = () => {\n setActiveStep(0);\n };\n\n return (\n\n
\n \n
\n {activeStep === steps.length ? (\n
\n \n All steps completed - you're finished\n \n \n
\n ) : (\n
\n {getStepContent(activeStep)}\n
\n\n
\n\t }>\n\t\t\t {steps.map((label) => (\n\t\t\t \n\t\t\t {label}\n\t\t\t \n\t\t\t ))}\n\t \n
\n\n \n \n {activeStep === steps.length - 1 ? 'Finish' : 'Next'}\n \n
\n
\n )\n }\n\n
\n
\n );\n}\n","import React, {useState, useRef, useEffect} from \"react\";\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, ACCESS_TICKET_NAME, HOME, USER_TYPE} from '../constants/apiConstants'\nimport axios from 'axios';\nimport { useParams} from \"react-router-dom\";\nimport { ChatList } from 'react-chat-elements'\nimport './ChatElement.css'\nimport ChatMessage from './ChatMessage.js'\nimport './Chat.css';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {TextField, Button} from '@material-ui/core';\nimport Drawer from '@material-ui/core/Drawer';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport IconButton from '@material-ui/core/IconButton';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ImageIcon from '@material-ui/icons/Image';\nimport ChatBubbleOutlineIcon from '@material-ui/icons/ChatBubbleOutline';\n\nimport whiteboardIcon from './whiteboard_icon.png'; \n\nimport SendIcon from '@material-ui/icons/Send';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\n\nimport Whiteboard from './ChatWhiteboard.js'\nimport ChatCommissionCenter from './ChatCommissionCenter.js'\nimport logoIcon from './Logo_logo.png';\nimport { useHistory } from \"react-router-dom\";\n\nconst useStyles = makeStyles((theme) => ({\n \n\n \n drawer: {\n\n marginTop: 40,\n width: \"240px\",\n flexShrink: 0,\n whiteSpace: 'nowrap',\n },\n drawerOpen: {\n marginTop: 66,\n width: \"240px\",\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerClose: {\n\n marginTop: 66,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: 'hidden',\n width: 70,\n \n },\n \n \n}));\n\n\n\n\nfunction Chat(props) {\n\n let { conversationID } = useParams();\n const history = useHistory();\n\n const user_type = localStorage.getItem(USER_TYPE)\n \n\n const [open, setOpen] = useState(true);\n const [textMessage, textMessageSet] = useState(\"\");\n const [pastMessages, pastMessagesSet] = useState([]);\n\n const [pagOffset, pagOffsetSet] = useState(0);\n const [pagLimit, pagLimitSet] = useState(10);\n\n const [uploadImage, uploadImageSet] = useState({});\n \n const [screenSelector, screenSelectorSet] = useState('chat')\n\n \n\n const inbox = props.in_box\n const sendMessage = props.send_Message\n\n const messageDisplay = pastMessages.concat(inbox)\n\n const messageDisplayFiltered = messageDisplay.filter((message)=>( message.conversation_id == conversationID))\n\n const date = new Date()\n\n const classes = useStyles();\n\n React.useEffect(() => {\n \n \n \n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const userID = localStorage.getItem(USER_ID);\n \n\n axios.get(BASE_URL + 'chat/conversations/'+conversationID+'?offset=0&limit=10', {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n //console.log(res)\n pastMessagesSet(res.data)\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n\n }, [conversationID]);\n\n \nconst handlePagination = () => {\n \n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n \n pagOffsetSet(pagOffset + 10)\n const Off = pagOffset + 10\n\n pagLimitSet(pagLimit + 10)\n const Lim = pagLimit + 10\n \n\n axios.get(BASE_URL + 'chat/conversations/'+conversationID+'?offset='+Off+'&limit='+ Lim, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n //console.log(res)\n pastMessagesSet(res.data.concat(pastMessages))\n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n \n\n };\n\n const handleDrawerToggle = () => {\n setOpen(!open);\n };\n\n const handleTextChange = (e) => {\n \n const {id , value} = e.target \n textMessageSet(value)\n\n }\n \n\n const handleSendMessage = () => {\n\n //console.log(conversationID)\n const date = new Date()\n\n if(textMessage){\n\n sendMessage({ message: textMessage,\n timestamp: date,\n message_type: \"TEXT\",\n conversation_id: conversationID})\n\n textMessageSet(\"\")\n }\n }\n\n const handleTextSelect = (e) => {\n\n const lastMessage = messageDisplay[messageDisplay.length - 1]\n\n const user_id = localStorage.getItem(USER_ID);\n\n if (!textMessage && lastMessage.sender_id != user_id){ \n\n \n\n sendMessage({ message: '',\n timestamp: '',\n message_type: \"SERVICE\",\n conversation_id: conversationID,\n message_id: lastMessage.message_id})\n \n\n }\n\n }\n\n \n\n const messageEl = useRef(null)\n\n useEffect(() => {\n if (messageEl) {\n messageEl.current.addEventListener('DOMNodeInserted', event => {\n const { currentTarget: target } = event;\n target.scroll({ top: target.scrollHeight, behavior: 'smooth' });\n });\n }\n }, [])\n\n\n const messageSide = useRef(null)\n\n useEffect(() => {\n if (messageSide) {\n messageSide.current.addEventListener('DOMNodeInserted', event => {\n const { currentTarget: target } = event;\n target.scroll({ top: target.scrollHeight, behavior: 'smooth' });\n });\n }\n }, [])\n\n\n \n const conversationManager = (e) => { \n \n //console.log(e.conversation_id);\n //window.location = HOME +`chat/`+ e.conversation_id ;\n\n history.push('/chat/'+ e.conversation_id)\n }\n\n \nconst HandleInsertImageChat = (e) =>{\n\n //console.log('ciao')\n //console.log(e.target.files[0].type)\n \n var extension = e.target.files[0].type\n const date = new Date()\n var reader = new FileReader();\n\n reader.onloadend = function() {\n\n //console.log(reader.result)\n\n sendMessage({ message: reader.result,\n timestamp: date,\n message_type: \"IMAGE\",\n conversation_id: conversationID,\n image_ext: extension })\n\n //console.log('RESULT', reader.result)\n \n\n }\n reader.readAsDataURL(e.target.files[0]);\n}\n\nconst handleWhiteboard = () => {\n\n screenSelectorSet('WB')\n \n\n}\n\nconst handleCommissionCenter = () => {\n\n screenSelectorSet('CC')\n \n}\n\nconst handleChat = () => {\n\n screenSelectorSet('chat')\n \n}\n \n console.log(messageDisplayFiltered)\n\n return (\n\n
\n \n
\n \n
\n \n {!open ? : }\n \n
\n \n\n \n \n \n\n \n \n \"CommissionIcon\"\n

commission status

\n
\n\n \n \n \n

chat

\n
\n\n \n \n \n \"whiteboardIcon\"\n

whiteboard

\n
\n \n
\n\n \n \n
\n \n
\n\n
\n\n \n \n { \n messageDisplay.map((messageobj, i) => (\n\n
\n \n
\n \n ))}\n\n
\n
\n \n \n\n\n
\n\n\n\n
\n\n
\n\n
\n \n
\n\n
\n\n \n \n { \n messageDisplay.map((messageobj, i) => (\n\n
\n \n
\n \n ))}\n \n {/*\n
\n \n
\n */}\n\n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n\n\n\n
\n
\n\n
\n\n
\n {\n if (e.key === 'Enter') {\n \n handleSendMessage()\n \n }\n\n }}\n\n onKeyUp = {(e) => {\n if (e.key === 'Enter') {\n \n \n textMessageSet(\"\")\n }\n\n }}\n\n onSelect={handleTextSelect}\n\n\n\n />\n
\n\n
\n\n \n\n \n \n \n
\n
\n\n
\n
\n\n
\n\n\n \n
\n );\n}\n\n\n\nexport default Chat;","\nimport { useEffect, useRef, useState } from \"react\";\nimport {ACCESS_TICKET_NAME, BASE_URL_WS } from '../constants/apiConstants';\n\n\nconst ChatEngine = (props) => {\n\n const wsRef = useRef();\n const ticket = localStorage.getItem(ACCESS_TICKET_NAME);\n\n \n \n\n const [inbox, setInbox] = useState([])\n\n const [conversations, setConversations] = useState([])\n\n const [unread, setUnread] = useState(0)\n\n\n // instance of websocket connection as a class property\n\n const [connected, setConnected] = useState(false)\n \n \n\n\n useEffect(() => {\n\n \n\n if(!connected){\n\n wsRef.current = new WebSocket(BASE_URL_WS + 'ws/connect/'+ticket)\n\n \n\n wsRef.current.onopen = () => {\n // on connecting, do nothing but log it to the console\n console.log('connected to chat')\n }\n\n setConnected(true)\n }\n \n\n wsRef.current.onmessage = evt => {\n // listen to data sent from the websocket server\n \n const data_in = JSON.parse(evt.data)\n\n if (data_in.message){\n\n setInbox(inbox => ([ ...inbox, data_in ]));\n \n }\n \n else {\n setConversations(conversations => ([ {}, data_in ]))\n\n console.log(data_in)\n var counter = 0\n\n const mapping = data_in.map((obj, i) => (\n\n counter = (counter + obj.unread) \n \n ))\n\n\n }\n \n //setConversations(data_in);\n setUnread(counter)\n\n //console.log(conversations[1])\n }\n \n\n\n wsRef.current.onclose = () => {\n console.log('disconnected')\n\n if (ticket){\n setConnected(false)}\n \n //setConnected(true)\n\n }\n\n \n \n }, [inbox, conversations, connected]);\n\n\n const sendMessage=(message)=>{\n \n try {\n wsRef.current.send(JSON.stringify(message)) //send data to the server\n } catch (error) {\n console.log(error) // catch error\n }}\n\n\n const closeChat=()=>{\n\n wsRef.current.close = () => {\n // on connecting, do nothing but log it to the console\n console.log('disconnected to chat')\n }\n }\n\n \n\n\n return{inbox, conversations, sendMessage, closeChat, unread}\n}\n\nexport default ChatEngine\n\n\n\n","import React from 'react';\nimport './About.css';\nimport BottomBar from './BottomBar';\nimport { useHistory } from \"react-router-dom\";\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\n\n\nfunction About(props) {\n\n const history = useHistory();\n \n\n const handleLink = (value) =>{\n\n history.push('/' + value)\n \n }\n\n\n return (\n\n
\n\n
\n\n

About

\n\n
\n\n

\n artMecenate is the only online platform 100% dedicated to art commissions and the only space hosting both artists and collectors \n profiles. artMecenate will guide you at every step of your commission; will produce contents to showcase its commissioners, collectors, and artists;\n will use the story of your commission to help your business defining its identity and engage with your commuinty.\n

\n\n \n
handleLink('howitworks')}>\n

HOW IT WORKS

\n
\n
handleLink('philosophy')}>\n

PHILOSOPHY

\n
\n
handleLink('aboutpayments')}>\n

PAYMENTS, SHIPPING, ETC

\n
\n
handleLink('contactus')}>\n

CONTACT US

\n
\n\n\n
\n
\n\n
\n \t \n \t
\n\n
\n );\n}\n\nexport default About;","import React from 'react';\nimport './About.css';\nimport BottomBar from './BottomBar';\n\n\n\nfunction Phiosophy(props) {\n\n\n\n\n return (\n\n
\n\n
\n\n

Philosophy

\n\n
\n\n

\n Mecenate is the Agora for commissioners and artists. Mecenate is the only online platform 100% dedicated to art commissions and the only online space hosting both artists and collectors \n profiles. If you are a consumed collector or you're just looking for your first one', if you are an established artist or if you are just emerging, if you love art, Mecenate is the \n place for you.\n

\n\n\n

Why the name Mecenate?

\n\n

\n Mecenate is probably the most famous patron of all times! He served as a quasi-culture minister to the first Roman emperor Octavian Augustus and helped a new generation \n of poets - including both Horace and Virgil - to develop their art and mastepieces. His fame lasted the centuries so much that his name is synonimous of patron, and it is \n with the name 'Mecenate' that the great patrons of the Renaissance, of Raffaello, Leonardo, and Michelangelo etc., used to be called. \n

\n\n

Why commissions?

\n\n

\n Commissions naturally bring together the artist, the commissioner, and ultimately, the viewers that can be your family, the clients of your business, or the lucky visitors of your \n collection. Commissions are an opportunity for commissioners to acquire pieces of art that are incredibly relevant for themselves; but commissioners have also the opportunity to know \n the artist and even more to be part of the creative process that generates an art piece.\n

\n

\n Artists have the freedom to accept or decline any commission proposal, and to know the commissioners from their profiles and social pages. Comissions are an opportunity to create\n something relevant, not only to one person, but relevant to the human kind. Commissions originates from life; like the great masters of the past such as Michelangelo, Leonardo,\n Chagall, and Rothko, you will have the chance to create an artwork that originates from the very human necessity and taht will speak a uinversal language. Commissions will help\n you reaching a broader audience and the collections of important patrons. More, commissions are a great way to secure some stable income that will help your art and your life as an\n artist. \n

\n\n

Commissioners

\n\n

\n A commissioner, or as we like to say, a Mecenate, is whoever is interested in commissioning an artpiece to an artist. As a commissioner you can have your own profile where to \n showcase your collection, present yourself with a bio, and tell everbody a bit about yourself and your interest in art. You can be a collector looking for the next piece or\n you might just be looking to fill that big white wall of your new home with something beautiful and meaningful. On artMecenate you will have the opportunity to know many\n artists, watch their works and most importantly connect with them. We make asking for a commission easy and fun: you know the price of your commission before even asking\n and in case you decide to go for one you'll be guided through the process; let us take care of the technicalities and just enjoy the process!\n artMecenate is is your opportunity to show your love for art, your collection, knowing other collectors, new artists... and every pic of your collection can be shared by \n everyone on the socials, so you can get the visibility and teh recognition that every patron and art lover deserves! \n

\n\n

Artists

\n\n

\n Open your profile on artMecenate.com and join the first online agora designed for artists and commissioners. Don't dilute yourself and your art in the ocean of a generalistic container; stop\n getting molested through direct messages from people that are not really interested in you. On artMecenate.com commissioners can reach out to you only by proposing a commission...\n but you as an artist can direct message any commisioner! \n Show your portfolio in an elegant and professional fashion, display all relevant information \n about you in a compact and impactful way, let people share your art pieces and your profile on social networks in the easiest way, put in one place all your social pages and websites.\n

\n\n\n
\n
\n\n
\n\t \n\t
\n\n
\n );\n}\n\nexport default Phiosophy;\n\n\n\n\n\n","import React, {useState} from 'react';\nimport './About.css';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport BottomBar from './BottomBar';\nimport ToggleButton from '@material-ui/lab/ToggleButton';\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\nimport ReactPlayer from 'react-player'\n\n\n\nfunction AboutHowItWorks(props) {\n\n const [selection, setSelection] = useState('everyone')\n\n const handleSelection = (event, newFormats) => {\n setSelection(newFormats);\n };\n\n\n\n const StyledToggleButton = withStyles((theme) => ({\n\n root: {\n\n \"&.Mui-selected\": {\n color: 'black'\n },\n\n border: '0.5px',\n borderStyle: 'solid',\n borderColor: 'grey',\n marginTop: '5px',\n color: 'grey',\n height: 48, \n fontWeight: '400',\n \n \n },\n\n}))(ToggleButton);\n\nlet body\n\nif(selection == 'everyone')\n body = ( \n
\n
\n \n
\n
    \n
  • Explore Artists and Collectors' profiles
  • \n
  • You don't need to open a profile to start exploring and buying your commissions
  • \n
  • All artists are selected professionals, they become part of the artMecenate commuinty excusively by invitation
  • \n
  • You can use a link from the homepage
  • \n
  • You can search for pictures using our search bar (example: 'portrait', or 'abstract in red')
  • \n
  • Use the filters to narrow your search if needed (select a city, country, a style, or a price range)
  • \n
  • You can even just type the artist's name if you are looking for someone in particular
  • \n
  • See your price immediately based on the dimensions and the kind of artpiece you are interested in (example: oil on canvas, ...)
  • \n
  • Submit your requests, an artMecenate representative will contact you soon
  • \n
  • Price includes shipping (national or international), step by step personal assistance through your commission, direct contact with the artists, certificates of authenticity, and legal documentation
  • \n
  • Choose your masterpiece we'll do the rest!
  • \n
  • If you like, artMecenate will be happy to advertise your commission on their social media channel through pictures, videos, and even interviews. You are doing something beautiful, let the world know!
  • \n
\n
\n )\n\n\n\n\nif(selection == 'collectors')\n body = ( \n
\n \n
    \n
  • Open your profile page on artMecenate here and:
  • \n
      \n
    • Share your collection with everyone
    • \n
    • Tell us about yourself and your passion for art and collecting
    • \n
    • Produce something meaningful for yourself and for everyone
    • \n
    • Be feautured (if you like) in our social media stories and magMecenate articles
    • \n
    • Follow and receive real time notifications from all of our artists and collectors
    • \n
    • Chat directly with all the other collectors and artists members
    • \n
    \n\n
\n
\n )\n\nif(selection == 'artists')\n body = ( \n\n
\n \n
    \n
  • Open your profile page on artMecenate here and:
  • \n
      \n
    • Share your portfolio with everyone
    • \n
    • Tell us about yourself, your artistic journey, your vision
    • \n
    • Earn money by doing something meaningful for yourself and for everyone
    • \n
    • Get recognized for your work
    • \n
    • Be feautured (if you like) in our social media stories and magMecenate articles
    • \n
    • Be part of a community of selected artists and collectors
    • \n
    • Chat directly with all the other collector and artist members
    • \n
    \n\n
\n
\n )\n\n return (\n\n
\n\n
\n\n

How it works

\n\n
\n \n \n For everyone\n \n \n for Collectors\n \n \n for Artists\n \n \n
\n\n
\n {body}\n
\n \n
\n\n
\n \t \n \t
\n\n
\n );\n}\n\nexport default AboutHowItWorks;","import React, {useState} from 'react';\nimport './About.css';\nimport BottomBar from './BottomBar';\nimport { useHistory } from \"react-router-dom\";\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\nimport { Button, TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport axios from 'axios';\nimport AlertComponent from './AlertComponent';\nimport {BASE_URL} from '../constants/apiConstants'\n\nfunction AboutRegistrationForm(props) {\n\n const [ fullname, fullnameSet] = useState('')\n const [ email, emailSet] = useState('') \n const [ portfolio, portfolioSet] = useState('') \n const [ usertype, usertypeSet] = useState(null) \n const [ message, messageSet] = useState('') \n\n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n const handleName = (e) => {\n\n fullnameSet(e.target.value)\n } \n\n const handleEmail = (e) => {\n\n emailSet(e.target.value)\n }\n\n const handlePortfolio = (e) => {\n\n portfolioSet(e.target.value)\n }\n\n const handleUsertype = (e, value) => {\n\n usertypeSet(value)\n }\n\n const handleMessage = (e) => {\n\n messageSet(e.target.value)\n }\n\n const handleInquiry = (e) => { \n\n axios({\n method: \"post\",\n url: BASE_URL + \"oauth/registration/request\",\n data: {\n full_name: fullname,\n email: email,\n instagram: portfolio,\n user_type: usertype,\n message: message\n },\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n\n if(res.status === 201){\n\n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")}\n \n \n \n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"An error occured. Please try again. If the problem persists please contact the support team\");\n severityUpdate(\"warning\"); \n \n });\n \n }\n\n\n\n\n return (\n\n
\n\n
\n\n

Registration Form

\n\n
\n

\n To join our community of Mecenates and artists and to have access to our exclusive services, please fill the registration form below\n or send an email to artmecenate@gmail.com \n\n

\n\n \n \n \n\n }\n />\n\n
\n \n
\n\n
\n \n
\n \n
\n\n\n\n \n
\n\n
\n \t \n \t
\n\n \n\n
\n );\n}\n\nexport default AboutRegistrationForm;","import React, {useState} from 'react';\nimport './About.css';\nimport BottomBar from './BottomBar';\nimport LocationOnIcon from '@material-ui/icons/LocationOn';\nimport EmailIcon from '@material-ui/icons/Email';\nimport { Button, TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport axios from 'axios';\nimport AlertComponent from './AlertComponent';\nimport {BASE_URL} from '../constants/apiConstants'\n\n\nfunction AboutContact(props) {\n\n\n const [ fullname, fullnameSet] = useState('')\n const [ email, emailSet] = useState('') \n const [ portfolio, portfolioSet] = useState('') \n const [ usertype, usertypeSet] = useState(null) \n const [ message, messageSet] = useState('') \n \n const [errorMessage, updateErrorMessage] = useState(null);\n const [severity, severityUpdate] = useState(\"success\");\n\n \n \n const handleName = (e) => {\n \n fullnameSet(e.target.value)\n } \n \n const handleEmail = (e) => {\n \n emailSet(e.target.value)\n }\n \n const handlePortfolio = (e) => {\n \n portfolioSet(e.target.value)\n }\n \n const handleUsertype = (e, value) => {\n \n usertypeSet(value)\n }\n \n const handleMessage = (e) => {\n \n messageSet(e.target.value)\n }\n \n const handleInquiry = (e) => { \n \n axios({\n method: \"post\",\n url: BASE_URL + \"oauth/registration/request\",\n data: {\n full_name: fullname,\n email: email,\n instagram: 'contact us message',\n user_type: 'contact us message',\n message: message\n },\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n .then(res => {\n \n if(res.status === 201){\n \n updateErrorMessage(\"The request was sent! Click anywhere to close the window \");\n severityUpdate(\"success\")}\n \n \n \n })\n .catch(function (error) {\n console.log(error);\n updateErrorMessage(\"An error occured. Please try again. If the problem persists please contact the support team\");\n severityUpdate(\"warning\"); \n \n });\n \n }\n \n\n return (\n\n
\n\n
\n\n

CONTACT US

\n\n
\n\n \n {/* \n

\n \n

302 California street, 94102, San Francisco, California, United States of America

\n

\n */}\n\n

\n \n artmecenate@gmail.com \n

\n\n

You can use the contact form below for any inquiry, question, or communication. We'll get back to you soon.

\n \n \n\n
\n \n
\n\n
\n \n
\n\n \n\n\n
\n
\n\n
\n \t \n \t
\n\n
\n );\n}\n\nexport default AboutContact;","import React from 'react';\nimport BottomBar from './BottomBar';\nimport './About.css';\n\n\n\n\nfunction AboutPayments(props) {\n\n\n return (\n\n
\n\n
\n\n

PAYMENTS, SHIPPING, ETC.

\n\n\n\n
\n\n
    \n
  • Price includes step-by-step guidance, shipping, handling, canvas strectching if needed, certificate of authenticity, additional documentation, and contracts
  • \n
  • No additional fees
  • \n
  • Taxes are not included and will be added at the time of the payment
  • \n
  • Payments will be processed on-line using a secure, state-of-the-art method. artMecenare will share with you a secure link at the time of the payment
  • \n
  • Payments will follow the 1/3:1/3:1/3 rule: the comissioner will pay 1/3 of the cost upon online contract signature, 1/3 after the first revision, 1/3 at the completion of the work
  • \n
  • The commissioner can interrupt the commission for any reason before the first revision at no cost and get all money back. Interruption upon or after first revision\n will cost 33% of the entire commission price
  • \n
  • The commissioner can interrupt the commission fat any time at no cost if the artist doesn't respect the timeline so as (if) defined in the commission contract
  • \n
  • artMecenate ships nationwide (USA) and internationally using trackable fast shipping courirers (FedEx or UPS)
  • \n
  • All artworks will be professionally prepared for shipping
  • \n
\n \n
\n \n
\n\n
\n \t \n \t
\n\n
\n );\n}\n\nexport default AboutPayments;","import React, {useState} from 'react';\nimport {BASE_URL, ACCESS_TOKEN_NAME, USER_ID, ACCESS_TICKET_NAME, HOME} from '../constants/apiConstants';\nimport { useParams} from \"react-router-dom\";\nimport {TextField, Input, Button } from '@material-ui/core';\nimport axios from 'axios';\n\nimport logoIcon from './Logo_logo.png';\nimport Background from './cretto_burri.jpg';\n\n\nfunction Authentication(props) {\n\n let { authToken } = useParams();\n\n const [verified, verifiedSet] = useState(false)\n\n const [error, errorSet] = useState(false)\n\n\nconst handleClick = () =>{\n\n axios.get(BASE_URL + 'oauth/email/verify/'+authToken, {\n headers: {\n \n }\n })\n\n .then((res) => {\n\n verifiedSet(true)\n \n })\n\n .catch((error) => {\n \n errorSet(true)\n console.error(error)\n }) \n}\n\n return (\n\n\n
\n\n
\n \n
\n\n
\n\n Click on the 'ACTIVATE ACCOUNT' button to activate your account\n\n
\n\n
\n\n
\n\n Your account has been verified! click here to Login into your account!\n\n
\n\n
\n\n There was an error. Please try again or contact the artmecenate.com support\n\n
\n \n
\n\n \n\n )\n}\n\nexport default Authentication;\n","import React from 'react';\nimport { Redirect, Route } from \"react-router-dom\";\nimport { ACCESS_TOKEN_NAME } from '../constants/apiConstants';\n\n\n\n\n\n\n\n\n\nfunction PrivateRoute({ children, ...rest }) {\n return (\n \n localStorage.getItem(ACCESS_TOKEN_NAME) ? (\n children\n ) : (\n \n )\n }\n />\n );\n }\n\nexport default PrivateRoute;","\n import React, {useEffect, useState} from 'react';\n import axios from 'axios';\n import {ACCESS_TOKEN_NAME, BASE_URL, ACCESS_TOKEN_TIME, USER_ID, ACCESS_TICKET_NAME} from '../constants/apiConstants'\n\n\n\n function RefreshTokenSetup() {\n\n // Timing to renew access token\n\n const token = localStorage.getItem(ACCESS_TOKEN_NAME);\n const ticket = localStorage.getItem(ACCESS_TICKET_NAME);\n const [tokenTime, tokenTimeSet] = useState(localStorage.getItem(ACCESS_TOKEN_TIME));\n \n\n let refreshTime = 2 * 1000;\n \n\n \n\n\n\n useEffect(() => {\n\n const interval = setInterval(() => {\n\n const accessTime = new Date(tokenTime);\n const accessMinutes = accessTime.getMinutes()\n\n var d = new Date();\n //d.getHours(); // => 9\n const min = d.getMinutes(); // => 30\n const sec = d.getSeconds(); // => 51\n\n \n if(token && Math.abs(accessMinutes - min)==30){\n\n console.log('refresh' + min );\n\n\n axios.get(BASE_URL + 'oauth/refresh_token/'+ ticket, {\n headers: {\n 'Authorization': 'Bearer '+ token,\n }\n })\n\n .then((res) => {\n\n localStorage.setItem(ACCESS_TOKEN_NAME,res.data.access_token);\n localStorage.setItem(ACCESS_TICKET_NAME,res.data.ticket);\n localStorage.setItem(ACCESS_TOKEN_TIME, new Date());\n \n var time = new Date()\n tokenTimeSet(time)\n \n \n })\n\n .catch((error) => {\n console.error(error)\n }) \n } \n\n\n }, refreshTime);\n \n return () => clearInterval(interval); \n\n },[tokenTime])\n\n\n return(
)\n};\n\n\n\nexport default RefreshTokenSetup","import React, {useState} from 'react';\nimport Background from './cretto_burri.jpg';\nimport logoIcon from './Logo_logo.png';\nimport { Container, Button, Input } from '@material-ui/core';\nimport { useHistory } from \"react-router-dom\";\n\n\nfunction Password() {\n\n const [pswd, pswdSet] = useState('');\t\n const history = useHistory();\n\n const handleSubmitPassword = () =>{ \n if(pswd == 'Malevich'){\n\n \n history.push('/')\n }\n }\n\n const handlePassword = (e) =>{ \n pswdSet(e.target.value)\n }\n\n return (\n\n\n
\n\n
\n \n
\n\n \n\n
\n \n
\n\n \"Logo_adam\"/\n\n
\n\n

Insert password

\n \n \n\n \n \n\n \n \n \n \n \n
\n\n
\n\n
\n\n
\n\n\n\n
\n\n \n
\n\n\n
\n )\n\n}\n\nexport default Password","import React from 'react';\n\nconst ErrorPage = () => {\n\n return (\n\n
\n

Error: Page not found!

\n
\n );\n}\n\nexport default ErrorPage;\n","import React, {useState} from 'react';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\n\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core/styles\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\n\nimport MecenateAppBar from './components/MecenateAppBar';\nimport Home from './components/Home';\nimport User from './components/User';\nimport SettingsPersonal from './components/SettingsPersonal';\nimport SettingsPortfolio from './components/SettingsPortfolio';\nimport SettingsCommission from './components/SettingsCommission';\nimport SettingsProfile from './components/SettingsProfile';\nimport SettingsAccount from './components/SettingsAccount';\nimport LoginHome from './components/LoginHome'\nimport Register from'./components/Register'\nimport Chat from'./components/Chat'\nimport ChatWhiteboard from'./components/ChatWhiteboard'\nimport ChatEngine from'./components/ChatEngine'\nimport AlertComponent from './components/AlertComponent';\nimport About from './components/About';\nimport AboutPhilosophy from './components/AboutPhilosophy';\nimport AboutHowItWorks from './components/AboutHowItWorks';\nimport AboutRegistrationForm from './components/AboutRegistrationForm'\nimport AboutContact from './components/AboutContact'\nimport AboutPayments from './components/AboutPayments'\nimport PaymentPage from './components/PaymentPage'\n\nimport Authentication from './components/Authentication'\n\nimport PrivateRoute from './utils/PrivateRoute';\n\nimport RefreshToken from './utils/refreshToken.js'\n\nimport Password from'./components/Password.js'\n\nimport ErrorPage from './components/ErrorPage';\n\n\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: 'rgba(0,0,0,0.7)',\n },\n secondary: {\n main: 'rgba(174,26,22,1)',\n },\n error: {\n main: 'rgba(174,26,22,1)',\n },\n \n },\n typography: {\n allVariants: {\n fontFamily: 'Prompt',\n fontWeight: '300',\n letterSpacing: 1,\n },\n },\n\n\n\n});\n\nfunction App() {\n\n\n const [errorMessage, updateErrorMessage] = useState(null);\n const {inbox, conversations, sendMessage, closeChat, unread } = ChatEngine();\n\n return (\n\n \n \n \n
\n\n \n\n \n \n
\n\n \n\n \n\n \n \n \n\n \n
\n \n \n
\n
\n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n {/* \n \n \n \n */}\n \n\n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n\n \n \n
\n\n\n\n \n\n
\n \n
\n
\n
\n );\n}\n\nexport default App;\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(\n \n \n ,\n document.getElementById('root')\n);\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\n//process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';\n","module.exports = __webpack_public_path__ + \"static/media/logo_fontana.5d92c62f.png\";"],"sourceRoot":""}