{"version":3,"sources":["store/actions/actionTypes.js","store/reducers/appReducer.js","store/reducers/userReducer.js","store/reducers/rootReducer.js","redux.js","hoc/authentication.js","utils/constant.js","utils/KeyCodeUtils.js","axios.js","utils/LanguageUtils.js","components/CustomScrollbars.js","components/CustomToast.js","routes/Home.js","store/actions/userActions.js","services/clientService.js","services/messageService.js","utils/validate.js","containers/Auth/Login.js","services/supplierService.js","containers/User/User.js","containers/Pricing/Pricing.js","containers/Dashboard/Dashboard.js","services/newService.js","containers/News/News.js","services/userService.js","assets/images/vietcom-hai.jpg","assets/images/momo-hai.jpg","containers/Payment/Payment.js","containers/GetLink/GetLink.js","containers/Menu/Menu.js","services/notiService.js","containers/Header/Header.js","routes/System.js","components/ConfirmModal.js","store/actions/appActions.js","containers/Auth/Register.js","containers/App.js","serviceWorker.js","hoc/IntlProviderWrapper.js","index.js"],"names":["actionTypes","Object","freeze","APP_START_UP_COMPLETE","SET_CONTENT_OF_CONFIRM_MODAL","ADD_USER_SUCCESS","USER_LOGIN_SUCCESS","USER_LOGIN_FAIL","PROCESS_LOGOUT","initialState","started","language","systemMenuPath","contentOfConfirmModal","isOpen","messageId","handleFunc","dataFunc","appReducer","state","action","type","isLoggedIn","userInfo","persistCommonConfig","storage","stateReconciler","autoMergeLevel2","userPersistConfig","key","whitelist","history","createBrowserHistory","basename","process","reduxStateSyncConfig","rootReducer","combineReducers","router","connectRouter","user","persistReducer","userReducer","app","middleware","routerMiddleware","thunkMiddleware","createStateSyncMiddleware","composeEnhancers","compose","reduxStore","createStore","applyMiddleware","persistor","dispatch","persistStore","locationHelper","locationHelperBuilder","userIsAuthenticated","connectedRouterRedirect","authenticatedSelector","wrapperDisplayName","redirectPath","userIsNotAuthenticated","ownProps","getRedirectQueryParam","allowRedirectBack","path","notify","url","KeyCodeUtils","e","UP","DOWN","TAB","ENTER","E","ESCAPE","flattenMessages","nestedMessages","prefix","keys","reduce","messages","value","prefixedKey","assign","messages_vi","messages_en","LanguageUtils","lang","CustomScrollbars","ref","React","createRef","getScrollLeft","current","getScrollTop","scrollToBottom","targetScrollTop","getScrollHeight","scrollTo","targetTop","quickScroll","props","scrollbars","originalTop","iteration","scroll","scrollTop","setTimeout","renderTrackHorizontal","className","renderTrackVertical","renderThumbHorizontal","renderThumbVertical","renderNone","this","disableVerticalScroll","disableHorizontalScroll","children","otherProps","autoHide","autoHideTimeout","hideTracksWhenNotNeeded","Component","CustomToastCloseButton","onClick","closeToast","Home","to","connect","processLogout","header","rs","localStorage","getItem","rss","JSON","parse","token","instance","axios","create","baseURL","constant","withCredentials","headers","interceptors","response","use","data","getCurrentInfo","a","get","res","message","login","loginModel","post","isSuccess","defaults","model","changePassWord","getDownloadHistory","filterModel","params","isPromotion","searchText","pageNum","pageSize","getAddPointHistory","messageNotify","title","content","Store","addNotification","insert","container","dismiss","duration","validateEmail","email","match","Login","handlePage","navigate","onChangeInput","event","id","copyState","target","setState","showHidePw","isShowPw","handleKeyPress","onSubmit","isValidData","username","clientService","messageService","userLoginSuccess","valid","password","myRef","googleId","createModel","name","lastName","phoneNumber","companyName","address","xmlns","version","xmlnsXlink","viewBox","d","src","alt","height","htmlFor","onKeyPress","onChange","placeholder","push","actions","getListSupplier","getInfo","link","ispre","getLink","supplierId","downloadStatus","shutterstock","gettk","User","getCurrentUser","removeItem","window","location","href","getListHistoryImg","filterImg","listHistoryImg","totalCountImg","totalCount","onPageChangeImg","onPageChangePay","filterPay","getListHistoryPay","listHistoryPay","totalCountPay","editProduct","isEdit","isEditPro","changePassModel","reDowload","resLink","downloadLug","downloadId","downloadType","supplierService","resDownload","result","status","itemDCode","resTk","linkDowload","open","count","bind","isValidDataPass","currentPassWord","newPassWord","confirmPassWord","showLink","paginationComponentOptions","rowsPerPageText","rangeSeparatorText","columnsHistoryImg","selector","row","index","createdWhen","format","moment","cell","style","fontSize","rows","class","columnsHistoryPayment","userName","pointP","pointG","role","data-bs-toggle","disabled","lassName","data-tag","columns","striped","noDataComponent","pagination","paginationServer","paginationTotalRows","paginationRowsPerPageOptions","onChangePage","page","onChangeRowsPerPage","Pricing","getListData","listData","scope","map","item","website","isAI","isAIV","isEPS","isJPG","isMOV","isMP3","isPNG","isPSD","isSVG","isTIF","isZIP","usePoint","textAlign","margin","Dashboard","getListNew","News","getNews","newService","filterNew","color","imageUrl","description","Date","update","Payment","userService","arr","i","length","marginTop","fontWeight","vietcombankhai","momohai","GetLink","news","getCurrentSup","supplier","getListLink","trim","reSet","isShowDowload","isShowGetLink","isProcess","onSubmitLink","resInfo","console","log","support","find","checkStatusDowload","provSlug","itemID","dowLoadFile","isValid","toLocaleLowerCase","search","code","split","m","listNew","marginLeft","completed","maxCompleted","width","Menu","selectedSupplier","overflow","data-key","marginRight","logo","_id","Header","getNoti","notiService","notiText","showInfoUser","isShowUser","aaa","speed","aria-haspopup","aria-expanded","System","component","ConfirmModal","handlerKeyDown","which","keyCode","acceptBtnRef","click","onAcceptBtnClick","onClose","setContentOfConfirmModal","document","addEventListener","removeEventListener","Modal","centered","Register","isShowRegis","for","onpaste","aria-describedby","pattern","required","App","useEffect","handlePersistorState","getState","bootstrapped","onBeforeLift","Promise","resolve","then","catch","exact","toastClassName","bodyClassName","autoClose","hideProgressBar","pauseOnHover","pauseOnFocusLoss","closeOnClick","draggable","closeButton","Boolean","hostname","getFlattenedMessages","IntlProviderWrapper","locale","defaultLocale","ReactDOM","render","store","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.55f186c7.chunk.js","sourcesContent":["const actionTypes = Object.freeze({\r\n //app\r\n APP_START_UP_COMPLETE: 'APP_START_UP_COMPLETE',\r\n SET_CONTENT_OF_CONFIRM_MODAL: 'SET_CONTENT_OF_CONFIRM_MODAL',\r\n\r\n //user\r\n ADD_USER_SUCCESS: 'ADD_USER_SUCCESS',\r\n USER_LOGIN_SUCCESS: 'USER_LOGIN_SUCCESS',\r\n USER_LOGIN_FAIL: 'USER_LOGIN_FAIL',\r\n PROCESS_LOGOUT: 'PROCESS_LOGOUT',\r\n})\r\n\r\nexport default actionTypes;","import actionTypes from '../actions/actionTypes';\r\n\r\nconst initContentOfConfirmModal = {\r\n isOpen: false,\r\n messageId: \"\",\r\n handleFunc: null,\r\n dataFunc: null\r\n}\r\n\r\nconst initialState = {\r\n started: true,\r\n language: 'vi',\r\n systemMenuPath: '/',\r\n contentOfConfirmModal: {\r\n ...initContentOfConfirmModal\r\n }\r\n}\r\n\r\nconst appReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.APP_START_UP_COMPLETE: \r\n return {\r\n ...state,\r\n started: true\r\n }\r\n case actionTypes.SET_CONTENT_OF_CONFIRM_MODAL: \r\n return {\r\n ...state,\r\n contentOfConfirmModal: {\r\n ...state.contentOfConfirmModal,\r\n ...action.contentOfConfirmModal\r\n }\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default appReducer;","import actionTypes from '../actions/actionTypes';\r\n\r\nconst initialState = {\r\n isLoggedIn: false,\r\n userInfo: null\r\n}\r\n\r\nconst appReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.USER_LOGIN_SUCCESS:\r\n return {\r\n ...state,\r\n isLoggedIn: true,\r\n userInfo: action.userInfo\r\n }\r\n case actionTypes.USER_LOGIN_FAIL:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n userInfo: null\r\n }\r\n case actionTypes.PROCESS_LOGOUT:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n userInfo: null\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default appReducer;","import {combineReducers} from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\n\r\nimport appReducer from \"./appReducer\";\r\nimport userReducer from \"./userReducer\";\r\n\r\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\r\nimport storage from 'redux-persist/lib/storage';\r\nimport { persistReducer } from 'redux-persist';\r\n\r\nconst persistCommonConfig = {\r\n storage: storage,\r\n stateReconciler: autoMergeLevel2,\r\n};\r\n\r\nconst userPersistConfig = {\r\n ...persistCommonConfig,\r\n key: 'user',\r\n whitelist: ['isLoggedIn', 'userInfo']\r\n};\r\nexport default (history) => combineReducers({\r\n router: connectRouter(history),\r\n user: persistReducer(userPersistConfig, userReducer),\r\n app: appReducer\r\n})","import { logger } from \"redux-logger\";\r\nimport thunkMiddleware from \"redux-thunk\";\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\n\r\nimport { createStore, applyMiddleware, compose } from 'redux';\r\nimport { createStateSyncMiddleware } from 'redux-state-sync';\r\nimport { persistStore } from 'redux-persist';\r\n\r\nimport createRootReducer from './store/reducers/rootReducer';\r\nimport actionTypes from './store/actions/actionTypes';\r\n\r\nconst environment = process.env.NODE_ENV || \"development\";\r\nlet isDevelopment = environment === \"development\";\r\n\r\n//hide redux logs\r\nisDevelopment = false;\r\n\r\n\r\nexport const history = createBrowserHistory({ basename: process.env.REACT_APP_ROUTER_BASE_NAME });\r\n\r\nconst reduxStateSyncConfig = {\r\n whitelist: [\r\n actionTypes.APP_START_UP_COMPLETE,\r\n ]\r\n}\r\n\r\nconst rootReducer = createRootReducer(history);\r\nconst middleware = [\r\n routerMiddleware(history),\r\n thunkMiddleware,\r\n createStateSyncMiddleware(reduxStateSyncConfig),\r\n]\r\nif (isDevelopment) middleware.push(logger);\r\n\r\nconst composeEnhancers = (isDevelopment && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : compose;\r\n\r\nconst reduxStore = createStore(\r\n rootReducer,\r\n composeEnhancers(applyMiddleware(...middleware)),\r\n)\r\n\r\nexport const dispatch = reduxStore.dispatch;\r\n\r\nexport const persistor = persistStore(reduxStore);\r\n\r\nexport default reduxStore;","import locationHelperBuilder from \"redux-auth-wrapper/history4/locationHelper\";\r\nimport { connectedRouterRedirect } from \"redux-auth-wrapper/history4/redirect\";\r\n\r\nconst locationHelper = locationHelperBuilder({});\r\n\r\nexport const userIsAuthenticated = connectedRouterRedirect({\r\n authenticatedSelector: state => state.user.isLoggedIn,\r\n wrapperDisplayName: 'UserIsAuthenticated',\r\n redirectPath: '/login'\r\n});\r\n\r\nexport const userIsNotAuthenticated = connectedRouterRedirect({\r\n // Want to redirect the user when they are authenticated\r\n authenticatedSelector: state => !state.user.isLoggedIn,\r\n wrapperDisplayName: 'UserIsNotAuthenticated',\r\n redirectPath: (state, ownProps) => locationHelper.getRedirectQueryParam(ownProps) || '/',\r\n allowRedirectBack: false\r\n});","export const path = {\r\n HOME: '/',\r\n HOMEDEFAULT: '/index.html',\r\n LOGIN: '/login',\r\n REGISTER: '/register',\r\n LOG_OUT: '/logout',\r\n SYSTEM: '/system'\r\n};\r\n\r\nexport const languages = {\r\n VI: 'vi',\r\n EN: 'en'\r\n};\r\n\r\nexport const manageActions = {\r\n ADD: \"ADD\",\r\n EDIT: \"EDIT\",\r\n DELETE: \"DELETE\"\r\n};\r\n\r\nexport const dateFormat = {\r\n SEND_TO_SERVER: 'DD/MM/YYYY'\r\n};\r\n\r\nexport const YesNoObj = {\r\n YES: 'Y',\r\n NO: 'N'\r\n}\r\nexport const image = {\r\n logo: 'logo.png'\r\n}\r\n\r\nexport const notify = {\r\n container: 'top-right',\r\n duration: 3000\r\n}\r\nexport const url = {\r\n // url: \"https://localhost:44373/api\",\r\n // urlImg: \"https://localhost:44373\",\r\n url: \"https://api.muastocks.com/api\",\r\n urlImg: \"https://api.muastocks.com\",\r\n}","class KeyCodeUtils {\r\n\r\n static UP = 38;\r\n\r\n static DOWN = 40;\r\n\r\n static TAB = 9;\r\n\r\n static ENTER = 13;\r\n\r\n static E = 69;\r\n\r\n static ESCAPE = 27; \r\n\r\n static isNavigation(e) {\r\n return (e >= 33 && e <= 40) || e === 9 || e === 8 || e === 46 || e === 14 || e === 13;\r\n }\r\n\r\n static isNumeric(e) {\r\n return (e >= 48 && e <= 57) || (e >= 96 && e <= 105);\r\n }\r\n static isAlphabetic(e) {\r\n return (e >= 65 && e <= 90);\r\n }\r\n static isDecimal(e) {\r\n return e === 190 || e === 188 || e === 108 || e === 110;\r\n }\r\n\r\n static isDash(e) {\r\n return e === 109 || e === 189;\r\n }\r\n}\r\n\r\nexport default KeyCodeUtils;","import axios from 'axios';\r\nimport _ from 'lodash';\r\nimport * as constant from '../src/utils/constant'\r\n\r\nvar token = \"\";\r\nvar header = \"\";\r\nvar user\r\nvar rs = localStorage.getItem(\"persist:user\");\r\nvar rss = JSON.parse(rs);\r\nif (rss) { user = JSON.parse(rss.userInfo); }\r\nif (user) {\r\n token = user.token;\r\n header = { 'Authorization': 'Bearer ' + token }\r\n}\r\nelse {\r\n header = { 'Authorization': 'Bearer ' + \"\" }\r\n}\r\n\r\nconst instance = axios.create({\r\n baseURL: constant.url.url,\r\n // baseURL: \"https://api.muastocks.com/api\",\r\n withCredentials: true,\r\n headers: header\r\n // headers : { 'Authorization': 'Bearer ' + \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjQ5MiIsImNfaGFzaCI6ImRkNjVkM2EzZjU4NzYwNGY5YmU0OWMxYTJjOGQ3YWQ1ODRjZGYzYTQ1MjE1MGI4NmNlZGQ4NTdhNWFkNjkyMjIiLCJqdGkiOiJiZDI5NDliMS01YzA0LTRmZDgtYTAyMS01NWM2MTkwMjdhZmEiLCJpYXQiOjE2ODU4NzU3MzUsInR5cCI6IjIiLCJuYmYiOjE2ODU4NzU3MzUsImV4cCI6MTY4NjA0ODUzNSwiaXNzIjoiSXNzdWVyIiwiYXVkIjoiQXVkaWVuY2UifQ.HRxGkbbHc3VZ0qxLeb83hihvbuqGPLWJiBgXCzMvEKc\"}\r\n});\r\n\r\n// const createError = (httpStatusCode, statusCode, errorMessage, problems, errorCode = '') => {\r\n// const error = new Error();\r\n// error.httpStatusCode = httpStatusCode;\r\n// error.statusCode = statusCode;\r\n// error.errorMessage = errorMessage;\r\n// error.problems = problems;\r\n// error.errorCode = errorCode + \"\";\r\n// return error;\r\n// };\r\n\r\n// export const isSuccessStatusCode = (s) => {\r\n// // May be string or number\r\n// const statusType = typeof s;\r\n// return (statusType === 'number' && s === 0) || (statusType === 'string' && s.toUpperCase() === 'OK');\r\n// };\r\n// instance.interceptors.request.use(\r\n// function (config) {\r\n\r\n// var token = \"\";\r\n// var rs = localStorage.getItem(\"persist:user\");\r\n// var rss = JSON.parse(rs);\r\n// var user = JSON.parse(rss.userInfo);\r\n// if (user) {\r\n// token = user.token;\r\n// }\r\n// config.headers.Authorization = token ? 'Bearer ' + token : \"\";\r\n// return config;\r\n// });\r\ninstance.interceptors.response.use(\r\n (response) => {\r\n // Thrown error for request with OK status code\r\n // if (data.hasOwnProperty('s') && !isSuccessStatusCode(data['s']) && data.hasOwnProperty('errmsg')) {\r\n // return Promise.reject(createError(response.status, data['s'], data['errmsg'], null, data['errcode'] ? data['errcode'] : \"\"));\r\n // }\r\n\r\n // // Return direct data to callback\r\n // if (data.hasOwnProperty('s') && data.hasOwnProperty('d')) {\r\n // return data['d'];\r\n // }\r\n // // Handle special case\r\n // if (data.hasOwnProperty('s') && _.keys(data).length === 1) {\r\n // return null;\r\n // }\r\n return response.data;\r\n },\r\n // (error) => {\r\n // const { response } = error;\r\n // if (response == null) {\r\n // return Promise.reject(error);\r\n // }\r\n\r\n // const { data } = response;\r\n\r\n // if (data.hasOwnProperty('s') && data.hasOwnProperty('errmsg')) {\r\n // return Promise.reject(createError(response.status, data['s'], data['errmsg']));\r\n // }\r\n\r\n // if (data.hasOwnProperty('code') && data.hasOwnProperty('message')) {\r\n // return Promise.reject(createError(response.status, data['code'], data['message'], data['problems']));\r\n // }\r\n\r\n // return Promise.reject(createError(response.status));\r\n // }\r\n);\r\n\r\nexport default instance;\r\n","import messages_vi from '../translations/vi.json';\r\nimport messages_en from '../translations/en.json';\r\n\r\nconst flattenMessages = ((nestedMessages, prefix = '') => {\r\n if (nestedMessages == null) {\r\n return {}\r\n }\r\n return Object.keys(nestedMessages).reduce((messages, key) => {\r\n const value = nestedMessages[key];\r\n const prefixedKey = prefix ? `${prefix}.${key}` : key;\r\n\r\n if (typeof value === 'string') {\r\n Object.assign(messages, {[prefixedKey]: value})\r\n } else {\r\n Object.assign(messages, flattenMessages(value, prefixedKey))\r\n }\r\n\r\n return messages\r\n }, {})\r\n});\r\n\r\nconst messages = {\r\n 'vi': flattenMessages(messages_vi),\r\n 'en': flattenMessages(messages_en),\r\n};\r\n\r\nexport default class LanguageUtils {\r\n static getMessageByKey(key, lang) {\r\n return messages[lang][key]\r\n }\r\n\r\n static getFlattenedMessages() {\r\n return messages;\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\n\r\nimport './CustomScrollbars.scss';\r\n\r\nclass CustomScrollbars extends Component {\r\n\r\n ref = React.createRef();\r\n\r\n getScrollLeft =()=>{\r\n const scrollbars = this.ref.current;\r\n return scrollbars.getScrollLeft();\r\n }\r\n getScrollTop =()=>{\r\n const scrollbars = this.ref.current;\r\n return scrollbars.getScrollTop();\r\n }\r\n\r\n scrollToBottom = () => {\r\n if (!this.ref || !this.ref.current) {\r\n return;\r\n }\r\n const scrollbars = this.ref.current;\r\n const targetScrollTop = scrollbars.getScrollHeight();\r\n this.scrollTo(targetScrollTop);\r\n };\r\n\r\n scrollTo = (targetTop) => {\r\n const { quickScroll } = this.props;\r\n if (!this.ref || !this.ref.current) {\r\n return;\r\n }\r\n const scrollbars = this.ref.current;\r\n const originalTop = scrollbars.getScrollTop();\r\n let iteration = 0;\r\n\r\n const scroll = () => {\r\n iteration++;\r\n if (iteration > 30) {\r\n return;\r\n }\r\n scrollbars.scrollTop(originalTop + (targetTop - originalTop) / 30 * iteration);\r\n\r\n if (quickScroll && quickScroll === true) {\r\n scroll();\r\n } else {\r\n setTimeout(() => {\r\n scroll();\r\n }, 20);\r\n }\r\n };\r\n\r\n scroll();\r\n };\r\n\r\n renderTrackHorizontal = (props) => {\r\n return (\r\n
\r\n );\r\n };\r\n\r\n renderTrackVertical = (props) => {\r\n return (\r\n
\r\n );\r\n };\r\n\r\n renderThumbHorizontal = (props) => {\r\n return (\r\n
\r\n );\r\n };\r\n\r\n renderThumbVertical = (props) => {\r\n return (\r\n
\r\n );\r\n };\r\n\r\n renderNone = (props) => {\r\n return (\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n const { className, disableVerticalScroll, disableHorizontalScroll, children,...otherProps } = this.props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CustomScrollbars;","import React, { Component, Fragment } from 'react';\r\nimport { FormattedMessage, FormattedTime } from 'react-intl';\r\n\r\nimport CustomScrollBar from '../components/CustomScrollbars';\r\n\r\nimport './CustomToast.scss';\r\n\r\nclass CustomToast extends Component {\r\n\r\n render() {\r\n const { titleId, message, messageId, time } = this.props;\r\n return (\r\n \r\n
\r\n
\r\n {time && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n {\r\n (message && typeof message === 'object') ?\r\n \r\n {\r\n message.map((msg, index) => {\r\n return (\r\n \r\n
{msg}
\r\n
\r\n )\r\n })\r\n }\r\n
:\r\n
\r\n {message ? message : (messageId ? () : null)}\r\n
\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport class CustomToastCloseButton extends Component {\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CustomToast;","import React, { Component } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nclass Home extends Component {\r\n\r\n render() {\r\n const { isLoggedIn } = this.props;\r\n let linkToRedirect = isLoggedIn ? '/system/getlink' : '/system/getlink';\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoggedIn: state.user.isLoggedIn\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Home);\r\n","import actionTypes from './actionTypes';\r\n\r\nexport const addUserSuccess = () => ({\r\n type: actionTypes.ADD_USER_SUCCESS\r\n})\r\nexport const userLoginSuccess = (userInfo) => ({\r\n type: actionTypes.USER_LOGIN_SUCCESS,\r\n userInfo: userInfo\r\n})\r\n\r\nexport const processLogout = () => ({\r\n type: actionTypes.PROCESS_LOGOUT\r\n})\r\nexport const userLoginFail = () => ({\r\n type: actionTypes.USER_LOGIN_FAIL\r\n})","import axios from '../axios';\r\n\r\n\r\n\r\nexport const getCurrentInfo = async () => {\r\n try {\r\n var res = await axios.get(`/Client/GetCurrentInfo`)\r\n return res;\r\n } catch (error) {\r\n if (error.message == 'Request failed with status code 401') {\r\n return 401\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n};\r\nexport const login = async (loginModel) => {\r\n try {\r\n var res = await axios.post(`/Client/SignIn`, loginModel)\r\n if (res.isSuccess) {\r\n if (axios.defaults.headers['Authorization']) {\r\n axios.defaults.headers['Authorization'] = res.data.token ? 'Bearer ' + res.data.token : \"\";\r\n }\r\n else {\r\n axios.defaults.headers = { 'Authorization': 'Bearer ' + res.data.token }\r\n }\r\n\r\n return res;\r\n }\r\n else {\r\n return res;\r\n }\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const update = async (model) => {\r\n try {\r\n var res = await axios.post(`/Client/Update`, model)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const create = async (model) => {\r\n try {\r\n var res = await axios.post(`/Client/Register`, model)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const changePassWord = async (model) => {\r\n try {\r\n var res = await axios.post(`/Client/ChangePassWord`, model)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\n\r\nexport const getDownloadHistory = async (filterModel) => {\r\n try {\r\n var res = await axios.get(`/Client/GetDownloadHistory`, {\r\n params: {\r\n isPromotion: filterModel.isPromotion,\r\n searchText: filterModel.searchText,\r\n pageNum: filterModel.pageNum,\r\n pageSize: filterModel.pageSize,\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const getAddPointHistory = async (filterModel) => {\r\n try {\r\n var res = await axios.get(`/Client/GetAddPointHistory`, {\r\n params: {\r\n searchText: filterModel.searchText,\r\n pageNum: filterModel.pageNum,\r\n pageSize: filterModel.pageSize,\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};","import { Store } from 'react-notifications-component'\r\nimport 'react-notifications-component/dist/theme.css'\r\nimport * as constant from '../../src/utils/constant'\r\n\r\nexport const messageNotify = async (title, content, type) => {\r\n Store.addNotification({\r\n title: title,\r\n message: content,\r\n type: type,\r\n insert: \"top\",\r\n container: constant.notify.container,\r\n dismiss: {\r\n duration: constant.notify.duration,\r\n }\r\n });\r\n};\r\n","\r\n\r\n\r\n\r\nexport const validateEmail = (email) => {\r\n email.match(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n );\r\n return true\r\n};","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { push } from \"connected-react-router\";\r\n\r\nimport * as actions from \"../../store/actions\";\r\nimport './Login.scss';\r\n\r\n\r\nimport logo from \"../../assets/images/logo.png\";\r\nimport translate from \"../../assets/images/icon/translate.png\";\r\nimport google from \"../../assets/images/icon/google.png\";\r\nimport * as clientService from \"../../services/clientService.js\"\r\nimport * as messageService from \"../../services/messageService.js\"\r\nimport { ReactNotifications } from 'react-notifications-component'\r\nimport * as valid from '../../utils/validate'\r\nimport { GoogleLogin } from 'react-google-login';\r\n\r\n\r\nconst environment = process.env\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.myRef = React.createRef();\r\n this.state = {\r\n loginModel: {\r\n username: \"\",\r\n password: \"\",\r\n googleId: \"\",\r\n email: \"\",\r\n },\r\n createModel: {\r\n name: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n email: \"\",\r\n companyName: \"\",\r\n address: \"\",\r\n password: \"\",\r\n googleId: \"\"\r\n },\r\n isShowPw: false\r\n }\r\n }\r\n componentDidMount() {\r\n }\r\n handlePage = (path) => {\r\n this.props.navigate(path);\r\n }\r\n\r\n onChangeInput = (event, id) => {\r\n let copyState = { ...this.state.loginModel };\r\n copyState[id] = event.target.value;\r\n this.setState({\r\n loginModel: copyState\r\n })\r\n }\r\n showHidePw = () => {\r\n this.setState({\r\n isShowPw: !this.state.isShowPw\r\n })\r\n }\r\n handleKeyPress = (event) => {\r\n if (event.key === 'Enter') {\r\n this.onSubmit();\r\n }\r\n }\r\n onSubmit = async () => {\r\n if (!this.isValidData()) return;\r\n let copyState = { ...this.state.loginModel };\r\n copyState.email = this.state.loginModel.username;\r\n this.setState({\r\n loginModel: copyState\r\n })\r\n let res = await clientService.login(this.state.loginModel);\r\n if (res == 0) {\r\n messageService.messageNotify('', 'Lấy dữ liệu lỗi', 'warning');\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n this.props.userLoginSuccess(res.data);\r\n }\r\n else {\r\n messageService.messageNotify('', res.message, 'warning');\r\n return;\r\n }\r\n }\r\n isValidData = () => {\r\n if (!this.state.loginModel.username) {\r\n messageService.messageNotify('', 'Vui lòng nhập email', 'warning');\r\n return false;\r\n }\r\n else if (!valid.validateEmail(this.state.loginModel.username)) {\r\n messageService.messageNotify('', 'Email không đúng định dạng', 'warning');\r\n return false;\r\n }\r\n if (!this.state.loginModel.password) {\r\n messageService.messageNotify('', 'Vui lòng nhập mật khẩu', 'warning');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n render() {\r\n // const loginFromGoogle = (rs) => {\r\n // console.log(rs);\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
Chào mừng bạn trở lại !
\r\n

Đăng nhập để tiếp tục sử dụng muaStocks.com

\r\n
\r\n
\r\n\r\n
\r\n \r\n this.onChangeInput(event, \"username\")}\r\n type=\"text\" className=\"form-control\" id=\"username\" placeholder=\"Nhập email\" />\r\n
\r\n\r\n
\r\n {/* */}\r\n \r\n
\r\n this.onChangeInput(event, \"password\")}\r\n className=\"form-control pe-5 password-input\" placeholder=\"Nhập mật khẩu\" />\r\n \r\n
\r\n
\r\n\r\n {/*
\r\n \r\n \r\n
*/}\r\n\r\n
\r\n this.onSubmit()}\r\n className=\"btn btn-success w-100\" >Đăng nhập\r\n
\r\n\r\n {/*
\r\n
\r\n
Sign In with
\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

© 2022 muastocks.com\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\nconst mapStateToProps = state => {\r\n return {\r\n language: state.app.language\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n navigate: (path) => dispatch(push(path)),\r\n // userLoginFail: () => dispatch(actions.userLoginFail()),\r\n userLoginSuccess: (userInfo) => dispatch(actions.userLoginSuccess(userInfo))\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\r\n","import axios from '../axios';\r\n\r\n\r\nexport const getListSupplier = async () => {\r\n try {\r\n var res = await axios.get(`/Supplier/GetListSupplier`)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\n\r\nexport const get = async (id) => {\r\n try {\r\n var res = await axios.get(`/Supplier/Get?id=`+ id)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const getInfo = async (link, ispre) => {\r\n try {\r\n var res = await axios.get(`/Supplier/GetInfo`, {\r\n params: {\r\n link: link,\r\n ispre: 1\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const getLink = async (link, type,id) => {\r\n try {\r\n var res = await axios.get(`/Supplier/GetLink`, {\r\n params: {\r\n link: link,\r\n ispre: 1,\r\n type: type,\r\n supplierId: id\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const downloadStatus = async (shutterstock, type,id) => {\r\n try {\r\n var res = await axios.get(`/Supplier/DownloadStatus`, {\r\n params: {\r\n shutterstock: shutterstock,\r\n ispre: 1,\r\n type: type,\r\n id: id\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const gettk = async () => {\r\n try {\r\n var res = await axios.get(`/Supplier/gettk`)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\n\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport './User.scss';\r\n\r\nimport * as clientService from \"../../services/clientService\";\r\nimport { ReactNotifications } from 'react-notifications-component';\r\nimport DataTable from 'react-data-table-component';\r\nimport moment from 'moment/moment';\r\nimport * as supplierService from \"../../services/supplierService\"\r\n\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isEditPro: false,\r\n user: {\r\n email: \"\",\r\n name: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n address: \"\",\r\n companyName: \"\",\r\n },\r\n changePassModel: {\r\n currentPassWord: \"\",\r\n newPassWord: \"\",\r\n confirmPassWord: \"\",\r\n },\r\n //\r\n listHistoryImg: [],\r\n filterImg: {\r\n searchText: '',\r\n pageNum: 1,\r\n pageSize: 20,\r\n },\r\n totalCountImg: 0,\r\n //\r\n listHistoryPay: [],\r\n filterPay: {\r\n searchText: '',\r\n pageNum: 1,\r\n pageSize: 20,\r\n },\r\n totalCountPay: 0,\r\n }\r\n }\r\n componentDidMount() {\r\n this.getCurrentUser();\r\n this.getListHistoryImg();\r\n this.getListHistoryPay();\r\n }\r\n getCurrentUser = async () => {\r\n let res = await clientService.getCurrentInfo();\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res == 401) {\r\n setTimeout(() => {\r\n localStorage.removeItem(\"persist:user\");\r\n window.location.href = '/login';\r\n }, 2000);\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.user };\r\n copyState = res.data;\r\n this.setState({\r\n user: copyState\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n handlePage = (path) => {\r\n this.props.navigate(path);\r\n }\r\n getListHistoryImg = async () => {\r\n let res = await clientService.getDownloadHistory(this.state.filterImg);\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.listHistoryImg };\r\n copyState = res.data;\r\n this.setState({\r\n listHistoryImg: copyState,\r\n totalCountImg: res.data[0] ? res.data[0].totalCount : 0\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n onPageChangeImg = (pageSize, pageNum) => {\r\n this.state.filterImg.pageNum = pageNum;\r\n if (pageSize != 0) this.state.filterImg.pageSize = pageSize;\r\n this.getListHistoryImg();\r\n }\r\n onPageChangePay = (pageSize, pageNum) => {\r\n this.state.filterPay.pageNum = pageNum;\r\n if (pageSize != 0) this.state.filterPay.pageSize = pageSize;\r\n this.getListHistoryPay();\r\n }\r\n getListHistoryPay = async () => {\r\n let res = await clientService.getAddPointHistory(this.state.filterPay);\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.listHistoryPay };\r\n copyState = res.data;\r\n this.setState({\r\n listHistoryPay: copyState,\r\n totalCountPay: res.data[0] ? res.data[0].totalCount : 0\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n editProduct = (isEdit) => {\r\n this.setState({\r\n isEditPro: isEdit\r\n })\r\n }\r\n /// edit\r\n onChangeInput = (event, id) => {\r\n let copyState = { ...this.state.changePassModel };\r\n copyState[id] = event.target.value;\r\n this.setState({\r\n changePassModel: copyState\r\n })\r\n }\r\n reDowload = async (resLink) => {\r\n let shutterstock = resLink.downloadLug\r\n let id = resLink.downloadId\r\n let type = resLink.downloadType\r\n let resDownload = await supplierService.downloadStatus(shutterstock, type, id);\r\n if (resDownload == 0) {\r\n return;\r\n }\r\n else if (resDownload.isSuccess) {\r\n if (resDownload.data.result.status == 200) {\r\n if (resDownload.data.result.result.status == 1) {\r\n let itemDCode = resDownload.data.result.result.itemDCode\r\n let resTk = await supplierService.gettk(shutterstock, type, id);\r\n if (resTk == 0) {\r\n return;\r\n }\r\n else if (resTk.isSuccess) {\r\n let linkDowload = 'https://getstocks.net/api/v1/download/' + itemDCode + '?token=' + resTk.data\r\n window.open(linkDowload, \"_self\");\r\n return false;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n else {\r\n if (this.state.count < 5) {\r\n setTimeout(\r\n function () {\r\n this.reDowload(resLink);\r\n }\r\n .bind(this),\r\n 5000\r\n );\r\n this.setState({\r\n count: this.state.count++\r\n })\r\n\r\n }\r\n }\r\n }\r\n else {\r\n if (this.state.count < 5) {\r\n setTimeout(\r\n function () {\r\n this.reDowload(resLink);\r\n }\r\n .bind(this),\r\n 5000\r\n );\r\n this.setState({\r\n count: this.state.count++\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n changePassWord = async () => {\r\n if (!this.isValidDataPass()) return;\r\n let res = await clientService.changePassWord(this.state.changePassModel);\r\n if (res == 0) {\r\n }\r\n else if (res.isSuccess) {\r\n }\r\n else {\r\n }\r\n }\r\n isValidDataPass = () => {\r\n if (!this.state.changePassModel.currentPassWord) {\r\n return false;\r\n }\r\n if (!this.state.changePassModel.newPassWord) {\r\n return false;\r\n }\r\n if (this.state.changePassModel.newPassWord != this.state.changePassModel.confirmPassWord) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n showLink = (link) => {\r\n window.open(link, \"_blank\")\r\n }\r\n render() {\r\n let listHistoryImg = this.state.listHistoryImg\r\n let listHistoryPay = this.state.listHistoryPay\r\n const paginationComponentOptions = {\r\n rowsPerPageText: \"Số dòng\",\r\n rangeSeparatorText: \"của\"\r\n };\r\n const columnsHistoryImg = [\r\n {\r\n name: '#',\r\n selector: (row, index) => index + 1,\r\n },\r\n {\r\n name: 'Thời gian',\r\n selector: row => row.createdWhen,\r\n format: (row) => moment(row.createdWhen).format('HH:mm DD/MM/yyyy'),\r\n },\r\n {\r\n name: 'Link gốc',\r\n selector: row => row.link,\r\n cell: (row) => {\r\n return (\r\n
\r\n this.showLink(row.link)}\r\n className=\"shadow btn-xs sharp me-1\">\r\n {row.link}\r\n \r\n
\r\n )\r\n },\r\n },\r\n {\r\n name: 'Tải lại',\r\n selector: rows => rows,\r\n cell: (row) => {\r\n return (\r\n
\r\n this.reDowload(row)}\r\n className=\"btn btn-primary shadow btn-xs sharp me-1\">\r\n
\r\n )\r\n },\r\n },\r\n ];\r\n const columnsHistoryPayment = [\r\n {\r\n name: '#',\r\n selector: (row, index) => index + 1,\r\n },\r\n {\r\n name: 'Thời gian',\r\n selector: row => row.createdWhen,\r\n format: (row) => moment(row.createdWhen).format('HH:mm DD/MM/yyyy'),\r\n },\r\n {\r\n name: 'Người xử lý',\r\n selector: row => row.userName,\r\n },\r\n {\r\n name: 'Điểm P',\r\n selector: row => row.pointP,\r\n },\r\n {\r\n name: 'Điểm G',\r\n selector: row => row.pointG,\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 \"user-profile-image\"\r\n
\r\n {/* */}\r\n \r\n
\r\n
\r\n
{this.state.user?.name}
\r\n

{this.state.user?.pointG ? this.state.user?.pointG : '0'} điểm G / {this.state.user?.pointP ? this.state.user?.pointP : '0'} điểm P

\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 this.onChangeInput(event, \"currentPassWord\")}\r\n type=\"password\" className=\"form-control\"\r\n id=\"oldpasswordInput\"\r\n placeholder=\"Nhập mật khẩu hiện tại\" />\r\n
\r\n
\r\n
\r\n
\r\n \r\n this.onChangeInput(event, \"newPassWord\")}\r\n type=\"password\" className=\"form-control\"\r\n id=\"newpasswordInput\" placeholder=\"Nhập mật khẩu mới\" />\r\n
\r\n
\r\n
\r\n
\r\n \r\n this.onChangeInput(event, \"confirmPassWord\")}\r\n type=\"password\" className=\"form-control\"\r\n id=\"confirmpasswordInput\"\r\n placeholder=\"Nhập lại mật khẩu mới\" />\r\n
\r\n
\r\n
\r\n
\r\n this.changePassWord()}\r\n type=\"submit\" className=\"btn btn-success\">Đổi mật khẩu\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.onPageChangeImg(0, page)\r\n }}\r\n onChangeRowsPerPage={(pageSize, pageNum) => {\r\n this.onPageChangeImg(pageSize, pageNum)\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n this.onPageChangePay(0, page)\r\n }}\r\n onChangeRowsPerPage={(pageSize, pageNum) => {\r\n this.onPageChangePay(pageSize, pageNum)\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\nconst mapStateToProps = state => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(User);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport './Pricing.scss';\r\n\r\nimport * as supplierService from \"../../services/supplierService\"\r\nimport * as messageService from \"../../services/messageService\"\r\nimport { ReactNotifications } from 'react-notifications-component'\r\n\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass Pricing extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n listData: []\r\n }\r\n }\r\n componentDidMount() {\r\n this.getListData();\r\n }\r\n getListData = async () => {\r\n let res = await supplierService.getListSupplier();\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.listData };\r\n copyState = res.data;\r\n this.setState({\r\n listData: copyState\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Bảng giá tải ảnh

\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.listData && this.state.listData.map((item, index) => {\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
TênTrang nguồnĐịnh dạng hỗ trợĐiểmGiới hạnTải lạiHỗ trợ sự cố
{item.name}VIP{item.website}\r\n {item?.isAI && < img className=\"extension\" src=\"../../assets/images/extension/AI.png\" />}\r\n {item?.isAIV && < img className=\"extension\" src=\"../../assets/images/extension/AVI.png\" />}\r\n {item?.isEPS && < img className=\"extension\" src=\"../../assets/images/extension/EPS.png\" />}\r\n {item?.isJPG && < img className=\"extension\" src=\"../../assets/images/extension/JPG.png\" />}\r\n {item?.isMOV && < img className=\"extension\" src=\"../../assets/images/extension/MOV.png\" />}\r\n {item?.isMP3 && < img className=\"extension\" src=\"../../assets/images/extension/MP3.png\" />}\r\n {item?.isPNG && < img className=\"extension\" src=\"../../assets/images/extension/PNG.png\" />}\r\n {item?.isPSD && < img className=\"extension\" src=\"../../assets/images/extension/PSD.png\" />}\r\n {item?.isSVG && < img className=\"extension\" src=\"../../assets/images/extension/SVG.png\" />}\r\n {item?.isTIF && < img className=\"extension\" src=\"../../assets/images/extension/TIF.png\" />}\r\n {item?.isZIP && < img className=\"extension\" src=\"../../assets/images/extension/ZIP.png\" />}\r\n {item?.usePoint}không giới hạn24 giờfacebook/zalo
\r\n
\r\n\r\n
\r\n NẠP ĐIỂM\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\nconst mapStateToProps = state => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Pricing);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport './Dashboard.scss';\r\n\r\n\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass Dashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n a:\"\"\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Bảng giá tải ảnh

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n data table\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\nconst mapStateToProps = state => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Dashboard);\r\n","import axios from '../axios';\r\n\r\n\r\nexport const getListNew = async (filterModel) => {\r\n try {\r\n var res = await axios.get(`/News/GetListNews`, {\r\n params: {\r\n isPromotion: filterModel.isPromotion,\r\n searchText: filterModel.searchText,\r\n pageNum: filterModel.pageNum,\r\n pageSize: filterModel.pageSize,\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport './News.scss';\r\n\r\nimport { ReactNotifications } from 'react-notifications-component'\r\nimport * as newService from \"../../services/newService\";\r\nimport * as constant from '../../utils/constant'\r\nimport { format } from 'date-fns'\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass News extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n listData: [],\r\n filterNew: {\r\n searchText: \"\",\r\n isPromotion: false,\r\n pageSize: 200,\r\n pageNum: 1\r\n },\r\n }\r\n }\r\n componentDidMount() {\r\n this.getNews();\r\n }\r\n getNews = async () => {\r\n let res = await newService.getListNew(this.state.filterNew);\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.listData };\r\n copyState = res.data;\r\n this.setState({\r\n listData: copyState,\r\n totalCount: res.data[0] ? res.data[0].totalCount : 0\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n render() {\r\n let listData = this.state.listData\r\n let path = constant.url.urlImg;\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {listData && listData.map((item, index) => {\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{item.name}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"user-profile-image\"\r\n
\r\n
\r\n

{item.description}

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

\r\n {format(new Date(item.createdWhen), 'yyyy/MM/dd kk:mm:ss')}

\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\nconst mapStateToProps = state => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(News);\r\n","import axios from '../axios';\r\n\r\n\r\n\r\nexport const getCurrentInfo = async () => {\r\n try {\r\n var res = await axios.get(`/User/GetCurrentInfo`)\r\n return res;\r\n } catch (error) {\r\n if (error.message == 'Request failed with status code 401') {\r\n return 401\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n};\r\nexport const login = async (loginModel) => {\r\n try {\r\n var res = await axios.post(`/User/SignIn`, loginModel)\r\n if (res.isSuccess) {\r\n if (axios.defaults.headers['Authorization']){\r\n axios.defaults.headers['Authorization'] = res.data.token ? 'Bearer ' + res.data.token : \"\";\r\n }\r\n else {\r\n axios.defaults.headers = { 'Authorization': 'Bearer ' + res.data.token }\r\n }\r\n \r\n return res;\r\n }\r\n else {\r\n return res;\r\n }\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const update = async (model) => {\r\n try {\r\n var res = await axios.post(`/User/Update`, model)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const create = async (model) => {\r\n try {\r\n var res = await axios.post(`/User/Register`, model)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\nexport const changePassWord = async (model) => {\r\n try {\r\n var res = await axios.post(`/User/ChangePassWord`, model)\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\n","export default __webpack_public_path__ + \"static/media/vietcom-hai.6a7ad709.jpg\";","export default __webpack_public_path__ + \"static/media/momo-hai.04469eb7.jpg\";","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport './Payment.scss';\r\n\r\nimport * as userService from \"../../services/userService\"\r\nimport * as messageService from \"../../services/messageService\"\r\nimport { ReactNotifications } from 'react-notifications-component'\r\nimport vietcombankhai from '../../assets/images/vietcom-hai.jpg'\r\nimport momohai from '../../assets/images/momo-hai.jpg'\r\n\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass Payment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isEditPro: false,\r\n user: {\r\n email: \"\",\r\n name: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n address: \"\",\r\n companyName: \"\"\r\n }\r\n }\r\n }\r\n componentDidMount() {\r\n }\r\n editProduct = (isEdit) => {\r\n this.setState({\r\n isEditPro: isEdit\r\n })\r\n }\r\n /// edit\r\n onChangeInput = (event, id) => {\r\n let copyState = { ...this.state.user };\r\n copyState[id] = event.target.value;\r\n this.setState({\r\n user: copyState\r\n })\r\n }\r\n onSubmit = async () => {\r\n if (!this.isValidData()) return;\r\n let res = await userService.update(this.state.user);\r\n if (res == 0) {\r\n messageService.messageNotify('', 'Lấy dữ liệu lỗi', 'warning');\r\n }\r\n else if (res.isSuccess) {\r\n messageService.messageNotify('', 'Edit success', 'success');\r\n }\r\n else {\r\n messageService.messageNotify('', res.message, 'warning');\r\n }\r\n }\r\n isValidData = () => {\r\n let arr = [\"email\", \"name\", \"lastName\", \"phoneNumber\", \"address\", \"companyName\"]\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!this.state.user[arr[i]]) {\r\n messageService.messageNotify('', ('Please enter your ' + arr[i]), 'warning');\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n render() {\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 HƯỚNG DẪN NẠP ĐIỂM

\r\n
\r\n

\r\n Sau khi chọn được gói thanh toán phù hợp, bạn thanh toán số tiền cần nạp theo hướng dẫn:
\r\n

    \r\n
  • Nội dung chuyển khoản là
  • \r\n
  • Ví dụ: , không cần phải @...
  • \r\n
  • Ưu tiên chuyển khoản qua VIETCOMBANK, chuyển qua MOMO vui lòng đợi mình khoản 2 phút xử lý.
  • \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\nconst mapStateToProps = state => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Payment);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport './GetLink.scss';\r\nimport { push } from \"connected-react-router\";\r\n\r\nimport * as userService from \"../../services/userService\"\r\nimport * as messageService from \"../../services/messageService\"\r\nimport { ReactNotifications } from 'react-notifications-component'\r\nimport * as supplierService from \"../../services/supplierService\"\r\nimport * as newService from \"../../services/newService\"\r\nimport * as constant from '../../utils/constant'\r\nimport ProgressBar from \"@ramonak/react-progress-bar\";\r\nimport * as actions from \"../../store/actions\";\r\n\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass GetLink extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isEditPro: false,\r\n link: \"\",\r\n type: \"\",\r\n count: 0,\r\n supplier: {\r\n },\r\n process: 0,\r\n isProcess: false,\r\n user: {\r\n email: \"\",\r\n name: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n address: \"\",\r\n companyName: \"\"\r\n },\r\n isShowDowload: false,\r\n isShowGetLink: true,\r\n linkDowload: '',\r\n filterNew: {\r\n searchText: \"\",\r\n isPromotion: true,\r\n pageSize: 20,\r\n pageNum: 1\r\n },\r\n news: [],\r\n }\r\n }\r\n componentDidMount() {\r\n this.getCurrentUser();\r\n this.getNews();\r\n // this.getCurrentSupplier();\r\n this.setState({\r\n isShowDowload: false,\r\n isShowGetLink: true\r\n })\r\n if (!this.props.match.params.id) {\r\n this.getListLink();\r\n }\r\n else {\r\n this.getCurrentSup()\r\n }\r\n }\r\n getNews = async () => {\r\n let res = await newService.getListNew(this.state.filterNew);\r\n if (res.isSuccess) {\r\n this.setState({\r\n news: res.data\r\n })\r\n }\r\n }\r\n getCurrentSup = async () => {\r\n let res = await supplierService.get(this.props.match.params.id);\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n this.setState({\r\n supplier: res.data\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n getListLink = async () => {\r\n let res = await supplierService.getListSupplier();\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n this.setState({\r\n supplier: res.data[0]\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n getCurrentUser = async () => {\r\n let res = await userService.getCurrentInfo();\r\n if (res == 0) {\r\n return;\r\n }\r\n // else if (res == 401) {\r\n // setTimeout(() => {\r\n // this.handlePage('/login')\r\n // }, 2000);\r\n // return;\r\n // }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.user };\r\n copyState = res.data;\r\n this.setState({\r\n user: copyState\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n \r\n handlePage = (path) => {\r\n this.props.navigate(path);\r\n }\r\n onChangeInput = (event) => {\r\n this.setState({\r\n link: event.target.value.trim()\r\n })\r\n }\r\n reSet = () => {\r\n this.setState({\r\n isShowDowload: false,\r\n isShowGetLink: true,\r\n link: \"\",\r\n isProcess: false\r\n })\r\n }\r\n onSubmitLink = async () => {\r\n if (!this.state.user.email) {\r\n localStorage.removeItem(\"persist:user\");\r\n window.location.href = '/login';\r\n // this.handlePage('/login');\r\n }\r\n else {\r\n if (this.state.supplier.id) {\r\n if (!this.isValidData()) return;\r\n this.setState({\r\n isShowGetLink: false,\r\n isProcess: true\r\n });\r\n let resInfo = await supplierService.getInfo(this.state.link);\r\n if (resInfo == 0) {\r\n this.setState({\r\n isProcess: false\r\n });\r\n messageService.messageNotify(\"\", \"Get link không thành công\", \"warning\");\r\n return;\r\n }\r\n else if (resInfo.isSuccess) {\r\n console.log('resInfo', resInfo);\r\n if (resInfo.data.result && resInfo.data.result.status == 200) {\r\n this.setState({\r\n process: 30\r\n });\r\n let type = Object.keys(resInfo.data.result.result.support.type).find(key => resInfo.data.result.result.support.type[key] == 0)\r\n this.setState({\r\n type: type,\r\n count: 0\r\n })\r\n if (type) {\r\n let resLink = await supplierService.getLink(this.state.link, this.state.type, this.state.supplier.id);\r\n if (resLink == 0) {\r\n messageService.messageNotify(\"\", \"Get link không thành công\", \"warning\");\r\n this.setState({\r\n isShowGetLink: true,\r\n process: false\r\n })\r\n return;\r\n }\r\n else if (resLink.isSuccess) {\r\n if (resLink.data.status == 200) {\r\n this.setState({\r\n process: 60\r\n });\r\n this.checkStatusDowload(resLink)\r\n }\r\n else {\r\n messageService.messageNotify(\"\", \"Get link không thành công\", \"warning\");\r\n this.setState({\r\n isShowGetLink: true,\r\n isProcess: false\r\n })\r\n return;\r\n }\r\n }\r\n else {\r\n messageService.messageNotify(\"\", resLink.message, \"warning\");\r\n this.setState({\r\n isShowGetLink: true,\r\n isProcess: false\r\n })\r\n return;\r\n }\r\n }\r\n }\r\n else {\r\n this.setState({\r\n isShowGetLink: true,\r\n isProcess: false\r\n })\r\n messageService.messageNotify(\"\", \"Get link không thành công\", \"warning\");\r\n return;\r\n }\r\n }\r\n else {\r\n this.setState({\r\n isShowGetLink: true,\r\n isProcess: false\r\n })\r\n messageService.messageNotify(\"\", resInfo.message, \"warning\");\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n checkStatusDowload = async (resLink) => {\r\n console.log('resLink2', resLink);\r\n let shutterstock = resLink.data.result.provSlug\r\n let id = resLink.data.result.itemID\r\n let resDownload = await supplierService.downloadStatus(shutterstock, this.state.type, id);\r\n if (resDownload == 0) {\r\n return;\r\n }\r\n else if (resDownload.isSuccess) {\r\n console.log('resDownload', resDownload);\r\n if (resDownload.data.result.status == 200) {\r\n if (resDownload.data.result.result.status == 1) {\r\n let itemDCode = resDownload.data.result.result.itemDCode\r\n let resTk = await supplierService.gettk(shutterstock, this.state.type, id);\r\n if (resTk == 0) {\r\n return;\r\n }\r\n else if (resTk.isSuccess) {\r\n this.setState({\r\n process: 100\r\n });\r\n this.setState({\r\n linkDowload: 'https://getstocks.net/api/v1/download/' + itemDCode + '?token=' + resTk.data,\r\n isShowDowload: true,\r\n process: 100\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n else {\r\n if (this.state.count < 5) {\r\n this.setState({\r\n process: 80 + this.state.count * 4\r\n });\r\n setTimeout(\r\n function () {\r\n this.checkStatusDowload(resLink);\r\n }\r\n .bind(this),\r\n 5000\r\n );\r\n this.setState({\r\n count: this.state.count++\r\n })\r\n\r\n }\r\n }\r\n }\r\n else {\r\n if (this.state.count < 5) {\r\n this.setState({\r\n process: 80 + this.state.count * 4\r\n });\r\n setTimeout(\r\n function () {\r\n this.checkStatusDowload(resLink);\r\n }\r\n .bind(this),\r\n 5000\r\n );\r\n this.setState({\r\n count: this.state.count++\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n dowLoadFile = async () => {\r\n window.open(this.state.linkDowload, \"_self\");\r\n }\r\n isValidData = () => {\r\n let isValid = false;\r\n if (!this.state.link) {\r\n messageService.messageNotify(\"\", \"Vui lòng nhập link\", \"warning\")\r\n return false;\r\n }\r\n else if (this.state.link.toLocaleLowerCase().search(this.state.supplier.website.toLocaleLowerCase()) >= 0) {\r\n var codeList = this.state.supplier.code.toLocaleLowerCase().split('|');\r\n codeList.map(m => {\r\n if (this.state.link.toLocaleLowerCase().search(m) >= 0) {\r\n isValid = true;\r\n }\r\n })\r\n }\r\n if (!isValid) messageService.messageNotify(\"\", \"Vui lòng nhập link \" + this.state.supplier.name, \"warning\")\r\n return isValid;\r\n }\r\n render() {\r\n let isShowDowload = this.state.isShowDowload\r\n let isProcess = this.state.isProcess\r\n let listNew = this.state.news\r\n let path = constant.url.urlImg;\r\n // let isShowDowload = true\r\n // let supplier = this.state.supplier\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Getlink {this.state.supplier?.name} giá siêu rẻ chỉ {this.state.supplier?.usePoint}.000 đồng

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n this.onChangeInput(event)}\r\n className=\"form-control\" id=\"exampleFormControlTextarea5\" rows=\"7\">\r\n
\r\n\r\n
\r\n {this.state.isShowGetLink && this.onSubmitLink()}\r\n type=\"button\" className=\"btn btn-outline-info waves-effect waves-light fs-22\">\r\n   GETLINK}\r\n this.reSet()}\r\n type=\"button\" className=\"btn btn-outline-warning waves-effect waves-light fs-22\">\r\n   RESET\r\n
\r\n {isProcess && \r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n {isShowDowload &&\r\n
\r\n this.dowLoadFile()}\r\n type=\"button\" className=\"btn btn-outline-info waves-effect waves-light fs-22\">\r\n   DOWNLOAD\r\n
}\r\n
\r\n
\r\n
\r\n
\r\n

Gói Điểm

\r\n

Không giới hạn thời gian sử dụng

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

50.000đ

\r\n

50 điểm

\r\n

---

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

100.000đ

\r\n

100 điểm

\r\n

Bonus 3%

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

200.000đ

\r\n

200 điểm

\r\n

Bonus 5%

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

500.000đ

\r\n

500 điểm

\r\n

Bonus 7%

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

\r\n Khách hàng mua gói tải full 21 site, không giới hạn thời\r\n gian sử dụng, cứ hết điểm thì nạp dùng tiếp. Trường hợp bị trừ điểm mà file không về\r\n thì inbox admin nhờ hỗ trợ.\r\n

\r\n
\r\n
\r\n NẠP NGAY\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Khuyến mãi đang diễn ra

\r\n
\r\n
\r\n
\r\n {listNew && listNew.map((item, index) => {\r\n return (\r\n \r\n
\r\n
\r\n {item.imageUrl && \r\n }\r\n
\r\n
\r\n {item.name}\r\n
\r\n
\r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n navigate: (path) => dispatch(push(path)),\r\n processLogout: () => dispatch(actions.processLogout()),\r\n };\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(GetLink);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport * as actions from \"../../store/actions\";\r\nimport { push } from \"connected-react-router\";\r\nimport './Menu.scss';\r\nimport * as supplierService from \"../../services/supplierService\"\r\n\r\n\r\nclass Menu extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n listData: []\r\n }\r\n }\r\n componentDidMount() {\r\n this.getListData();\r\n }\r\n getListData = async () => {\r\n let res = await supplierService.getListSupplier();\r\n if (res == 0) {\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.listData };\r\n copyState = res.data;\r\n this.setState({\r\n listData: copyState\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n selectedSupplier = (data) => {\r\n if (data) this.props.navigate(\"/system/getlink/\" + data.id)\r\n }\r\n render() {\r\n const { processLogout } = this.props;\r\n\r\n let listData = this.state.listData\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\nconst mapStateToProps = state => {\r\n return {\r\n isLoggedIn: state.user.isLoggedIn\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n navigate: (path) => dispatch(push(path)),\r\n processLogout: () => dispatch(actions.processLogout()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Menu);\r\n","import axios from '../axios';\r\n\r\n\r\nexport const get = async (_id) => {\r\n try {\r\n var res = await axios.get(`/Notification/Get`, {\r\n params: {\r\n id: _id\r\n }\r\n })\r\n return res;\r\n } catch (error) {\r\n return 0;\r\n }\r\n};\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Marquee from \"react-fast-marquee\";\r\n\r\nimport * as actions from \"../../store/actions\";\r\nimport { push } from \"connected-react-router\";\r\nimport * as clientService from \"../../services/clientService.js\"\r\nimport * as notiService from \"../../services/notiService.js\"\r\nimport './Header.scss';\r\nimport { Link } from 'react-router-dom';\r\n\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isShowUser: false,\r\n user: {\r\n email: \"\",\r\n name: \"\",\r\n phoneNumber: \"\",\r\n },\r\n notiText: ''\r\n }\r\n }\r\n componentDidMount() {\r\n this.getCurrentUser();\r\n this.getNoti();\r\n }\r\n getCurrentUser = async () => {\r\n let res = await clientService.getCurrentInfo();\r\n if (res == 0) {\r\n return;\r\n }\r\n // else if (res == 401) {\r\n // setTimeout(() => {\r\n // this.handlePage('/login')\r\n // }, 2000);\r\n // return;\r\n // }\r\n else if (res.isSuccess) {\r\n let copyState = { ...this.state.user };\r\n copyState = res.data;\r\n this.setState({\r\n user: copyState\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n getNoti = async () => {\r\n let res = await notiService.get(1); if (res.isSuccess) {\r\n this.setState({\r\n notiText: res.data.name\r\n })\r\n }\r\n }\r\n handlePage = (path) => {\r\n this.props.navigate(path);\r\n }\r\n showInfoUser = () => {\r\n this.setState({\r\n isShowUser: !this.state.isShowUser\r\n })\r\n }\r\n render() {\r\n const { processLogout } = this.props;\r\n let aaa = this.state.notiText;\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

{aaa}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
Xin chào {this.state.user?.name ? this.state.user?.name : ''}!
\r\n
Tài khoản\r\n
\r\n Lịch sử tải ảnh\r\n Lịch sử thanh toán\r\n Đăng xuất\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isLoggedIn: state.user.isLoggedIn\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n navigate: (path) => dispatch(push(path)),\r\n processLogout: () => dispatch(actions.processLogout()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Header);\r\n","import React, { Component } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect, Route, Switch } from 'react-router-dom';\r\nimport User from '../containers/User/User';\r\nimport Pricing from '../containers/Pricing/Pricing';\r\nimport Dashboard from '../containers/Dashboard/Dashboard';\r\nimport News from '../containers/News/News';\r\nimport Payment from '../containers/Payment/Payment';\r\nimport GetLink from '../containers/GetLink/GetLink';\r\nimport Menu from '../containers/Menu/Menu';\r\nimport Header from '../containers/Header/Header';\r\nimport { userIsAuthenticated, userIsNotAuthenticated } from '../hoc/authentication';\r\n\r\nclass System extends Component {\r\n render() {\r\n const { systemMenuPath } = this.props;\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 { return () }} />\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n systemMenuPath: state.app.systemMenuPath\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(System);\r\n","import React, { Component } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { connect } from 'react-redux';\r\nimport { Modal } from 'reactstrap';\r\n\r\nimport './ConfirmModal.scss';\r\nimport * as actions from \"../store/actions\";\r\nimport { KeyCodeUtils } from \"../utils\";\r\n\r\nclass ConfirmModal extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.acceptBtnRef = React.createRef();\r\n }\r\n\r\n initialState = {\r\n };\r\n\r\n state = {\r\n ...this.initialState\r\n };\r\n\r\n componentDidMount() {\r\n document.addEventListener('keydown', this.handlerKeyDown);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('keydown', this.handlerKeyDown);\r\n }\r\n\r\n handlerKeyDown = (event) => {\r\n const keyCode = event.which || event.keyCode;\r\n if (keyCode === KeyCodeUtils.ENTER) {\r\n if (!this.acceptBtnRef.current || this.acceptBtnRef.current.disabled) return;\r\n this.acceptBtnRef.current.click();\r\n }\r\n }\r\n\r\n onAcceptBtnClick = () => {\r\n const { contentOfConfirmModal } = this.props;\r\n if (contentOfConfirmModal.handleFunc) {\r\n contentOfConfirmModal.handleFunc(contentOfConfirmModal.dataFunc);\r\n }\r\n this.onClose();\r\n }\r\n\r\n onClose = () => {\r\n this.props.setContentOfConfirmModal({\r\n isOpen: false,\r\n messageId: \"\",\r\n handleFunc: null,\r\n dataFunc: null\r\n });\r\n }\r\n\r\n render() {\r\n const { contentOfConfirmModal } = this.props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n lang: state.app.language,\r\n contentOfConfirmModal: state.app.contentOfConfirmModal\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n setContentOfConfirmModal: (contentOfConfirmModal) => dispatch(actions.setContentOfConfirmModal(contentOfConfirmModal))\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConfirmModal);\r\n","import actionTypes from './actionTypes';\r\n\r\nexport const appStartUpComplete = () => ({\r\n type: actionTypes.APP_START_UP_COMPLETE\r\n});\r\n\r\nexport const setContentOfConfirmModal = (contentOfConfirmModal) => ({\r\n type: actionTypes.SET_CONTENT_OF_CONFIRM_MODAL,\r\n contentOfConfirmModal: contentOfConfirmModal\r\n});","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { push } from \"connected-react-router\";\r\nimport { ReactNotifications } from 'react-notifications-component'\r\n\r\nimport './Register.scss';\r\n\r\nimport * as clientService from \"../../services/clientService.js\"\r\n\r\nimport * as messageService from \"../../services/messageService.js\"\r\nimport * as valid from '../../utils/validate'\r\n\r\nconst label = { inputProps: { 'aria-label': 'Checkbox demo' } };\r\n\r\nclass Register extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isShowPw: false,\r\n createModel: {\r\n name: \"\",\r\n email: \"\",\r\n password: \"\"\r\n },\r\n isShowRegis: true,\r\n }\r\n }\r\n\r\n handlePage = (path) => {\r\n this.props.navigate(path);\r\n }\r\n\r\n showHidePw = () => {\r\n this.setState({\r\n isShowPw: !this.state.isShowPw\r\n })\r\n }\r\n onChangeInput = (event, id) => {\r\n let copyState = { ...this.state.createModel };\r\n copyState[id] = event.target.value;\r\n this.setState({\r\n createModel: copyState\r\n })\r\n }\r\n handleKeyPress = (event) => {\r\n if (event.key === 'Enter') {\r\n this.onSubmit();\r\n }\r\n }\r\n onSubmit = async () => {\r\n this.setState({\r\n isShowRegis: false\r\n })\r\n if (!this.isValidData()) {\r\n this.setState({\r\n isShowRegis: true\r\n })\r\n return;\r\n };\r\n let res = await clientService.create(this.state.createModel);\r\n if (res == 0) {\r\n this.setState({\r\n isShowRegis: true\r\n })\r\n messageService.messageNotify('', 'Lỗi đăng ký', 'warning');\r\n return;\r\n }\r\n else if (res.isSuccess) {\r\n messageService.messageNotify('', 'Đăng kí thành công', 'success');\r\n this.handlePage('/login');\r\n }\r\n else {\r\n this.setState({\r\n isShowRegis: true\r\n })\r\n messageService.messageNotify('', 'Lỗi đăng ký', 'warning');\r\n return;\r\n }\r\n }\r\n isValidData = () => {\r\n if (!this.state.createModel.name) {\r\n messageService.messageNotify('', 'Vui lòng nhập họ & tên', 'warning');\r\n return false;\r\n }\r\n if (!this.state.createModel.email) {\r\n messageService.messageNotify('', 'Vui lòng nhập email', 'warning');\r\n return false;\r\n }\r\n if (!valid.validateEmail(this.state.createModel.email)) {\r\n messageService.messageNotify('', 'Email không hợp lệ', 'warning');\r\n return false;\r\n }\r\n if (!this.state.createModel.password) {\r\n messageService.messageNotify('', 'Vui lòng nhập mật khẩu', 'warning');\r\n return false;\r\n }\r\n return true;\r\n }\r\n render() {\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 {/*

Premium Admin & Dashboard Template

*/}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Đăng ký mới tài khoản muaStocks.com
\r\n
\r\n
\r\n
\r\n \r\n this.onChangeInput(event, 'name')}\r\n type=\"text\" className=\"form-control\" id=\"name\" placeholder=\"Nhập ho & tên\" />\r\n
\r\n\r\n
\r\n \r\n this.onChangeInput(event, 'email')}\r\n type=\"email\" className=\"form-control\" id=\"useremail\" placeholder=\"Nhập email\" />\r\n
\r\n\r\n
\r\n \r\n
\r\n this.onChangeInput(event, 'password')}\r\n type=\"password\" className=\"form-control pe-5 password-input\" onpaste=\"return false\" placeholder=\"Nhập mật khẩu\" id=\"password-input\" aria-describedby=\"passwordInput\" pattern=\"(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}\" required />\r\n \r\n
\r\n
\r\n {this.state.isShowRegis &&
\r\n this.onSubmit()}\r\n className=\"btn btn-success w-100\" type=\"submit\">Đăng ký\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

© 2022 muastocks.com\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\nconst mapStateToProps = state => {\r\n return {\r\n language: state.app.language\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n navigate: (path) => dispatch(push(path)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Register);\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport { ConnectedRouter as Router } from 'connected-react-router';\r\nimport { history } from '../redux'\r\nimport { ToastContainer } from 'react-toastify';\r\n\r\n\r\nimport { userIsAuthenticated, userIsNotAuthenticated } from '../hoc/authentication';\r\n\r\nimport { path } from '../utils'\r\n\r\nimport Home from '../routes/Home';\r\nimport Login from './Auth/Login';\r\n// import Header from './Header/Header';\r\n// import Menu from './Menu/Menu';\r\nimport System from '../routes/System';\r\n\r\nimport { CustomToastCloseButton } from '../components/CustomToast';\r\nimport ConfirmModal from '../components/ConfirmModal';\r\nimport Register from './Auth/Register';\r\nimport { gapi } from 'gapi-script';\r\n\r\nclass App extends Component {\r\n\r\n useEffect = () => {\r\n function start() {\r\n gapi.client.init({\r\n clientId: \"510041985758-c8u658vpleekkntkbm1t1vsphim3k37o.apps.googleusercontent.com\",\r\n scope: \"\"\r\n })\r\n }\r\n }\r\n handlePersistorState = () => {\r\n const { persistor } = this.props;\r\n let { bootstrapped } = persistor.getState();\r\n if (bootstrapped) {\r\n if (this.props.onBeforeLift) {\r\n Promise.resolve(this.props.onBeforeLift())\r\n .then(() => this.setState({ bootstrapped: true }))\r\n .catch(() => this.setState({ bootstrapped: true }));\r\n } else {\r\n this.setState({ bootstrapped: true });\r\n }\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.handlePersistorState();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \r\n {/* {this.props.isLoggedIn &&
} */}\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\nconst mapStateToProps = state => {\r\n return {\r\n started: state.app.started,\r\n isLoggedIn: state.user.isLoggedIn\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport { IntlProvider } from \"react-intl\";\r\n\r\nimport '@formatjs/intl-pluralrules/polyfill';\r\nimport '@formatjs/intl-pluralrules/locale-data/en';\r\nimport '@formatjs/intl-pluralrules/locale-data/vi';\r\n\r\nimport '@formatjs/intl-relativetimeformat/polyfill';\r\nimport '@formatjs/intl-relativetimeformat/locale-data/en';\r\nimport '@formatjs/intl-relativetimeformat/locale-data/vi';\r\n\r\nimport { LanguageUtils } from '../utils'\r\n\r\nconst messages = LanguageUtils.getFlattenedMessages();\r\n\r\nclass IntlProviderWrapper extends Component {\r\n\r\n render() {\r\n const { children, language } = this.props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n language: state.app.language\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(IntlProviderWrapper);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport './styles/styles.scss';\r\n\r\nimport App from './containers/App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport IntlProviderWrapper from \"./hoc/IntlProviderWrapper\";\r\n\r\n\r\nimport { Provider } from 'react-redux';\r\nimport reduxStore, { persistor } from './redux';\r\n\r\nconst renderApp = () => {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n );\r\n};\r\n\r\nrenderApp();\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}