{"version":3,"sources":["services/like.service.ts","components/product-card-image/ProductCardImage.tsx","components/product-card/ProductCard.tsx","components/horizontal-scroll/arrows.tsx","components/confirm-dialog/ConfirmDialog.tsx","components/rich-editor-display/RichEditorDisplay.tsx","components/user-tweet-card/UserTweetCard.tsx","services/notification.service.ts","models/request/login.request.ts","services/auth.service.ts","lib/common-helper.ts","lib/app-context.ts","models/context/App-Context-Model.ts","services/base.service.ts","lib/enums.ts","components/route-guard/RouteGuard.tsx","pages/maintenance-readonly/MaintenanceReadonly.tsx","components/horizontal-scroll/scroll-showqace-category.tsx","pages/product-showqace-category-level-one/ProductShowqaceCategoryLevelOne.tsx","pages/product-showqace-category-level-two/ProductShowqaceCategoryLevelTwo.tsx","components/app-router/AppRouter.tsx","components/nav/NavBar.tsx","components/footer/Footer.tsx","components/app/App.tsx","reportWebVitals.ts","index.tsx","services/product.service.ts","services/user.service.ts","services/common.service.ts","services/user-tweet.service.ts","services/merge.service.ts","components/viewport-block-section/ViewportBlockSection.tsx"],"names":["LikeService","PRIMARY_RESOURCE","userTweetId","this","post","productId","delete","id","BaseService","ProductCardImage","props","imgRef","state","productImage","productImages","minHeight","dynamicBackgroundColor","a","length","filter","x","splice","setState","React","createRef","c","hex","toString","r","g","b","componentToHex","test","imageFullURL","className","style","objectFit","width","textAlign","backgroundColor","getImageHeightViewport","offset","once","crossOrigin","ref","src","onLoad","colorThief","ColorThief","img","current","resultRGB","getColor","rgbToHex","Component","contextType","AppContext","ProductCard","likeService","userTweetService","UserTweetService","product","commentBoxOpen","defaultImage","tweet","newUserTweet","process","context","currentUser","username","productTextEncoded","encodeURI","getProductDetailFullUrl","publicUserResponse","whatsapp","shortDescription","shortDescriptionParsed","JSON","parse","shortDescriptionEditorContent","convertFromRaw","EditorState","createWithContent","createEmpty","addProductLike","then","productLike","likes","likeId","deleteLike","y","createProductUserTweet","userTweet","userTweets","to","getUserStoreUrl","height","avatarFullURL","alt","name","userLevelId","UserLevelEnum","BusinessUser","target","textDecoration","display","href","getWhatsAppUrl","productStatusId","ProductStatusEnum","OutOfStock","getProductDetailUrl","border","primaryPrice","Enabled","formatMoney","primaryCurrency","code","RichEditorDisplay","editorState","createReadOnlyEditor","find","type","color","onClick","deleteProductLike","userId","value","resize","onChange","event","placeholder","aria-label","disabled","postProductUserTweet","UserTweetCard","Arrow","children","isLeft","position","left","fontSize","padding","opacity","zIndex","right","LeftArrow","useContext","VisibilityContext","isFirstItemVisible","scrollPrev","visibleItemsWithoutSeparators","initComplete","useState","setDisabled","useEffect","RightArrow","isLastItemVisible","scrollNext","ConfirmDialog","title","message","onConfirm","confimText","buttonClass","buttonIcon","buttonText","data-bs-toggle","data-bs-target","tabIndex","aria-labelledby","aria-hidden","data-bs-dismiss","fontWeight","lineHeight","dangerouslySetInnerHTML","__html","confirmed","refs","readOnly","canGoToUserTweet","init","nextProps","addUserLike","like","replyToUserTweet","removeUserTweet","getUserProfileUrl","deleteUserTweet","deleteUsertLike","postUserTweet","NotificationService","get","notificationDomain","LoginRequest","emailOrUsername","password","AuthService","loginRequest","externalLoginRequest","userRegisterRequest","findNode","array","valueToMatch","propertyKey","childrenKey","node","child","findNodeAddParents","parents","parentId","push","shorten","str","maxLen","separator","substr","lastIndexOf","generateId","result","characters","charactersLength","i","charAt","Math","floor","random","reOrder","list","startIndex","endIndex","Array","from","removed","toSeoUrl","url","normalize","replace","toLowerCase","getProductUrl","getUserStoreFullUrl","productCategoryId","number","currencyCode","truncateCount","valueParsed","valueEditorContent","stateFromHTML","truncateReadOnlyEditor","charCount","contentState","getCurrentContent","blocks","getBlocksAsArray","index","currentLength","isTruncated","truncatedBlocks","block","getLength","truncatedText","getText","slice","ContentState","createFromText","getFirstBlock","createFromBlockArray","AppContextModelDefault","isAuthenticated","setIsAuthenticated","setCurrentUser","createContext","baseUrl","data","isAbsoluteURL","makeRequest","showSuccess","fileParam","makeRequestUpload","method","fixedURL","headers","authToken","localStorage","getItem","Authorization","axios","params","response","toast","success","autoClose","catch","error","getErrorMessage","formData","FormData","File","append","file","FileList","isArray","forEach","dataItem","key","ExternalLoginProvider","NotificationTypeEnum","SortEnum","ProductFeatureStatusEnum","CurrencyEnum","RouteGuard","component","auth","rest","render","MaintenanceReadonly","maintenanceImageFullUrl","document","ScrollShowqaceCategory","itemId","showqaceCategory","fireClickAction","isItemVisible","role","maxWidth","margin","userSelect","borderRadius","handleViewport","ViewportBlockSection","disconnectOnLeave","ProductShowqaceCategoryLevelOne","mergeService","MergeService","commonService","CommonService","productService","ProductService","userService","UserService","observer","loadingRef","showqaceCategoryId","products","loadingProducts","page","prevY","allProductsLoaded","match","getShowqaceCategory","getAppendProducts","options","root","rootMargin","threshold","IntersectionObserver","handleObserver","bind","observe","getProductsShowqaceCategoryLevelOne","nextPageproducts","unobserve","entities","boundingClientRect","nextPage","history","loadingTextCSS","top","map","showqaceCategoryCardClicked","ProductShowqaceCategoryLevelTwo","getProductsShowqaceCategoryLevelTwo","AboutUs","lazy","ContactUs","Login","Privacy","UserDataDeletion","Notification","UserSettings","StoreDiscovery","Verify","UserTweetDetail","UserProfile","ProductList","ProductSave","ProductCategorySave","ProductDetail","Promotion","Home","AppRouter","fallback","path","NavBar","notificationService","searchIsLoading","searchOptions","searchSelections","redirect","notificationsNumber","getCurrentUserNotifications","notifications","newNotification","viewed","searchText","searchAllProducts","removeItem","linkName","currentUrl","location","pathname","endsWith","borderBottom","filterBy","isLoading","labelKey","minLength","searchOnSelect","selected","onSearch","handleSearch","renderMenuItemChildren","option","thumbnailImageFullURL","marginRight","wordBreak","whiteSpace","overflow","textOverflow","aria-controls","aria-expanded","setlinkActive","minWidth","RegularUser","PowerUser","Admin","logout","withRouter","Footer","Date","getFullYear","App","authService","undefined","loadProgressBar","easing","speed","showSpinner","getCurrentUser","user","Provider","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","TimeAgo","addDefaultLocale","en","ReactDOM","getElementById","put","updateProduct","createProduct","pageSize","encodeURIComponent","verificationCode","changePasswordRequest","updateBusinessUserRequest","contactUsRequest"],"mappings":"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","file":"static/js/main.a4fb61f1.chunk.js","sourcesContent":["import {BaseService} from \"./base.service\";\r\nimport { Like } from '../models/like';\r\n\r\n\r\nexport class LikeService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"likes/\";\r\n\r\n\r\n addUserLike(userTweetId: number) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + \"userTweets/\" + userTweetId)\r\n }\r\n\r\n addProductLike(productId: number) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + \"products/\" + productId)\r\n }\r\n\r\n\r\n deleteProductLikeByProductId(productId: number) : Promise\r\n {\r\n return this.delete(this.PRIMARY_RESOURCE + \"products/\" + productId);\r\n }\r\n\r\n deleteLike(id: number) : Promise\r\n {\r\n return this.delete(this.PRIMARY_RESOURCE + id);\r\n }\r\n\r\n\r\n}","import React from \"react\";\r\n\r\nimport { ProductImage } from '../../models/product-image';\r\nimport { AppContext } from '../../lib/app-context';\r\nimport \"./ProductCardImage.scss\";\r\nimport ColorThief from \"colorthief\";\r\nimport LazyLoad from 'react-lazyload';\r\n\r\n\r\ninterface IProps {\r\n productImage: ProductImage;\r\n productImages: ProductImage[];\r\n}\r\n\r\ninterface IState {\r\n productImage: ProductImage;\r\n productImages: ProductImage[];\r\n minHeight: number,\r\n dynamicBackgroundColor: string\r\n}\r\n\r\n\r\nexport default class ProductCardImage extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n imgRef: any;\r\n\r\n state: IState =\r\n {\r\n productImage: null,\r\n productImages: [],\r\n minHeight: 100,\r\n dynamicBackgroundColor: \"transparent\"\r\n }\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n let productImages = [];\r\n\r\n if (this.props.productImages?.length > 0 && this.props.productImage?.id) {\r\n productImages = this.props.productImages.filter(x => x.id != this.props.productImage.id);\r\n\r\n if (productImages.length > 3) {\r\n productImages = productImages.splice(0, 3);\r\n }\r\n }\r\n\r\n this.setState({ productImage: this.props.productImage });\r\n this.setState({ productImages: productImages });\r\n\r\n this.imgRef = React.createRef();\r\n }\r\n\r\n componentToHex(c) {\r\n var hex = c.toString(16);\r\n return hex.length == 1 ? \"0\" + hex : hex;\r\n }\r\n\r\n rgbToHex(r, g, b) {\r\n return \"#\" + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b);\r\n }\r\n\r\n getImageHeightViewport(test: any) : number\r\n {\r\n // let imageHeight = this.state.productImage.imageHeight;\r\n // let imageWidth = this.state.productImage.imageWidth;\r\n // let proportionHeight = (imageHeight * this.divRef.current.offsetWidth)/imageWidth;\r\n // let viewPortHeight = proportionHeight > 600 ? 600 :proportionHeight;\r\n return 100;\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n {\r\n this.state.productImage?.imageFullURL &&\r\n
600 ? \"600\" : this.state.productImage.imageHeight\r\n }} >\r\n \r\n {\r\n\r\n const colorThief = new ColorThief();\r\n const img = this.imgRef.current;\r\n const resultRGB = colorThief.getColor(img, 25);\r\n\r\n if (resultRGB?.length == 3) {\r\n let hex = this.rgbToHex(resultRGB[0], resultRGB[1], resultRGB[2]);\r\n this.setState({ dynamicBackgroundColor: hex });\r\n }\r\n\r\n }}\r\n />\r\n \r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\n","import React from \"react\";\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Link\r\n} from \"react-router-dom\";\r\nimport { Product } from '../../models/product';\r\nimport \"./ProductCard.scss\"\r\nimport { AppContext } from '../../lib/app-context';\r\nimport { LikeService } from '../../services/like.service';\r\nimport { UserTweetService } from '../../services/user-tweet.service';\r\nimport { UserTweet } from '../../models/user-tweet';\r\nimport UserTweetCard from '../user-tweet-card/UserTweetCard';\r\nimport ProductCardImage from '../product-card-image/ProductCardImage';\r\nimport { formatMoney, getProductDetailUrl, getUserStoreUrl, createReadOnlyEditor, getProductDetailFullUrl } from '../../lib/common-helper';\r\nimport { convertFromRaw, EditorState, Editor } from 'draft-js';\r\nimport { RichEditor } from \"../rich-editor/RichEditor\";\r\nimport { RichEditorDisplay } from '../rich-editor-display/RichEditorDisplay';\r\nimport { ProductStatusEnum, UserLevelEnum } from \"../../lib/enums\";\r\n\r\ninterface IProps {\r\n product: Product;\r\n}\r\n\r\ninterface IState {\r\n product: Product;\r\n commentBoxOpen: boolean;\r\n defaultImage: string;\r\n tweet: string;\r\n newUserTweet: UserTweet;\r\n}\r\n\r\n\r\nexport default class ProductCard extends React.Component {\r\n\r\n likeService: LikeService = new LikeService();\r\n userTweetService: UserTweetService = new UserTweetService();\r\n\r\n static contextType = AppContext;\r\n\r\n state: IState =\r\n {\r\n product: null,\r\n commentBoxOpen: false,\r\n defaultImage: '',\r\n tweet: '',\r\n newUserTweet: null,\r\n }\r\n\r\n // shorten(str, maxLen, separator = ' ') {\r\n // if (str.length <= maxLen) return str;\r\n // return str.substr(0, str.lastIndexOf(separator, maxLen)) + \"...\";\r\n // }\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n this.setState({ product: this.props.product });\r\n this.setState({ defaultImage: process.env.REACT_APP_DEFAULT_USER_IMAGE });\r\n\r\n // user logged in => open comment box\r\n if (this.context.currentUser?.username) {\r\n this.setState({ commentBoxOpen: true });\r\n }\r\n\r\n }\r\n\r\n getWhatsAppUrl(): string {\r\n let productTextEncoded: string = encodeURI('Hello, am interested in this item \\n\\r' +\r\n getProductDetailFullUrl(this.state.product.publicUserResponse.username, this.state.product)\r\n );\r\n\r\n return \"https://wa.me/\" + this.state.product.publicUserResponse.whatsapp + \"?text=\" + productTextEncoded\r\n }\r\n\r\n createEditor(shortDescription: string): any {\r\n if (shortDescription) {\r\n let shortDescriptionParsed = JSON.parse(shortDescription);\r\n let shortDescriptionEditorContent = convertFromRaw(shortDescriptionParsed);\r\n return EditorState.createWithContent(shortDescriptionEditorContent);\r\n }\r\n else {\r\n return EditorState.createEmpty();\r\n }\r\n }\r\n\r\n\r\n addProductLike(productId: number) {\r\n this.likeService.addProductLike(productId).then(productLike => {\r\n\r\n this.setState(\r\n {\r\n product: {\r\n ...this.state.product,\r\n likes: [...this.state.product.likes, productLike]\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n deleteProductLike(likeId: number) {\r\n\r\n this.likeService.deleteLike(likeId).then(y => {\r\n\r\n this.setState(\r\n {\r\n product: {\r\n ...this.state.product,\r\n likes: this.state.product.likes.filter(x => x.id != likeId)\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n postProductUserTweet() {\r\n\r\n this.userTweetService.createProductUserTweet(this.state.product.id, this.state.tweet).then(userTweet => {\r\n\r\n this.setState({ newUserTweet: userTweet });\r\n this.setState({ tweet: '' });\r\n this.setState({ commentBoxOpen: false });\r\n\r\n this.setState(\r\n {\r\n product: {\r\n ...this.state.product,\r\n userTweets: [...this.state.product.userTweets, userTweet]\r\n }\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n render() {\r\n\r\n return (\r\n this.state.product &&\r\n
\r\n
\r\n
\r\n \r\n
\r\n \"Card\r\n
\r\n \r\n
\r\n \r\n {this.state?.product?.publicUserResponse?.name}\r\n \r\n {/*  \r\n \r\n @{this.state?.product?.publicUserResponse?.username}\r\n */}\r\n
\r\n\r\n {\r\n (this.state.product.publicUserResponse.username == this.context.currentUser?.username || this.state.product.publicUserResponse.whatsapp) &&\r\n\r\n
\r\n\r\n\r\n {/* Whatsapp Button */}\r\n {\r\n this.state.product.publicUserResponse.whatsapp && \r\n this.state.product.publicUserResponse?.userLevelId == UserLevelEnum.BusinessUser &&\r\n \r\n\r\n \r\n \r\n }\r\n\r\n {\r\n this.state.product.publicUserResponse.username == this.context.currentUser?.username &&\r\n \r\n \r\n \r\n }\r\n\r\n
\r\n\r\n }\r\n
\r\n \r\n\r\n
\r\n
\r\n {/* */}\r\n \r\n
\r\n
\r\n

{this.state.product?.name}

\r\n

\r\n\r\n {\r\n this.state.product.productStatusId == ProductStatusEnum.OutOfStock &&\r\n \r\n OUT OF STOCK\r\n \r\n }\r\n\r\n {\r\n this.state.product.primaryPrice &&\r\n this.state.product.productStatusId == ProductStatusEnum.Enabled &&\r\n \r\n {formatMoney(this.state.product.primaryPrice, this.state.product.primaryCurrency?.code)}\r\n \r\n }\r\n\r\n\r\n\r\n\r\n

\r\n
\r\n {\r\n this.state.product.shortDescription &&\r\n
\r\n {\r\n //shorten(this.getShortDescription(this.state.product.shortDescription), 500)\r\n // this.getShortDescription(this.state.product.shortDescription)\r\n\r\n\r\n \r\n\r\n }\r\n
\r\n }\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n {\r\n // user is not logged in, dont show button\r\n !this.context.currentUser?.username &&\r\n
\r\n \r\n \r\n {this.state.product.likes?.length}\r\n \r\n
\r\n }\r\n\r\n {\r\n // use is logged in\r\n this.context.currentUser?.username &&\r\n
\r\n {\r\n this.state.product.likes?.length > 0 &&\r\n this.state.product.likes.find(x => x.publicUserResponse?.username == this.context.currentUser?.username) &&\r\n \r\n }\r\n {\r\n (\r\n !(this.state.product.likes?.length > 0) ||\r\n !(this.state.product.likes.find(x => x.publicUserResponse?.username == this.context.currentUser?.username))) &&\r\n \r\n }\r\n
\r\n\r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n {\r\n // user is not logged in, dont show button\r\n !this.context.currentUser?.username &&\r\n
\r\n \r\n \r\n {this.state.product.userTweets?.length}\r\n \r\n
\r\n }\r\n\r\n {\r\n // use is logged in\r\n this.context.currentUser?.username &&\r\n \r\n }\r\n\r\n\r\n
\r\n
\r\n
\r\n {\r\n this.state.commentBoxOpen &&\r\n
\r\n
\r\n\r\n {\r\n this.context?.currentUser?.avatarFullURL &&\r\n \"Account\"\r\n }\r\n {\r\n\r\n this.context?.currentUser?.userId &&\r\n !this.context?.currentUser?.avatarFullURL &&\r\n this.state.defaultImage &&\r\n\r\n \"Avatar\"\r\n }\r\n\r\n this.setState({ tweet: event.target.value })}\r\n placeholder=\"Write a comment\" aria-label=\"Write a comment\" />\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n }\r\n\r\n {\r\n this.state.newUserTweet &&\r\n
\r\n \r\n
\r\n }\r\n\r\n\r\n
\r\n )\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport { VisibilityContext } from \"react-horizontal-scrolling-menu\";\r\n\r\nfunction Arrow({\r\n children,\r\n disabled,\r\n onClick,\r\n isLeft,\r\n}: {\r\n children: React.ReactNode;\r\n disabled: boolean;\r\n onClick: VoidFunction;\r\n isLeft: boolean;\r\n}) {\r\n return (\r\n !disabled &&\r\n \r\n {children}\r\n \r\n\r\n );\r\n}\r\n\r\nexport function LeftArrow() {\r\n const {\r\n isFirstItemVisible,\r\n scrollPrev,\r\n visibleItemsWithoutSeparators,\r\n initComplete\r\n } = React.useContext(VisibilityContext);\r\n\r\n const [disabled, setDisabled] = React.useState(\r\n !initComplete || (initComplete && isFirstItemVisible)\r\n );\r\n React.useEffect(() => {\r\n // NOTE: detect if whole component visible\r\n if (visibleItemsWithoutSeparators.length) {\r\n setDisabled(isFirstItemVisible);\r\n }\r\n }, [isFirstItemVisible, visibleItemsWithoutSeparators]);\r\n\r\n return (\r\n scrollPrev()}>\r\n \r\n \r\n );\r\n}\r\n\r\nexport function RightArrow() {\r\n const {\r\n isLastItemVisible,\r\n scrollNext,\r\n visibleItemsWithoutSeparators\r\n } = React.useContext(VisibilityContext);\r\n\r\n // console.log({ isLastItemVisible });\r\n const [disabled, setDisabled] = React.useState(\r\n !visibleItemsWithoutSeparators.length && isLastItemVisible\r\n );\r\n React.useEffect(() => {\r\n if (visibleItemsWithoutSeparators.length) {\r\n setDisabled(isLastItemVisible);\r\n }\r\n }, [isLastItemVisible, visibleItemsWithoutSeparators]);\r\n\r\n return (\r\n scrollNext()} >\r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\ninterface IProps {\r\n id?: any;\r\n title?: string;\r\n message?: string;\r\n buttonClass?: string;\r\n buttonIcon?: any;\r\n buttonText?: string;\r\n onConfirm?: any;\r\n confimText?: string;\r\n}\r\n\r\ninterface IState {\r\n id?: any;\r\n title: string;\r\n message: string;\r\n buttonClass?: string;\r\n buttonIcon?: any;\r\n buttonText?: string;\r\n onConfirm?: any;\r\n confimText?: string;\r\n}\r\n\r\n\r\nexport default class ConfirmDialog extends React.Component {\r\n\r\n state: IState =\r\n {\r\n title: '',\r\n message: '',\r\n onConfirm: null,\r\n confimText: ''\r\n }\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n this.setState({\r\n id: this.props.id ?? '',\r\n title: this.props.title ?? 'Confirm',\r\n message: this.props.message ?? 'Are you sure?',\r\n buttonClass: this.props.buttonClass ?? '',\r\n buttonIcon: this.props.buttonIcon ?? null,\r\n buttonText: this.props.buttonText ?? '',\r\n onConfirm: this.props.onConfirm,\r\n confimText: this.props.confimText ?? 'Confirm',\r\n });\r\n }\r\n\r\n\r\n confirmed() {\r\n if (typeof this.state.onConfirm == \"function\") {\r\n this.state.onConfirm();\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n return (\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.state.title}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport { Editor, EditorState, RichUtils } from 'draft-js';\r\nimport \"./RichEditorDisplay.scss\";\r\n\r\n\r\n\r\n\r\ninterface IProps {\r\n editorState: any;\r\n}\r\n\r\ninterface IState {\r\n editorState: any;\r\n}\r\n\r\nexport class RichEditorDisplay extends React.Component {\r\n\r\n refs: any;\r\n\r\n editorState: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.editorState = props.editorState;\r\n }\r\n\r\n async componentDidMount() {\r\n this.setState({ editorState: this.props.editorState });\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n","import React from \"react\";\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Link,\r\n RouteProps,\r\n RouteComponentProps\r\n} from \"react-router-dom\";\r\nimport \"./UserTweetCard.scss\"\r\nimport { UserTweet } from '../../models/user-tweet';\r\nimport { AppContext } from '../../lib/app-context';\r\nimport { LikeService } from '../../services/like.service';\r\nimport { UserTweetService } from '../../services/user-tweet.service';\r\nimport ConfirmDialog from '../confirm-dialog/ConfirmDialog';\r\nimport { getUserProfileUrl } from \"../../lib/common-helper\";\r\n\r\ninterface IProps {\r\n userTweet: UserTweet;\r\n canGoToUserTweet?: boolean;\r\n}\r\n\r\ninterface IState {\r\n userTweet: UserTweet;\r\n commentBoxOpen: boolean;\r\n defaultImage: string;\r\n tweet: string;\r\n newUserTweet: UserTweet;\r\n canGoToUserTweet: boolean;\r\n}\r\n\r\n\r\nexport default class UserTweetCard extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n likeService: LikeService = new LikeService();\r\n userTweetService: UserTweetService = new UserTweetService();\r\n\r\n state: IState =\r\n {\r\n userTweet: null,\r\n commentBoxOpen: false,\r\n defaultImage: '',\r\n tweet: '',\r\n newUserTweet: null,\r\n canGoToUserTweet: true\r\n }\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n let userTweet = this.props.userTweet;\r\n let canGoToUserTweet = this.props.canGoToUserTweet ?? true;\r\n\r\n this.init(userTweet, canGoToUserTweet);\r\n }\r\n\r\n async init(userTweet: UserTweet, canGoToUserTweet: boolean) {\r\n this.setState({ userTweet: userTweet });\r\n this.setState({ canGoToUserTweet: canGoToUserTweet });\r\n }\r\n\r\n async componentWillReceiveProps(nextProps) {\r\n\r\n if (this.props.userTweet != nextProps.userTweet) {\r\n\r\n let userTweet = nextProps.userTweet;\r\n let canGoToUserTweet = nextProps.canGoToUserTweet ?? true;\r\n\r\n this.init(userTweet, canGoToUserTweet);\r\n }\r\n }\r\n\r\n\r\n addUserLike(userTweetId: number) {\r\n this.likeService.addUserLike(userTweetId).then(like => {\r\n\r\n this.setState(\r\n {\r\n userTweet: {\r\n ...this.state.userTweet,\r\n likes: [...this.state.userTweet.likes, like]\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n deleteUsertLike(likeId: number) {\r\n\r\n this.likeService.deleteLike(likeId).then(y => {\r\n\r\n this.setState(\r\n {\r\n userTweet: {\r\n ...this.state.userTweet,\r\n likes: this.state.userTweet.likes.filter(x => x.id != likeId)\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n postUserTweet() {\r\n\r\n this.userTweetService.replyToUserTweet(this.state.userTweet.id, this.state.tweet).then(userTweet => {\r\n\r\n this.setState({ newUserTweet: userTweet });\r\n this.setState({ tweet: '' });\r\n this.setState({ commentBoxOpen: false });\r\n\r\n this.setState(\r\n {\r\n userTweet: {\r\n ...this.state.userTweet,\r\n children: [...this.state.userTweet.children, userTweet]\r\n }\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n deleteUserTweet(id: number) {\r\n if (id) {\r\n this.userTweetService.removeUserTweet(id).then(x => {\r\n\r\n this.setState({ userTweet: null });\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n return (\r\n this.state.userTweet &&\r\n
\r\n
\r\n
\r\n \r\n
\r\n \"Card\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n {this.state?.userTweet?.publicUserResponse?.name}\r\n \r\n  \r\n \r\n @{this.state?.userTweet?.publicUserResponse?.username}\r\n \r\n\r\n {\r\n this.context.currentUser?.username == this.state.userTweet.publicUserResponse.username &&\r\n
\r\n this.deleteUserTweet(this.state.userTweet.id)} />\r\n
\r\n\r\n }\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n {\r\n this.state.canGoToUserTweet &&\r\n \r\n {this.state.userTweet.tweet}\r\n \r\n }\r\n\r\n {\r\n !this.state.canGoToUserTweet &&\r\n
\r\n {this.state.userTweet.tweet}\r\n
\r\n\r\n }\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n {\r\n // user is not logged in, dont show button\r\n !this.context.currentUser?.username &&\r\n
\r\n \r\n \r\n {this.state.userTweet.likes?.length}\r\n \r\n
\r\n }\r\n\r\n {\r\n // use is logged in\r\n this.context.currentUser?.username &&\r\n
\r\n {\r\n this.state.userTweet.likes?.length > 0 &&\r\n this.state.userTweet.likes.find(x => x.publicUserResponse?.username == this.context.currentUser?.username) &&\r\n \r\n }\r\n {\r\n (\r\n !(this.state.userTweet.likes?.length > 0) ||\r\n !(this.state.userTweet.likes.find(x => x.publicUserResponse?.username == this.context.currentUser?.username))) &&\r\n \r\n }\r\n
\r\n\r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n {\r\n // user is not logged in, dont show button\r\n !this.context.currentUser?.username &&\r\n
\r\n \r\n \r\n {this.state.userTweet.children?.length}\r\n \r\n
\r\n }\r\n\r\n {\r\n // use is logged in\r\n this.context.currentUser?.username &&\r\n \r\n }\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n {\r\n this.state.commentBoxOpen &&\r\n
\r\n
\r\n\r\n {\r\n this.context?.currentUser?.avatarFullURL &&\r\n \"Account\"\r\n }\r\n {\r\n\r\n this.context?.currentUser?.userId &&\r\n !this.context?.currentUser?.avatarFullURL &&\r\n this.state.defaultImage &&\r\n\r\n \"Avatar\"\r\n }\r\n\r\n this.setState({ tweet: event.target.value })}\r\n placeholder=\"Write a comment\" aria-label=\"Write a comment\" />\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n }\r\n\r\n {\r\n this.state.newUserTweet &&\r\n
\r\n \r\n
\r\n }\r\n\r\n\r\n
\r\n )\r\n }\r\n}\r\n","import {BaseService} from \"./base.service\";\r\nimport { Product } from '../models/product';\r\nimport { ProductCategory } from '../models/product-category';\r\nimport { Currency } from \"../models/currency\";\r\nimport { NotificationDomain } from '../models/notification-domain';\r\n\r\n\r\nexport class NotificationService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"notifications/\";\r\n\r\n getCurrentUserNotifications() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE);\r\n }\r\n\r\n getCurrentUserNotificationsMarkViewed() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"viewed\");\r\n }\r\n\r\n deleteNotification(notificationDomain: NotificationDomain) : Promise\r\n {\r\n return this.delete(this.PRIMARY_RESOURCE, notificationDomain);\r\n }\r\n}","\r\nexport class LoginRequest\r\n{\r\n emailOrUsername: string;\r\n password: string;\r\n}","import { LoginRequest } from \"../models/request/login.request\";\r\nimport {BaseService} from \"./base.service\";\r\nimport { UserSessionResponse } from '../models/response/user-session.response';\r\nimport { ExternalLoginRequest } from '../models/request/external-login.request';\r\nimport { UserRegisterRequest } from '../models/request/user-register.request';\r\n\r\n\r\nexport class AuthService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"auth/\";\r\n\r\n login(emailOrUsername: string, password: string) : Promise<{access_token: string, user: UserSessionResponse}>\r\n {\r\n let loginRequest : LoginRequest = new LoginRequest();\r\n loginRequest.emailOrUsername = emailOrUsername;\r\n loginRequest.password = password;\r\n \r\n return this.post(this.PRIMARY_RESOURCE + \"login\", loginRequest);\r\n }\r\n\r\n externalLogin(externalLoginRequest: ExternalLoginRequest) : Promise<{access_token: string, user: UserSessionResponse}>\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + \"externalLogin\", externalLoginRequest);\r\n }\r\n\r\n registerUser(userRegisterRequest: UserRegisterRequest) : Promise<{access_token: string, user: UserSessionResponse}>\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + \"registerUser\", userRegisterRequest);\r\n }\r\n\r\n getCurrentUser() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"currentUser\");\r\n }\r\n\r\n weatherTest() : Promise\r\n {\r\n return this.get(\"WeatherForecast\", {test: '1234'});\r\n }\r\n\r\n}","import { Product } from '../models/product';\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport { stateFromHTML } from 'draft-js-import-html';\r\n\r\n\r\n\r\n\r\nexport function findNode(array, valueToMatch: any, propertyKey: string = 'id', childrenKey: string = 'children') {\r\n\r\n for (const node of array) {\r\n\r\n\r\n\r\n if (node[propertyKey] == valueToMatch) \r\n {\r\n return node;\r\n }\r\n \r\n\r\n if (node.children.length > 0 ) {\r\n\r\n const child = findNode(node[childrenKey], valueToMatch, propertyKey, childrenKey );\r\n\r\n if (child) \r\n {\r\n return child;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport function findNodeAddParents(array, valueToMatch: any, propertyKey: string = 'id', childrenKey: string = 'children', parents = []) {\r\n\r\n for (const node of array) {\r\n\r\n if(!node.parentId)\r\n {\r\n parents = [];\r\n }\r\n\r\n if (node[propertyKey] == valueToMatch) \r\n {\r\n node.parents = parents;\r\n return node;\r\n }\r\n \r\n\r\n if (node.children.length > 0 ) {\r\n\r\n parents.push(node);\r\n\r\n const child = findNodeAddParents(node[childrenKey], valueToMatch, propertyKey, childrenKey, parents );\r\n\r\n if (child) \r\n {\r\n child.parents = parents;\r\n return child;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n// export function findNode(array, valueToMatch: any, propertyKey: string = 'id', childrenKey: string = 'children', parents = []) {\r\n// if (!array) { return; }\r\n\r\n// for (const item of array) {\r\n// // Test current object\r\n// if (item[propertyKey] === valueToMatch) { \r\n// item.parents = parents;\r\n// return item; \r\n// }\r\n\r\n\r\n// if (item[childrenKey]) {\r\n// parents.push(item);\r\n// }\r\n\r\n// // Test children recursively\r\n// const child = findNode(item[childrenKey], childrenKey, propertyKey, valueToMatch, parents);\r\n// if (child) { return child; }\r\n// }\r\n// }\r\n\r\nexport function shorten(str, maxLen, separator = ' ') {\r\n\r\n if (!str?.length) {\r\n return str;\r\n }\r\n\r\n if (str.length <= maxLen) return str;\r\n return str.substr(0, str.lastIndexOf(separator, maxLen)) + \"...\";\r\n}\r\n\r\n\r\n\r\nexport function generateId(length: number = 12): string {\r\n var result = '';\r\n var characters = '1234567890';\r\n var charactersLength = characters.length;\r\n for (var i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n}\r\n\r\nexport async function getFileFromUrl(url: string)\r\n{\r\n let fileName = url.split('/').pop();\r\n\r\n let response = await fetch(url);\r\n const contentType = response.headers.get('Content-Type');\r\n const blob = await response.blob();\r\n const file = new File([blob], fileName, {type: contentType });\r\n\r\n return file;\r\n}\r\n\r\n\r\nexport function reOrder(list, startIndex, endIndex) {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n\r\n return result;\r\n};\r\n\r\n\r\nexport function toSeoUrl(url) {\r\n\r\n if (!url) {\r\n return \"\";\r\n }\r\n\r\n url = url.toString() // Convert to string\r\n .normalize('NFD') // Change diacritics\r\n .replace(/[\\u0300-\\u036f]/g, '') // Remove illegal characters\r\n .replace(/\\s+/g, '-') // Change whitespace to dashes\r\n .toLowerCase() // Change to lowercase\r\n .replace(/&/g, '-and-') // Replace ampersand\r\n .replace(/[^a-z0-9\\-_]/g, '') // Remove anything that is not a letter, number or dash\r\n .replace(/-+/g, '-') // Remove duplicate dashes\r\n .replace(/^-*/, '') // Remove starting dashes\r\n .replace(/-*$/, ''); // Remove trailing dashes\r\n\r\n if(!url)\r\n {\r\n url = \"param\";\r\n }\r\n\r\n return url;\r\n}\r\n\r\nexport function getUserProfileUrl(username: string) {\r\n return \"/\" + toSeoUrl(username);\r\n}\r\n\r\nexport function getProductDetailUrl(username: string, product: Product) {\r\n return \"/\" + toSeoUrl(username) + \"/\" + toSeoUrl(product?.name) + \"/\" + product?.id;\r\n}\r\n\r\nexport function getProductUrl(product: Product) {\r\n return \"/\" + toSeoUrl(product.publicUserResponse.username) + \"/\" + toSeoUrl(product?.name) + \"/\" + product?.id;\r\n}\r\n\r\nexport function getProductDetailFullUrl(username: string, product: Product): string {\r\n return process.env.REACT_APP_BASE_URL + toSeoUrl(username) + \"/\" + toSeoUrl(product?.name) + \"/\" + product?.id;\r\n}\r\n\r\nexport function getUserStoreFullUrl(username: string) {\r\n return process.env.REACT_APP_BASE_URL + toSeoUrl(username);\r\n}\r\n\r\nexport function getUserStoreUrl(username: string, productCategoryId?: number) {\r\n if (productCategoryId) {\r\n return \"/\" + toSeoUrl(username) + \"/\" + productCategoryId;\r\n }\r\n else {\r\n return \"/\" + toSeoUrl(username);\r\n }\r\n\r\n}\r\n\r\nfunction getObjectFitSize(contains /* true = contain, false = cover */, containerWidth, containerHeight, width, height){\r\n var doRatio = width / height;\r\n var cRatio = containerWidth / containerHeight;\r\n var targetWidth = 0;\r\n var targetHeight = 0;\r\n var test = contains ? (doRatio > cRatio) : (doRatio < cRatio);\r\n\r\n if (test) {\r\n targetWidth = containerWidth;\r\n targetHeight = targetWidth / doRatio;\r\n } else {\r\n targetHeight = containerHeight;\r\n targetWidth = targetHeight * doRatio;\r\n }\r\n\r\n return {\r\n width: targetWidth,\r\n height: targetHeight,\r\n x: (containerWidth - targetWidth) / 2,\r\n y: (containerHeight - targetHeight) / 2\r\n };\r\n}\r\n\r\n\r\nexport function formatMoney(number: number, currencyCode: string = \"USD\"): string {\r\n\r\n let result = \"\";\r\n\r\n if (number) {\r\n if (currencyCode == \"LBP\") {\r\n result = (number).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \" L.L\";\r\n\r\n }\r\n else if (currencyCode == \"USD\") {\r\n result = \"$\" + (number).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else {\r\n result = (number).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n\r\nexport function createReadOnlyEditor(value: string, truncateCount: number = 0): any {\r\n if (value) {\r\n let valueParsed = JSON.parse(value);\r\n let valueEditorContent = stateFromHTML(valueParsed);\r\n\r\n if (truncateCount > 0) {\r\n return truncateReadOnlyEditor(EditorState.createWithContent(valueEditorContent), truncateCount);\r\n\r\n }\r\n else {\r\n return EditorState.createWithContent(valueEditorContent);\r\n }\r\n }\r\n else {\r\n return EditorState.createEmpty();\r\n }\r\n}\r\n\r\n\r\nfunction truncateReadOnlyEditor(editorState, charCount = 200) {\r\n const contentState = editorState.getCurrentContent();\r\n const blocks = contentState.getBlocksAsArray();\r\n\r\n let index = 0;\r\n let currentLength = 0;\r\n let isTruncated = false;\r\n const truncatedBlocks = [];\r\n\r\n while (!isTruncated && blocks[index]) {\r\n const block = blocks[index];\r\n const length = block.getLength();\r\n if (currentLength + length > charCount) {\r\n isTruncated = true;\r\n const truncatedText = block\r\n .getText()\r\n .slice(0, charCount - currentLength);\r\n const state = ContentState.createFromText(`${truncatedText}...`);\r\n truncatedBlocks.push(state.getFirstBlock());\r\n } else {\r\n truncatedBlocks.push(block);\r\n }\r\n currentLength += length + 1;\r\n index++;\r\n }\r\n\r\n if (isTruncated) {\r\n const state = ContentState.createFromBlockArray(truncatedBlocks);\r\n return EditorState.createWithContent(state);\r\n }\r\n\r\n return editorState;\r\n};\r\n","import React from \"react\";\r\nimport { AppContextModel } from '../models/context/App-Context-Model';\r\n\r\nconst AppContextModelDefault = new AppContextModel();\r\n\r\nexport const AppContext = React.createContext(AppContextModelDefault);\r\n","import { UserSessionResponse } from \"../response/user-session.response\";\r\n\r\nexport class AppContextModel\r\n{\r\n isAuthenticated?: boolean;\r\n setIsAuthenticated: any;\r\n\r\n currentUser: UserSessionResponse;\r\n setCurrentUser: any;\r\n\r\n}\r\n\r\n","import axios, { Method } from 'axios';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport class BaseService\r\n{\r\n protected baseUrl = process.env.REACT_APP_BASE_API;\r\n\r\n protected get(url: string, data?: any, isAbsoluteURL?: boolean): Promise\r\n {\r\n return this.makeRequest('GET', url, data, isAbsoluteURL);\r\n }\r\n \r\n protected post(url: string, data?: any, showSuccess: boolean = true, isAbsoluteURL?: boolean): Promise\r\n {\r\n return this.makeRequest('POST', url, data, showSuccess, isAbsoluteURL);\r\n }\r\n\r\n protected put(url: string, data?: any, showSuccess: boolean = true, isAbsoluteURL?: boolean): Promise\r\n {\r\n return this.makeRequest('PUT', url, data, showSuccess, isAbsoluteURL);\r\n }\r\n\r\n protected delete(url: string, data?: any, showSuccess: boolean = true, isAbsoluteURL?: boolean): Promise\r\n {\r\n return this.makeRequest('DELETE', url, data, showSuccess, isAbsoluteURL);\r\n }\r\n\r\n \r\n protected uploadPost(url: string, fileParam: any, data?: any, showSuccess: boolean = true, isAbsoluteURL?: boolean)\r\n {\r\n return this.makeRequestUpload('POST', url, fileParam, data, showSuccess, isAbsoluteURL);\r\n }\r\n\r\n protected uploadPut(url: string, fileParam: any, showSuccess: boolean = true, isAbsoluteURL?: boolean)\r\n {\r\n return this.makeRequestUpload('PUT', url, fileParam, showSuccess, isAbsoluteURL);\r\n }\r\n\r\n \r\n private makeRequest(method:Method, url: string, data?: any, showSuccess: boolean = true, isAbsoluteURL?: boolean)\r\n {\r\n\r\n let fixedURL: string;\r\n \r\n if (isAbsoluteURL == true)\r\n {\r\n fixedURL = url;\r\n }\r\n else\r\n {\r\n fixedURL = this.baseUrl + url;\r\n }\r\n\r\n let headers: any = {};\r\n\r\n let authToken = localStorage.getItem(\"access_token\");\r\n if (authToken != null) {\r\n headers.Authorization = `Bearer ${authToken.replace(/['\"]+/g, '')}`;\r\n }\r\n\r\n\r\n return axios({\r\n url: fixedURL,\r\n method: method,\r\n data: data,\r\n params: method == \"GET\" ? data : null,\r\n headers: headers\r\n })\r\n .then(response => {\r\n\r\n if(method != \"GET\" && showSuccess)\r\n {\r\n toast.success(\"Success\", {\r\n autoClose: 1000,\r\n });\r\n }\r\n\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n\r\n toast.error(this.getErrorMessage(error));\r\n\r\n throw error;\r\n });\r\n }\r\n\r\n\r\n private getErrorMessage(error: any) : string\r\n {\r\n\r\n if(error?.response?.data?.message)\r\n { \r\n return \"Error. \" + error.response.data.message;\r\n }\r\n else\r\n {\r\n return \"Error.\";\r\n }\r\n }\r\n\r\n private makeRequestUpload(method:Method, url: string, fileParam: any, data?: any, showSuccess: boolean = true, isAbsoluteURL?: boolean)\r\n {\r\n\r\n let formData: FormData = new FormData();\r\n\r\n // is a singe file => add it\r\n if (fileParam instanceof File)\r\n {\r\n formData.append(fileParam.name, fileParam );\r\n }\r\n else if (typeof fileParam == 'object' && fileParam?.length > 0 && fileParam[0] instanceof File )\r\n {\r\n for (let i = 0; i < fileParam.length; i++)\r\n {\r\n let file = fileParam[i];\r\n formData.append(file.name, file);\r\n }\r\n }\r\n else if (fileParam instanceof FileList)\r\n {\r\n for (let i = 0; i < fileParam.length; i++)\r\n {\r\n let file = fileParam[i];\r\n formData.append(file.name, file);\r\n }\r\n }\r\n\r\n\r\n\r\n if(data && typeof data == 'object')\r\n {\r\n if(Array.isArray(data))\r\n {\r\n data.forEach(dataItem => {\r\n for ( var key in dataItem ) \r\n {\r\n formData.append(key, dataItem[key]);\r\n }\r\n });\r\n }\r\n else\r\n {\r\n for ( var key in data ) \r\n {\r\n formData.append(key, data[key]);\r\n }\r\n }\r\n \r\n }\r\n\r\n let fixedURL: string;\r\n \r\n if (isAbsoluteURL == true)\r\n {\r\n fixedURL = url;\r\n }\r\n else\r\n {\r\n fixedURL = this.baseUrl + url;\r\n }\r\n\r\n let headers: any = {};\r\n\r\n let authToken = localStorage.getItem(\"access_token\");\r\n if (authToken != null) {\r\n headers.Authorization = `Bearer ${authToken.replace(/['\"]+/g, '')}`;\r\n headers[\"Content-Type\"] = 'multipart/form-data';\r\n }\r\n\r\n return axios({\r\n url: fixedURL,\r\n method: method,\r\n data: formData, \r\n headers: headers\r\n })\r\n .then(response => {\r\n \r\n if(method != \"GET\" && showSuccess) \r\n {\r\n toast.success(\"Success\",{\r\n autoClose: 2000,\r\n });\r\n }\r\n\r\n return response.data;\r\n })\r\n .catch(error => {\r\n\r\n toast.error(this.getErrorMessage(error));\r\n\r\n throw error;\r\n });\r\n }\r\n \r\n \r\n}","export enum ExternalLoginProvider\r\n{\r\n Facebook = 1\r\n}\r\n\r\nexport enum NotificationTypeEnum\r\n{\r\n ProductLike = 1,\r\n TweetLike = 2,\r\n NewProduct = 3,\r\n NewProductComment = 4,\r\n CommentMention = 5,\r\n NewFollower = 6\r\n}\r\n\r\nexport enum SortEnum\r\n{\r\n DateDesc = 1,\r\n DateAsc = 2,\r\n NameDesc = 3,\r\n NameAsc = 4,\r\n PriceDesc = 5,\r\n PriceAsc = 6,\r\n}\r\n\r\nexport enum ProductStatusEnum\r\n{\r\n Enabled = 1,\r\n Disabled = 2,\r\n OutOfStock = 3\r\n}\r\n\r\nexport enum ProductFeatureStatusEnum\r\n{\r\n Created = 1,\r\n PaymentWaitingConfirmation = 2,\r\n PaymentConfirmed = 3,\r\n Cancelled = 4,\r\n Deleted = 5,\r\n}\r\n\r\nexport enum UserLevelEnum\r\n{\r\n Admin = 1,\r\n PowerUser = 2,\r\n RegularUser = 3,\r\n BusinessUser = 4,\r\n}\r\n\r\n\r\nexport enum CurrencyEnum\r\n{\r\n USD = 1,\r\n LBP = 2\r\n}\r\n","import React from 'react';\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nconst RouteGuard = ({ component: Component, auth, ...rest }) => (\r\n (\r\n auth === true\r\n ? \r\n : \r\n )} />\r\n)\r\n\r\nexport default RouteGuard;","\r\nimport React from 'react';\r\n\r\n\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n}\r\n\r\n\r\nexport default class MaintenanceReadonly extends React.Component {\r\n\r\n\r\n maintenanceImageFullUrl : string = process.env.REACT_APP_CLOUD_BASE_URL_PUBLIC_IMAGES + \"construction-warning-sign-icon-concept.jpg\";\r\n\r\n state: IState = {\r\n };\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n async componentDidMount() {\r\n document.title = 'Showqace | Maintenance Notice';\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n\r\n
\r\n\r\n
\r\n \"construction-warning-sign\"\r\n
\r\n\r\n\r\n
\r\n

\r\n Website Under Maintenance\r\n

\r\n
\r\n

\r\n Website is currently in read-only mode.

\r\n The good news is that you will be able to browser, search, and contact sellers.

\r\n The bad news is that new users cannot be created and sellers cannot add new items or update old items.

\r\n We thank you for your patience as we work on fixing the issue.

\r\n\r\n Disabled Features:\r\n

\r\n
    \r\n
  • Login/Register
  • \r\n
  • Product Create/Update/Delete
  • \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport { VisibilityContext } from \"react-horizontal-scrolling-menu\";\r\nimport { formatMoney, getUserProfileUrl, getUserStoreUrl, shorten } from \"../../lib/common-helper\";\r\nimport { ProductCategory } from '../../models/product-category';\r\nimport { PublicUserResponse } from \"../../models/response/public-user.response\";\r\nimport { StoreCategory } from '../../models/store-category';\r\nimport { Product } from '../../models/product';\r\nimport { ShowqaceCategory } from '../../models/showqace-category';\r\n\r\nexport function ScrollShowqaceCategory({ itemId, showqaceCategory, fireClickAction }:\r\n { itemId: string, showqaceCategory: ShowqaceCategory, fireClickAction: any }) {\r\n const visibility = React.useContext(VisibilityContext);\r\n\r\n const visible = visibility.isItemVisible(itemId);\r\n\r\n // function goToStorePage()\r\n // {\r\n // window.location.href = getUserStoreUrl(publicUserResponse.username, productCategory.id);\r\n // return;\r\n // }\r\n\r\n return (\r\n fireClickAction()}\r\n className=\"text-center mt-3\"\r\n style={{\r\n maxWidth: \"150px\",\r\n // border: \"1px solid\",\r\n display: \"inline-block\",\r\n margin: \"0 6px\",\r\n // width: \"160px\",\r\n userSelect: \"none\",\r\n }}\r\n tabIndex={0}\r\n >\r\n
\r\n {/* */}\r\n {shorten(showqaceCategory.name, 30)}\r\n
\r\n\r\n\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ProductCard from \"../../components/product-card/ProductCard\";\r\nimport { AppContextModel } from \"../../models/context/App-Context-Model\";\r\nimport { Product } from '../../models/product';\r\nimport { ProductService } from \"../../services/product.service\";\r\nimport { AppContext } from '../../lib/app-context';\r\nimport CreateUserTweet from '../../components/create-user-tweet/CreateUserTweet';\r\nimport UserTweetList from '../../components/user-tweet-list/UserTweetList';\r\nimport { UserTweetService } from '../../services/user-tweet.service';\r\nimport { UserTweet } from '../../models/user-tweet';\r\nimport { UserService } from '../../services/user.service';\r\nimport { PublicUserResponse } from '../../models/response/public-user.response';\r\nimport UserList from '../../components/user-list/UserList';\r\nimport LazyLoad from 'react-lazyload';\r\nimport { MergeService } from '../../services/merge.service';\r\nimport './ProductShowqaceCategoryLevelOne.scss';\r\n\r\nimport handleViewport from 'react-in-viewport';\r\nimport ViewportBlockSection from '../../components/viewport-block-section/ViewportBlockSection';\r\nimport { CommonService } from \"../../services/common.service\";\r\nimport { ShowqaceCategory } from \"../../models/showqace-category\";\r\nimport { ScrollMenu } from 'react-horizontal-scrolling-menu';\r\nimport { LeftArrow, RightArrow } from \"../../components/horizontal-scroll/arrows\";\r\nimport { ScrollProduct } from \"../../components/horizontal-scroll/scroll-product\";\r\nimport { ScrollShowqaceCategory } from \"../../components/horizontal-scroll/scroll-showqace-category\";\r\n\r\n\r\n\r\n\r\nconst ViewportBlock = handleViewport(ViewportBlockSection, null, { disconnectOnLeave: true } /** options: {}, config: {} **/);\r\n\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n products: Product[];\r\n loadingProducts: boolean,\r\n page: number,\r\n prevY: number,\r\n allProductsLoaded: boolean,\r\n showqaceCategory: ShowqaceCategory\r\n // latestUsersWithProduct: PublicUserResponse[];\r\n}\r\n\r\n\r\nexport default class ProductShowqaceCategoryLevelOne extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n mergeService: MergeService = new MergeService();\r\n commonService: CommonService = new CommonService();\r\n productService: ProductService = new ProductService();\r\n userService: UserService = new UserService();\r\n\r\n observer: IntersectionObserver;\r\n loadingRef: any;\r\n\r\n showqaceCategoryId: number;\r\n\r\n state: IState = {\r\n products: [],\r\n loadingProducts: false,\r\n page: 1,\r\n prevY: 0,\r\n allProductsLoaded: false,\r\n showqaceCategory: null\r\n // latestUsersWithProduct: []\r\n\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.showqaceCategoryId = +props.match.params.showqaceCategoryId;\r\n }\r\n\r\n\r\n async componentDidMount() {\r\n\r\n document.title = 'Showqace | The e-showcase';\r\n\r\n\r\n this.commonService.getShowqaceCategory(this.showqaceCategoryId).then(showqaceCategory => {\r\n this.setState({ showqaceCategory: showqaceCategory });\r\n })\r\n\r\n\r\n this.getAppendProducts(1);\r\n\r\n\r\n var options = {\r\n root: null,\r\n rootMargin: \"0px\",\r\n threshold: 1.0\r\n };\r\n\r\n this.observer = new IntersectionObserver(\r\n this.handleObserver.bind(this),\r\n options\r\n );\r\n\r\n if (this.loadingRef) {\r\n this.observer.observe(this.loadingRef);\r\n }\r\n\r\n }\r\n\r\n\r\n getAppendProducts(page: number) {\r\n\r\n if (this.showqaceCategoryId) {\r\n this.setState({ loadingProducts: true });\r\n this.productService.getProductsShowqaceCategoryLevelOne(this.showqaceCategoryId, page, 5).then(nextPageproducts => {\r\n\r\n this.setState({ products: [...this.state.products, ...nextPageproducts] });\r\n this.setState({ loadingProducts: false });\r\n\r\n //all items loaded\r\n if (nextPageproducts?.length == 0) {\r\n if (this.loadingRef) {\r\n this.observer?.unobserve(this.loadingRef);\r\n }\r\n\r\n this.setState({ allProductsLoaded: true });\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.loadingRef) {\r\n this.observer?.observe(this.loadingRef)\r\n }\r\n }\r\n\r\n handleObserver(entities, observer) {\r\n const y = entities[0].boundingClientRect.y;\r\n if (this.state.prevY > y) {\r\n // const lastProduct = this.state.products[this.state.products.length - 1];\r\n // const curPage = lastProduct.id;\r\n let nextPage = ++this.state.page;\r\n this.getAppendProducts(nextPage);\r\n this.setState({ page: nextPage });\r\n }\r\n this.setState({ prevY: y });\r\n }\r\n\r\n showqaceCategoryCardClicked(showqaceCategory: ShowqaceCategory) {\r\n this.props.history.push(\"/sub-category/\" + showqaceCategory.id);\r\n }\r\n\r\n\r\n render() {\r\n\r\n // To change the loading icon behavior\r\n const loadingTextCSS = { display: this.state.loadingProducts || this.state.allProductsLoaded ? \"block\" : \"none\" };\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {\r\n // this.props.history.action !== 'POP' &&\r\n \r\n \r\n \r\n }\r\n\r\n

\r\n {this.state.showqaceCategory?.name}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n {\r\n this.state.showqaceCategory?.children.map((showqaceCategory) =>\r\n (\r\n\r\n this.showqaceCategoryCardClicked(showqaceCategory)}\r\n />\r\n\r\n // this.initAndOnPropChange(this.state.userProductResponse, productCategory.id)}\r\n // // publicUserResponse={this.state.userProductResponse.publicUserResponse}\r\n // category={productCategory}\r\n // itemId={productCategory.id.toString()}\r\n // key={productCategory.id}\r\n // />\r\n\r\n )\r\n )\r\n }\r\n\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n {\r\n this.state.products?.map((product) =>\r\n (\r\n
\r\n {/* this.productViewed(product.id)} /> */}\r\n \r\n
\r\n )\r\n )}\r\n
\r\n\r\n\r\n\r\n {\r\n !this.state.allProductsLoaded &&\r\n (this.loadingRef = loadingRef)}\r\n className=\"mb-4\"\r\n >\r\n {/* Loading... */}\r\n\r\n {\r\n this.state.page == 1 &&\r\n Loading...\r\n }\r\n\r\n {\r\n this.state.page != 1 &&\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n }\r\n\r\n
\r\n }\r\n {\r\n this.state.allProductsLoaded &&\r\n
That's all folks!
\r\n }\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ProductCard from \"../../components/product-card/ProductCard\";\r\nimport { AppContextModel } from \"../../models/context/App-Context-Model\";\r\nimport { Product } from '../../models/product';\r\nimport { ProductService } from \"../../services/product.service\";\r\nimport { AppContext } from '../../lib/app-context';\r\nimport CreateUserTweet from '../../components/create-user-tweet/CreateUserTweet';\r\nimport UserTweetList from '../../components/user-tweet-list/UserTweetList';\r\nimport { UserTweetService } from '../../services/user-tweet.service';\r\nimport { UserTweet } from '../../models/user-tweet';\r\nimport { UserService } from '../../services/user.service';\r\nimport { PublicUserResponse } from '../../models/response/public-user.response';\r\nimport UserList from '../../components/user-list/UserList';\r\nimport LazyLoad from 'react-lazyload';\r\nimport { MergeService } from '../../services/merge.service';\r\nimport './ProductShowqaceCategoryLevelTwo.scss';\r\n\r\nimport handleViewport from 'react-in-viewport';\r\nimport ViewportBlockSection from '../../components/viewport-block-section/ViewportBlockSection';\r\nimport { CommonService } from \"../../services/common.service\";\r\nimport { ShowqaceCategory } from \"../../models/showqace-category\";\r\n\r\n\r\n\r\n\r\nconst ViewportBlock = handleViewport(ViewportBlockSection, null, { disconnectOnLeave: true } /** options: {}, config: {} **/);\r\n\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n products: Product[];\r\n loadingProducts: boolean,\r\n page: number,\r\n prevY: number,\r\n allProductsLoaded: boolean,\r\n showqaceCategory: ShowqaceCategory\r\n // latestUsersWithProduct: PublicUserResponse[];\r\n}\r\n\r\n\r\nexport default class ProductShowqaceCategoryLevelTwo extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n mergeService: MergeService = new MergeService();\r\n commonService: CommonService = new CommonService();\r\n productService: ProductService = new ProductService();\r\n userService: UserService = new UserService();\r\n\r\n observer: IntersectionObserver;\r\n loadingRef: any;\r\n\r\n showqaceCategoryId: number;\r\n\r\n state: IState = {\r\n products: [],\r\n loadingProducts: false,\r\n page: 1,\r\n prevY: 0,\r\n allProductsLoaded: false,\r\n showqaceCategory: null\r\n // latestUsersWithProduct: []\r\n\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.showqaceCategoryId = +props.match.params.showqaceCategoryId;\r\n }\r\n\r\n\r\n async componentDidMount() {\r\n\r\n document.title = 'Showqace | The e-showcase';\r\n\r\n\r\n this.commonService.getShowqaceCategory(this.showqaceCategoryId).then(showqaceCategory => {\r\n this.setState({ showqaceCategory: showqaceCategory });\r\n })\r\n\r\n\r\n this.getAppendProducts(1);\r\n\r\n\r\n var options = {\r\n root: null,\r\n rootMargin: \"0px\",\r\n threshold: 1.0\r\n };\r\n\r\n this.observer = new IntersectionObserver(\r\n this.handleObserver.bind(this),\r\n options\r\n );\r\n\r\n if (this.loadingRef) {\r\n this.observer.observe(this.loadingRef);\r\n }\r\n\r\n }\r\n\r\n\r\n getAppendProducts(page: number) {\r\n\r\n if (this.showqaceCategoryId) {\r\n this.setState({ loadingProducts: true });\r\n this.productService.getProductsShowqaceCategoryLevelTwo(this.showqaceCategoryId, page, 5).then(nextPageproducts => {\r\n\r\n this.setState({ products: [...this.state.products, ...nextPageproducts] });\r\n this.setState({ loadingProducts: false });\r\n\r\n //all items loaded\r\n if (nextPageproducts?.length == 0) {\r\n if (this.loadingRef) {\r\n this.observer?.unobserve(this.loadingRef);\r\n }\r\n\r\n this.setState({ allProductsLoaded: true });\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.loadingRef) {\r\n this.observer?.observe(this.loadingRef)\r\n }\r\n }\r\n\r\n handleObserver(entities, observer) {\r\n const y = entities[0].boundingClientRect.y;\r\n if (this.state.prevY > y) {\r\n // const lastProduct = this.state.products[this.state.products.length - 1];\r\n // const curPage = lastProduct.id;\r\n let nextPage = ++this.state.page;\r\n this.getAppendProducts(nextPage);\r\n this.setState({ page: nextPage });\r\n }\r\n this.setState({ prevY: y });\r\n }\r\n\r\n showqaceCategoryCardClicked(showqaceCategory: ShowqaceCategory) {\r\n\r\n }\r\n\r\n\r\n render() {\r\n\r\n // To change the loading icon behavior\r\n const loadingTextCSS = { display: this.state.loadingProducts || this.state.allProductsLoaded ? \"block\" : \"none\" };\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {\r\n // this.props.history.action !== 'POP' &&\r\n \r\n \r\n \r\n }\r\n\r\n

\r\n {this.state.showqaceCategory?.name}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n {\r\n this.state.products?.map((product) =>\r\n (\r\n
\r\n {/* this.productViewed(product.id)} /> */}\r\n \r\n
\r\n )\r\n )}\r\n
\r\n\r\n\r\n {\r\n !this.state.allProductsLoaded &&\r\n (this.loadingRef = loadingRef)}\r\n className=\"mb-4\"\r\n >\r\n {/* Loading... */}\r\n\r\n {\r\n this.state.page == 1 &&\r\n Loading...\r\n }\r\n\r\n {\r\n this.state.page != 1 &&\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n }\r\n\r\n
\r\n }\r\n {\r\n this.state.allProductsLoaded &&\r\n
That's all folks!
\r\n }\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\n","import { Switch, Route } from \"react-router-dom\";\r\nimport GuardedRoute from \"../route-guard/RouteGuard\"\r\nimport React, { Suspense } from \"react\";\r\nimport { AppContext } from '../../lib/app-context';\r\nimport MaintenanceReadonly from \"../../pages/maintenance-readonly/MaintenanceReadonly\";\r\nimport ProductShowqaceCategoryLevelOne from \"../../pages/product-showqace-category-level-one/ProductShowqaceCategoryLevelOne\";\r\nimport ProductShowqaceCategoryLevelTwo from \"../../pages/product-showqace-category-level-two/ProductShowqaceCategoryLevelTwo\";\r\n\r\n\r\nconst AboutUs = React.lazy(() => import('../../pages/about-us/AboutUs'));\r\nconst ContactUs = React.lazy(() => import('../../pages/contact-us/ContactUs'));\r\nconst Login = React.lazy(() => import('../../pages/login/Login'));\r\nconst Privacy = React.lazy(() => import('../../pages/privacy/Privacy'));\r\nconst UserDataDeletion = React.lazy(() => import('../../pages/user-data-deletion/UserDataDeletion'));\r\nconst Notification = React.lazy(() => import('../../pages/notification/Notification'));\r\nconst UserSettings = React.lazy(() => import('../../pages/user-settings/UserSettings'));\r\nconst StoreDiscovery = React.lazy(() => import('../../pages/store-discovery/StoreDiscovery'));\r\n// const UserProducts = React.lazy(() => import('../../pages/user-products/UserProducts'));\r\nconst Verify = React.lazy(() => import('../../pages/verify/Verify'));\r\nconst UserTweetDetail = React.lazy(() => import('../../pages/user-tweet-detail/User-Tweet-Detail'));\r\nconst UserProfile = React.lazy(() => import('../../pages/user-profile/UserProfile'));\r\nconst ProductList = React.lazy(() => import('../../pages/product-list/Product-List'));\r\nconst ProductSave = React.lazy(() => import('../../pages/product-save/Product-Save'));\r\nconst ProductCategorySave = React.lazy(() => import('../../pages/product-category-save/Product-Category-Save'));\r\nconst ProductDetail = React.lazy(() => import('../../pages/product-detail/Product-Detail'));\r\n\r\nconst Promotion = React.lazy(() => import('../../pages/promotion/Promotion'));\r\n\r\nconst HomeUser = React.lazy(() => import('../../pages/home-user/HomeUser'));\r\n\r\nconst Home = React.lazy(() => import('../../pages/home/Home'));\r\n\r\n\r\n\r\n\r\nexport default class AppRouter extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n Loading...\r\n
\r\n }>\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n","\r\nimport React, { Fragment } from \"react\";\r\nimport { AppContext } from '../../lib/app-context';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n useHistory,\r\n Redirect,\r\n Link,\r\n withRouter\r\n} from \"react-router-dom\";\r\nimport { AsyncTypeahead } from 'react-bootstrap-typeahead';\r\nimport { UserService } from '../../services/user.service';\r\nimport { PublicUserResponse } from '../../models/response/public-user.response';\r\nimport './NavBar.scss';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { getProductDetailFullUrl, getProductUrl, getUserProfileUrl, getUserStoreUrl, toSeoUrl } from '../../lib/common-helper';\r\nimport { UserLevelEnum } from \"../../lib/enums\";\r\nimport { ProductService } from \"../../services/product.service\";\r\nimport { Product } from \"../../models/product\";\r\n\r\n\r\nclass NavBar extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n productService: ProductService = new ProductService();\r\n userService: UserService = new UserService();\r\n notificationService: NotificationService = new NotificationService();\r\n\r\n state: any = {\r\n defaultImage: '',\r\n searchIsLoading: false,\r\n searchOptions: [],\r\n searchSelections: [],\r\n redirect: null,\r\n notificationsNumber: 0\r\n }\r\n\r\n async componentDidMount() {\r\n this.setState({ defaultImage: process.env.REACT_APP_DEFAULT_USER_IMAGE });\r\n\r\n if (this.context?.currentUser?.userId) {\r\n var notifications = await this.notificationService.getCurrentUserNotifications();\r\n\r\n var newNotification = notifications.filter(x => x.viewed == false);\r\n\r\n if (newNotification?.length > 0) {\r\n this.setState({ notificationsNumber: newNotification.length });\r\n }\r\n }\r\n }\r\n\r\n handleSearch(searchText: any) {\r\n this.setState({ searchIsLoading: true });\r\n\r\n this.productService.searchAllProducts(searchText).then(result => {\r\n this.setState({ searchOptions: result });\r\n this.setState({ searchIsLoading: false });\r\n });\r\n\r\n\r\n // this.userService.searchUsers(searchText).then(result => {\r\n // this.setState({ searchOptions: result });\r\n // this.setState({ searchIsLoading: false });\r\n // });\r\n\r\n\r\n }\r\n\r\n searchOnSelect(products: Product[]) {\r\n // this.props.history.push(getUserProfileUrl(publicUserResponse[0].username));\r\n this.props.history.push(getProductUrl(products[0]));\r\n }\r\n\r\n logout() {\r\n this.context.setIsAuthenticated(false);\r\n this.context.setCurrentUser(null);\r\n localStorage.removeItem(\"access_token\");\r\n }\r\n\r\n setlinkActive(linkName: string) {\r\n let currentUrl = this.props.history?.location?.pathname;\r\n\r\n if (currentUrl) {\r\n if (linkName == 'aboutUs') {\r\n if (currentUrl.endsWith(\"about-us\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'storeDiscovery') {\r\n if (currentUrl.endsWith(\"store-discovery\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'notifications') {\r\n if (currentUrl.endsWith(\"notifications\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'createProduct') {\r\n if (currentUrl.endsWith(\"save/0\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'login') {\r\n if (currentUrl.endsWith(\"login\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'products') {\r\n if (currentUrl.endsWith(\"user/products\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'productCategories') {\r\n if (currentUrl.endsWith(\"/product-category-save\")) {\r\n return \"active\";\r\n }\r\n }\r\n else if (linkName == 'publicUserProducts') {\r\n if (currentUrl.endsWith(\"/\" + toSeoUrl(this.context?.currentUser?.username))) {\r\n return \"active\";\r\n }\r\n }\r\n }\r\n\r\n return \"\";\r\n\r\n }\r\n\r\n\r\n render() {\r\n\r\n if (this.state.redirect) {\r\n return \r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\nexport default withRouter(NavBar);","\r\nimport React, { Fragment } from \"react\";\r\nimport { AppContext } from '../../lib/app-context';\r\n\r\nimport './Footer.scss';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport class Footer extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n state: any = {\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ defaultImage: process.env.REACT_APP_DEFAULT_USER_IMAGE });\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n Copyright © {new Date().getFullYear()} Showqace. All rights reserved\r\n
\r\n\r\n
\r\n By  \r\n \r\n Moonlight Technology\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n// export default withRouter(Footer);","import React from \"react\";\r\n// import logo from \"../../logo.svg\";\r\nimport AppRouter from \"../app-router/AppRouter\";\r\nimport NavBar from \"../../components/nav/NavBar\";\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\nimport { AppContext } from '../../lib/app-context';\r\nimport { AppContextModel } from '../../models/context/App-Context-Model';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ToastContainer } from \"react-toastify\";\r\nimport { loadProgressBar } from 'x-axios-progress-bar';\r\nimport { Footer } from \"../footer/Footer\"\r\n\r\n\r\n// Import Swiper styles\r\nimport 'swiper/swiper-bundle.min.css'\r\n\r\n// end swipper CSS\r\n\r\nimport 'react-sortable-tree/style.css';\r\nimport 'bootstrap-icons/font/bootstrap-icons.css';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport 'x-axios-progress-bar/dist/nprogress.css'\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css'\r\n\r\n\r\n\r\nimport \"./App.scss\";\r\n\r\n\r\n\r\ninterface IProps {\r\n}\r\n\r\n// export interface IAppState {\r\n// isAuthenticated?: boolean;\r\n// setIsAuthenticated: any\r\n// }\r\n\r\n\r\nexport default class App extends React.Component {\r\n\r\n authService: AuthService = new AuthService();\r\n\r\n state =\r\n {\r\n isAuthenticated: undefined,\r\n setIsAuthenticated: (value) => { },\r\n currentUser: null,\r\n setCurrentUser: (value) => { }\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n loadProgressBar({ easing: 'ease', speed: 500, showSpinner: false });\r\n\r\n this.state.setIsAuthenticated = (value) => {\r\n this.setState({ isAuthenticated: value })\r\n };\r\n\r\n this.state.setCurrentUser = (value) => {\r\n this.setState({ currentUser: value })\r\n };\r\n\r\n }\r\n\r\n\r\n componentDidMount() {\r\n\r\n this.getCurrentUser();\r\n\r\n }\r\n\r\n async getCurrentUser() {\r\n let access_token = localStorage.getItem(\"access_token\");\r\n\r\n if (!access_token) {\r\n this.state.setIsAuthenticated(false);\r\n }\r\n else {\r\n this.authService.getCurrentUser().then(user => {\r\n this.state.setCurrentUser(user);\r\n this.state.setIsAuthenticated(true);\r\n })\r\n .catch(() => {\r\n this.state.setIsAuthenticated(false);\r\n this.state.setCurrentUser(null);\r\n localStorage.removeItem(\"access_token\");\r\n });\r\n\r\n return true\r\n }\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n <>\r\n\r\n \r\n\r\n
\r\n\r\n\r\n \r\n {/* {\r\n this.state.isAuthenticated === true &&\r\n
\r\n Authenticated\r\n
\r\n }\r\n {\r\n this.state.isAuthenticated === false &&\r\n
\r\n Need to login\r\n
\r\n }\r\n {\r\n this.state.isAuthenticated === null &&\r\n
\r\n is NULL\r\n
\r\n }\r\n {\r\n this.state.isAuthenticated === undefined &&\r\n
\r\n is undefined\r\n
\r\n } */}\r\n\r\n {(this.state.isAuthenticated === true || this.state.isAuthenticated === false) &&\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n }\r\n\r\n {/*
This is the header
*/}\r\n {/*
\r\n

Main page content here, add more if you want to see the footer push down.

\r\n
*/}\r\n {/*
Sticky footer
*/}\r\n\r\n\r\n\r\n \r\n
\r\n\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.scss';\r\nimport App from './components/app/App';\r\nimport reportWebVitals from './reportWebVitals';\r\n// import 'jquery/dist/jquery.min.js';\r\n\r\n// import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport 'bootstrap/scss/bootstrap.scss';\r\nimport 'bootstrap/dist/js/bootstrap.min.js';\r\n\r\nimport '@fortawesome/fontawesome-free/css/all.css';\r\n\r\nimport * as Sentry from \"@sentry/react\";\r\nimport { Integrations } from '@sentry/tracing';\r\n\r\n\r\nimport TimeAgo from 'javascript-time-ago';\r\nimport en from 'javascript-time-ago/locale/en-AU';\r\nTimeAgo.addDefaultLocale(en);\r\n\r\nlet sentryEnabled = process.env.REACT_APP_SENTRY_ENABLED == \"true\" ? true : false;\r\n\r\nif(sentryEnabled)\r\n{\r\n Sentry.init({\r\n dsn: process.env.REACT_APP_SENTRY_DSN,\r\n integrations: [new Integrations.BrowserTracing()],\r\n \r\n // Set tracesSampleRate to 1.0 to capture 100%\r\n // of transactions for performance monitoring.\r\n // We recommend adjusting this value in production\r\n tracesSampleRate: +process.env.REACT_APP_SENTRY_TRACESSAMPLERATE,\r\n\r\n debug: process.env.REACT_APP_SENTRY_DEBUG === 'true'\r\n });\r\n}\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import { PublicUserResponse } from \"../models/response/public-user.response\";\r\nimport {BaseService} from \"./base.service\";\r\nimport { Product } from '../models/product';\r\nimport { KeyValue } from \"../models/key-value\";\r\nimport { ProductLite } from \"../models/product-lite\";\r\n\r\n\r\nexport class ProductService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"products/\";\r\n\r\n getListByProductCategoryId(productCategoryId: number) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"productcategories/\" + productCategoryId);\r\n }\r\n\r\n getLatestByUsername(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"latest/users/\" + username);\r\n }\r\n\r\n getProduct(id: number) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + id);\r\n }\r\n\r\n getStoreOtherProducts(productId: number) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getStoreOtherProducts/\" + productId);\r\n }\r\n\r\n searchAllProducts(searchText: number) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"searchAllProducts/\" + searchText);\r\n }\r\n\r\n\r\n \r\n\r\n getProductsAsKeyValues() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getProductsAsKeyValues/\");\r\n }\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n getRandomProducts() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getRandomProducts\");\r\n }\r\n\r\n \r\n getProductFeatureProducts() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getProductFeatureProducts\");\r\n }\r\n\r\n\r\n\r\n getListUnSpecified(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"users/\" + username);\r\n }\r\n\r\n createProduct(product: Product, showSuccess: boolean = true) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE, product, showSuccess)\r\n }\r\n\r\n updateProduct(product: Product, showSuccess: boolean = true) : Promise\r\n {\r\n return this.put(this.PRIMARY_RESOURCE + product.id, product, showSuccess)\r\n }\r\n\r\n upsertProduct(product: Product, showSuccess: boolean = true)\r\n {\r\n if(product.id)\r\n {\r\n return this.updateProduct(product, showSuccess);\r\n }\r\n else\r\n {\r\n return this.createProduct(product, showSuccess);\r\n }\r\n }\r\n\r\n getLatestForHomepage() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"homepage\");\r\n }\r\n\r\n getProductsForHomepage(page: number, pageSize?: number) : Promise\r\n {\r\n if(!pageSize)\r\n {\r\n pageSize = 10;\r\n }\r\n\r\n return this.get(this.PRIMARY_RESOURCE + \"homepage/\" + page + \"/\" + pageSize);\r\n }\r\n\r\n getProductsShowqaceCategoryLevelOne(showqaceCategoryId: number, page: number, pageSize?: number) : Promise\r\n {\r\n if(!pageSize)\r\n {\r\n pageSize = 10;\r\n }\r\n\r\n return this.get(this.PRIMARY_RESOURCE + \"getProductsShowqaceCategoryLevelOne/\" + showqaceCategoryId + \"/\" + page + \"/\" + pageSize);\r\n }\r\n\r\n getProductsShowqaceCategoryLevelTwo(showqaceCategoryId: number, page: number, pageSize?: number) : Promise\r\n {\r\n if(!pageSize)\r\n {\r\n pageSize = 10;\r\n }\r\n\r\n return this.get(this.PRIMARY_RESOURCE + \"getProductsShowqaceCategoryLevelTwo/\" + showqaceCategoryId + \"/\" + page + \"/\" + pageSize);\r\n }\r\n\r\n getCurrentUserProducts() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"currentUser\");\r\n }\r\n\r\n\r\n \r\n getCurrentUserProductsLite() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getCurrentUserProductsLite\");\r\n }\r\n\r\n getStoreProducts(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"stores/\" + username + \"/getStoreProducts\");\r\n }\r\n\r\n \r\n // stores/{userId}/getStoreProducts\r\n\r\n productViewed(productId: number): Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + productId + \"/viewed\", null, false);\r\n }\r\n\r\n // [HttpGet(\"search/{searchText}/users/{username}\")]\r\n // public IActionResult SearchProducts(string searchText, string username)\r\n\r\n searchProducts(searchText: string, username: string)\r\n {\r\n searchText = encodeURIComponent(searchText);\r\n username = encodeURIComponent(username);\r\n\r\n return this.get(this.PRIMARY_RESOURCE + \"search/\" + searchText + \"/users/\" + username );\r\n }\r\n\r\n deleteProduct(id: number) : Promise\r\n {\r\n return this.delete(this.PRIMARY_RESOURCE + id);\r\n }\r\n\r\n \r\n\r\n duplicateProduct(id: number) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + id + \"/duplicate\");\r\n }\r\n \r\n\r\n\r\n\r\n}","import { ChangePasswordRequest } from \"../models/request/change-password.request\";\r\nimport { PublicUserResponse } from \"../models/response/public-user.response\";\r\nimport { UserProductResponse } from \"../models/response/user-product.response\";\r\nimport {BaseService} from \"./base.service\";\r\nimport { ProfilePageResponse } from '../models/response/profile-page-response';\r\nimport { StoreDiscoveryResponse } from \"../models/response/store-discovery-response\";\r\nimport { UpdateBusinessUserRequest } from '../models/request/update-business-user.request';\r\n\r\n\r\nexport class UserService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"users/\";\r\n\r\n\r\n verifyUser(verificationCode: string) : Promise\r\n {\r\n return this.put(this.PRIMARY_RESOURCE + \"verify/\" + verificationCode);\r\n }\r\n\r\n getPublicUser(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + username);\r\n }\r\n\r\n \r\n profilePage(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + username + \"/profile\");\r\n }\r\n\r\n \r\n geStoreDiscoveryPage() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"storeDiscovery\");\r\n }\r\n\r\n \r\n userProducts(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + username + \"/userProducts\");\r\n }\r\n\r\n \r\n\r\n searchUsers(searchText: string)\r\n {\r\n return this.get( this.PRIMARY_RESOURCE + \"search/\" + searchText);\r\n }\r\n\r\n deleteCurrentUser()\r\n {\r\n return this.delete( this.PRIMARY_RESOURCE );\r\n }\r\n\r\n changePassword(changePasswordRequest: ChangePasswordRequest )\r\n {\r\n return this.put(this.PRIMARY_RESOURCE + \"changePassword\" , changePasswordRequest, false);\r\n }\r\n\r\n updateBusinessUser(updateBusinessUserRequest: UpdateBusinessUserRequest)\r\n {\r\n return this.put(this.PRIMARY_RESOURCE + \"businessUser\", updateBusinessUserRequest );\r\n }\r\n \r\n\r\n\r\n \r\n latestUsers() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"latest/\");\r\n }\r\n\r\n}","import {BaseService} from \"./base.service\";\r\nimport { Currency } from \"../models/currency\";\r\nimport { ContactUsRequest } from \"../models/request/contact-us.request\";\r\nimport { Country } from '../models/country';\r\nimport { StoreCategory } from '../models/store-category';\r\nimport { ShowqaceCategory } from \"../models/showqace-category\";\r\n\r\n\r\nexport class CommonService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"common/\";\r\n\r\n sendContactUs(contactUsRequest: ContactUsRequest) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE + \"send/email\", contactUsRequest);\r\n }\r\n\r\n\r\n \r\n getCountries() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"countries\");\r\n }\r\n\r\n \r\n getShowqaceCategories() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"showqaceCategories\");\r\n }\r\n\r\n getShowqaceCategory(showqaceCategoryId: number) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getShowqaceCategory/\" + showqaceCategoryId);\r\n }\r\n\r\n getShowqaceProductCategoriesThatHasItems() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"getShowqaceProductCategoriesThatHasItems\");\r\n }\r\n \r\n \r\n\r\n}","import {BaseService} from \"./base.service\";\r\nimport { Product } from '../models/product';\r\nimport { ProductCategory } from '../models/product-category';\r\nimport { Currency } from \"../models/currency\";\r\nimport { UserTweet } from '../models/user-tweet';\r\n\r\n\r\nexport class UserTweetService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"userTweets/\";\r\n\r\n getUserTweets(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE +\"users/\" + username );\r\n }\r\n\r\n \r\n createUserTweet(userTweet: UserTweet) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE, userTweet) ;\r\n }\r\n\r\n\r\n getUserTweet(userTweetId: number)\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + userTweetId );\r\n }\r\n\r\n createProductUserTweet(productId: number, tweet: string) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE, {tweet: tweet, productId: productId}) ;\r\n }\r\n\r\n replyToUserTweet(userTweetId: number, tweet: string) : Promise\r\n {\r\n return this.post(this.PRIMARY_RESOURCE, {tweet: tweet, parentId: userTweetId}) ;\r\n }\r\n\r\n removeUserTweet(id: number) : Promise\r\n {\r\n return this.delete(this.PRIMARY_RESOURCE + id);\r\n }\r\n\r\n getUserTweetLatest() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE +\"latest/\");\r\n }\r\n\r\n // [HttpGet(\"products/users/{username}\")]\r\n\r\n getProductUserTweetByUsername(username: string) : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"products/users/\" + username);\r\n }\r\n}","import {BaseService} from \"./base.service\";\r\nimport { SettingPageResponse } from '../models/response/setting-page-response';\r\n\r\n\r\nexport class MergeService extends BaseService\r\n{\r\n protected PRIMARY_RESOURCE = \"merge/\";\r\n\r\n home() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"home\");\r\n }\r\n\r\n\r\n \r\n settingPage() : Promise\r\n {\r\n return this.get(this.PRIMARY_RESOURCE + \"settingPage\");\r\n }\r\n\r\n\r\n \r\n}","import React from \"react\";\r\n\r\nexport default class ViewportBlockSection extends React.Component {\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n );\r\n\r\n }\r\n\r\n}"],"sourceRoot":""}