{"version":3,"sources":["Assets/logos/ppshp.png","Assets/logos/companyLogo.png","Assets/Banner/EmergencyContacts.png","Assets/backgrounds/background.jpg","Assets/Banner/Benefits.jpg","Assets/Banner/SpecialSituations.png","Assets/Banner/DiabetesCounceling.jpg","Assets/Banner/News_and_info.jpg","Assets/Banner/ImportantContact.jpeg","Assets/Banner/Carbohydrates.jpg","Assets/images sync nonrecursive /.(png|jpe?g|svg)$","Assets/images/10_hiilihydraattigramman_annoksia_terveyskirjasto.jpg","Assets/images/Diabetes_ensiapu_2016.jpg","Assets/images/Eatwell_guide.jpg","Assets/images/High_carb.jpg","Assets/images/Itameren_ruokakolmio_pieni.jpg","Assets/images/Liikuntaohjeet_DM1.jpg","Assets/images/Liikuntaohjeet_DM2.jpg","Assets/images/Low_carb.jpg","Assets/images/Oppaat_ei_sis_hh_2013_SUOMI.jpg","Assets/images/Oppaat_ei_sis_hh_2013_SUOMI.png","Assets/images/Oppaat_sis_hh_2013_SUOMI.jpg","Assets/images/Oppaat_sis_hh_2013_SUOMI.png","Assets/images/What_does_10g_of_carbohydrate_look_like.png","Assets/images/matalanoireetA4suomeksi.jpg","Assets/images/matalanoireetA4suomeksi.png","Assets/images/stock-vector-silhouette-of-parents-and-children-127045523.jpg","Assets/logos sync nonrecursive /.(png|jpe?g|svg)$","Assets/logos/KelaFpa_cmyk.png","Assets/logos/Kela_cmyk.png","Assets/logos/OulunDiabetesyhdistys_logo.jpg","Assets/logos/Ppshp_kokonimi-L600.jpg","Assets/logos/TerveyskylÑ_logo.png","Assets/logos/Terveyskylä_logo.png","Assets/logos/diabetesliitto-logo-fi.png","Assets/logos/kela-696x408.png","Assets/logos/maaseudunterveysjalomahuoltoLogo.png","Assets/logos/ppshp-ilmantekstia.png","Assets/logos/ppshp-logo.png","Assets/logos/vero_green_transparentv2.png","Assets/logos/vero_greenv2.png","Assets/pdf sync nonrecursive /.(pdf)$","Assets/pdf/Diabetes_ensiapu_2016.pdf","Assets/pdf/Liikuntaohjeet_DM1_190613.pdf","Assets/pdf/Tuoreen_diabeetikon_alkuohjaus.pdf","readCurrentWebHostname.js","i18n.js","apollo.js","registerServiceWorker.js","withTracker.js","isChatEnabled.js","pages/Frontpage.js","components/Links.js","components/SideDrawer/DrawerToggleButton.js","components/Toolbar/Toolbar.js","components/SideDrawer/SideDrawer.js","components/Footer/footer.js","components/Header/Header.js","components/Layout.js","pages/components/LinkWithoutPopup.js","pages/components/WithSource.js","pages/components/DisplayLinks.js","pages/components/WithLogo.js","pages/components/WithPDF.js","pages/components/DisplaySubfields.js","pages/components/WithModal.js","pages/components/WithHTML.js","pages/components/DisplayAccordion.js","pages/components/WithImage.js","pages/components/DisplaySegment.js","pages/Benefits.js","pages/SpecialSituations.js","pages/DiabetesCounceling.js","pages/NewsAndInfo.js","pages/ImportantContacts.js","pages/Carbohydrates.js","routes/Register.js","routes/Login.js","routes/Logout.js","routes/ChangePassword.js","routes/CreateTeam.js","routes/ViewChat.js","pages/OwnGoals.js","pages/DiabetesFacts.js","routes/WidthLayouts.js","components/Chat/components/Header.js","components/Chat/components/SendMessage.js","components/Chat/components/Channels.js","components/Chat/components/sidebarToggle.js","graphql/team.js","components/Chat/components/MultiSelectUsers.js","components/Chat/components/AddChannelModal.js","normalizeErrors.js","components/Chat/components/InvitePeopleModal.js","components/Chat/components/DirectMessageModal.js","components/Chat/containers/Sidebar.js","components/Chat/components/react-chat-elements/PhotoMessage/PhotoMessage.js","components/Chat/components/react-chat-elements/FileMessage/FileMessage.js","components/Chat/components/react-chat-elements/SystemMessage/SystemMessage.js","components/Chat/components/react-chat-elements/LocationMessage/LocationMessage.js","components/Chat/components/react-chat-elements/SpotifyMessage/SpotifyMessage.js","components/Chat/components/react-chat-elements/Avatar/Avatar.js","components/Chat/components/react-chat-elements/MessageBox/MessageBox.js","components/Chat/components/react-chat-elements/ChatItem/ChatItem.js","components/Chat/components/react-chat-elements/ChatList/ChatList.js","components/Chat/components/react-chat-elements/MessageList/MessageList.js","components/Chat/components/react-chat-elements/Input/Input.js","components/Chat/components/react-chat-elements/Button/Button.js","components/Chat/components/react-chat-elements/Navbar/Navbar.js","components/Chat/components/react-chat-elements/Dropdown/Dropdown.js","components/Chat/components/react-chat-elements/SideBar/SideBar.js","components/Chat/components/react-chat-elements/Popup/Popup.js","components/Chat/components/Message.js","components/Chat/containers/MessageContainer.js","routes/ViewChatMobile.js","routes/ViewChatWebsite.js","routes/index.js","index.js"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","currentWebsiteURL","window","location","hostname","resources","en","translation","translationEN","fi","translationFI","languageBasedOfHost","i18n","use","LanguageDetector","initReactI18next","init","lng","detection","order","lookupCookie","caches","debug","interpolation","escapeValue","react","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transKeepBasicHtmlNodesFor","useSuspense","then","moment","locale","i18next","language","uploadLink","createUploadLink","uri","process","credentials","fetch","middlewareLink","setContext","headers","localStorage","getItem","httplinkWithMiddleware","ApolloLink","operation","forward","response","getContext","token","get","refreshToken","setItem","concat","wsLink","WebSocketLink","options","reconnect","lazy","connectionParams","link","split","query","getMainDefinition","kind","ApolloClient","cache","InMemoryCache","Boolean","match","withTracker","WrappedComponent","trackPage","page","ReactGA","set","pageview","this","props","pathname","nextProps","currentPage","nextPage","Component","chatEnabled","jsonDATA","isChatEnabled","NavBarLink","activeClassName","className","style","textAlign","Links","t","to","onClick","closeDrawer","changeTextHandler","Grid","columns","Row","Column","icon","faComments","faHospital","faAddressBook","faBreadSlice","faHandHoldingHeart","faRunning","faHandshake","faNewspaper","DrawerToggleButton","click","browser","detect","require","Toolbar","name","closeHandler","contentProvider","changeLanguage","color","displayText","margin","drawerClickHandler","marginLeft","fontSize","fontWeight","i18nKey","SideDrawer","drawerClasses","show","omadiabetes_fi_data","mydiabetes_chat_data","displayContactInformation","d","index","key","url","randomBytes","border","href","target","HTMLtarget","topic","info","i","dangerouslySetInnerHTML","__html","Frontpage","Segment","as","borderRadius","backgroundColor","width","marginRight","paddingTop","paddingBottom","Image","src","PPSHPLogo","spaced","emergencyContacts","display","marginTop","Footer","companyLogo","height","Header","background","Layout","handleWindowSizeChange","setState","innerWidth","state","sideDrawerOpen","drawerToggleClickHandler","prevState","displayTextClickHandler","param","changeLanguageClickHandler","getViewPortSize","vh","innerHeight","document","documentElement","setProperty","addEventListener","removeEventListener","pathName","slice","toLowerCase","isMobile","showFrontPage","children","withRouter","LinkWithoutPopupBold","textORtopic","url_text","url_image","WithoutPopup","OutboundLink","eventLabel","images","Icon","WithSource","source","source_url","displayLinks","data","outerTopic","flexWrap","text","WithLogo","logo","logoSource","logos","size","verticalAlign","WithPDF","pdf","title","pdfSource","pdfs","displaySubfields","pdf_title","Modal","closeIcon","trigger","textDecoration","cursor","WithHTML","html","displayAccordion","activeIndex","handleClick","Accordion","fluid","styled","Title","active","Content","links","image","imageSource","WithImage","subfields","displaySegment","float","Benefits","titleProps","newIndex","benefits","SpecialSituations","specialSituation","DiabetesCounceling","numPages","pageNumber","onDocumentLoadSuccess","handleColorChange","value","handleChange","diabetesCounceling","NewsAndInfo","news","ImportantContacts","importantContact","Carbohydrates","carbohydrates","Register","login","loginError","displayname","displaynameError","password","passwordError","redirect","renderRedirect","onSubmit","a","mutate","variables","updateUserRegister","ok","errors","history","push","err","forEach","path","message","onChange","params","uuidvalidate","translateError","errorText","withNoDigits","replace","count","errorList","Container","Form","Field","error","placeholder","autoComplete","type","length","list","React","updateUserRegisterMutation","gql","compose","graphql","withTranslation","Login","subscriptionClient","tryReconnect","extendObservable","textTransform","loginMutation","observer","client","resetStore","removeItem","ChangePassword","register","console","log","header","changePasswordMutation","CreateTeam","createTeam","team","nameError","createTeamMutation","ViewChat","OwnGoals","DiabetesFacts","WidthLayouts","channelName","alignSelf","createFileMessageMutation","withFormik","mapPropsToValues","handleSubmit","values","setSubmitting","resetForm","trim","channelId","accept","multiple","onDrop","file","getRootProps","getInputProps","faPlus","TextArea","faPaperPlane","Bubble","on","teamName","channels","displayName","onAddChannelClick","dmChannels","teamId","isOwner","onInvitePeopleClick","onDirectMessageClick","sidebarLeft","getElementsByClassName","sidebarButtonOpen","sidebarButtonClose","classList","contains","remove","add","sidebarClose","c","displayChannelName","THIS_IS_PATIENT_CHANNEL","channel","meQuery","getTeamMembersQuery","loading","getTeamMembers","currentUserId","search","selection","filter","tm","createChannelMutation","public","members","onClose","optimisticResponse","createChannel","__typename","dm","update","store","readQuery","teamIdx","findIndex","me","teams","writeQuery","open","handleBlur","isSubmitting","setFieldValue","onBlur","Checkbox","checked","label","toggle","Group","widths","disabled","reduce","acc","cv","addTeamMemberMutation","email","setErrors","addTeamMember","errorsLength","filteredErrors","normalizeErrors","touched","getOrCreateChannelMutation","getOrCreateChannel","every","Sidebar","openAddChannelModal","openInvitePeopleModal","openDirectMessageModal","toggleDirectMessageModal","preventDefault","toggleAddChannelModal","toggleInvitePeopleModal","regularChannels","admin","Circle","PhotoMessage","progressOptions","strokeWidth","trailColor","trailWidth","step","circle","setAttribute","Math","round","setText","status","alt","onOpen","onLoad","download","onDownload","progress","initialAnimate","containerClassName","defaultProps","FileMessage","Function","bind","classNames","SystemMessage","LocationMessage","center","latitude","longitude","markerColor","zoom","apiKey","buildURL","SpotifyMessage","formBody","theme","view","property","encodedKey","encodeURIComponent","encodedValue","join","toUrl","frameBorder","allowtransparency","Avatar","sideElement","MessageBox","positionCls","position","professional","thatAbsoluteTime","dateText","date","isNaN","dateString","fromNow","renderAddCmp","notch","forwarded","onForwardClick","avatar","titleColor","onTitleClick","copiableDate","data-text","undefined","xmlns","viewBox","x","y","result","in","dx","dy","stdDeviation","in2","mode","Date","ChatItem","onContextMenu","statusColor","statusText","avatarFlexible","subtitle","unread","ChatList","item","ref","cmpRef","dataSource","MessageList","scrollBottom","downButton","mlistRef","toBottomHeight","scrollTop","scrollHeight","lockable","offsetHeight","getBottom","checkScroll","bottom","onScroll","onDownButtonClick","loadRef","toBottom","downButtonBadge","Input","defaultValue","maxlength","onMaxLengthExceed","multiline","autoHeight","minHeight","maxHeight","event","FAKE_EVENT","input","autofocus","focus","leftButtons","inputRef","inputStyle","onCopy","onCut","onPaste","onFocus","onSelect","onReset","onKeyDown","onKeyPress","onKeyUp","rightButtons","Button","buttonRef","borderColor","component","Navbar","left","right","Dropdown","buttonProps","animationType","animationPosition","items","onMouseDown","SideBar","top","Popup","renderHeader","headerButtons","renderContent","renderFooter","footerButtons","Message","currentUser","messageText","messageDate","role","filetype","Card","CardContent","extra","Meta","newChannelMessageSubscription","MessageContainer","hasMoreItems","subscribe","subscribeToMore","updateQuery","prev","subscriptionData","messages","newChannelMessage","handleLoadMore","fetchMore","createdAt","previousResult","fetchMoreResult","handleScroll","scroller","keyCount","getKey","unsubscribe","heightBeforeRender","setTimeout","forceScroll","reverse","m","user","formatDate","messagesQuery","fetchPolicy","createMessageMutation","teamIdInteger","channelIdInteger","channelIdx","letter","charAt","toUpperCase","smoothscroll","polyfill","PrivateRoute","rest","render","decode","exp","now","isAuthenticated","exact","Logout","ViewChatMobile","ViewChatWebsite","cssVars","importAll","next","timestamp","parseInt","ReactDOM","initialize","getElementById"],"mappings":"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","file":"static/js/main.e7d0668a.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/ppshp.4ed8a005.png\";","module.exports = __webpack_public_path__ + \"static/media/companyLogo.d79cfb2a.png\";","module.exports = __webpack_public_path__ + \"static/media/EmergencyContacts.84397793.png\";","module.exports = __webpack_public_path__ + \"static/media/background.5c7ebc54.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Benefits.03ff76c5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/SpecialSituations.56c876c3.png\";","module.exports = __webpack_public_path__ + \"static/media/DiabetesCounceling.3420809e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/News_and_info.3239463c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/ImportantContact.81d3c923.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/Carbohydrates.cf0643c1.jpg\";","var map = {\n\t\"./10_hiilihydraattigramman_annoksia_terveyskirjasto.jpg\": 843,\n\t\"./Diabetes_ensiapu_2016.jpg\": 844,\n\t\"./Eatwell_guide.jpg\": 845,\n\t\"./High_carb.jpg\": 846,\n\t\"./Itameren_ruokakolmio_pieni.jpg\": 847,\n\t\"./Liikuntaohjeet_DM1.jpg\": 848,\n\t\"./Liikuntaohjeet_DM2.jpg\": 849,\n\t\"./Low_carb.jpg\": 850,\n\t\"./Oppaat_ei_sis_hh_2013_SUOMI.jpg\": 851,\n\t\"./Oppaat_ei_sis_hh_2013_SUOMI.png\": 852,\n\t\"./Oppaat_sis_hh_2013_SUOMI.jpg\": 853,\n\t\"./Oppaat_sis_hh_2013_SUOMI.png\": 854,\n\t\"./What_does_10g_of_carbohydrate_look_like.png\": 855,\n\t\"./matalanoireetA4suomeksi.jpg\": 856,\n\t\"./matalanoireetA4suomeksi.png\": 857,\n\t\"./stock-vector-silhouette-of-parents-and-children-127045523.jpg\": 858\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 842;","module.exports = __webpack_public_path__ + \"static/media/10_hiilihydraattigramman_annoksia_terveyskirjasto.f41c474b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Diabetes_ensiapu_2016.9f405dff.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Eatwell_guide.3da7fd80.jpg\";","module.exports = __webpack_public_path__ + \"static/media/High_carb.ba450458.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Itameren_ruokakolmio_pieni.13d3ac73.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Liikuntaohjeet_DM1.b85541bf.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Liikuntaohjeet_DM2.b92f7a25.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Low_carb.5f9cc3b0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Oppaat_ei_sis_hh_2013_SUOMI.e64e5b9b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Oppaat_ei_sis_hh_2013_SUOMI.2f43b2ed.png\";","module.exports = __webpack_public_path__ + \"static/media/Oppaat_sis_hh_2013_SUOMI.cd775f7b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Oppaat_sis_hh_2013_SUOMI.bef68a49.png\";","module.exports = __webpack_public_path__ + \"static/media/What_does_10g_of_carbohydrate_look_like.f66fee64.png\";","module.exports = __webpack_public_path__ + \"static/media/matalanoireetA4suomeksi.b2ff22e9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/matalanoireetA4suomeksi.8d54806f.png\";","module.exports = __webpack_public_path__ + \"static/media/stock-vector-silhouette-of-parents-and-children-127045523.7d882c27.jpg\";","var map = {\n\t\"./KelaFpa_cmyk.png\": 860,\n\t\"./Kela_cmyk.png\": 861,\n\t\"./OulunDiabetesyhdistys_logo.jpg\": 862,\n\t\"./Ppshp_kokonimi-L600.jpg\": 863,\n\t\"./TerveyskylÑ_logo.png\": 864,\n\t\"./Terveyskylä_logo.png\": 865,\n\t\"./companyLogo.png\": 275,\n\t\"./diabetesliitto-logo-fi.png\": 866,\n\t\"./kela-696x408.png\": 867,\n\t\"./maaseudunterveysjalomahuoltoLogo.png\": 868,\n\t\"./ppshp-ilmantekstia.png\": 869,\n\t\"./ppshp-logo.png\": 870,\n\t\"./ppshp.png\": 272,\n\t\"./vero_green_transparentv2.png\": 871,\n\t\"./vero_greenv2.png\": 872\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 859;","module.exports = __webpack_public_path__ + \"static/media/KelaFpa_cmyk.40a54e8c.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/jpeg;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Ppshp_kokonimi-L600.4348efad.jpg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/kela-696x408.da8cd2d5.png\";","module.exports = __webpack_public_path__ + \"static/media/maaseudunterveysjalomahuoltoLogo.a832bd21.png\";","module.exports = __webpack_public_path__ + \"static/media/ppshp-ilmantekstia.72ac895d.png\";","module.exports = __webpack_public_path__ + \"static/media/ppshp-logo.dbc38efd.png\";","module.exports = __webpack_public_path__ + \"static/media/vero_green_transparentv2.d65df3a2.png\";","module.exports = __webpack_public_path__ + \"static/media/vero_greenv2.f33a2db0.png\";","var map = {\n\t\"./Diabetes_ensiapu_2016.pdf\": 874,\n\t\"./Liikuntaohjeet_DM1_190613.pdf\": 875,\n\t\"./Tuoreen_diabeetikon_alkuohjaus.pdf\": 876\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 873;","module.exports = __webpack_public_path__ + \"static/media/Diabetes_ensiapu_2016.a1712dc2.pdf\";","module.exports = __webpack_public_path__ + \"static/media/Liikuntaohjeet_DM1_190613.1a01787a.pdf\";","module.exports = __webpack_public_path__ + \"static/media/Tuoreen_diabeetikon_alkuohjaus.1ab3a8d9.pdf\";","let localtestingURL;\n// * For local testing uncomment which site you want to test\n// TODO make language dependant?\n\nlocaltestingURL = \"omadiabetes.fi\";\n// localtestingURL = \"mydiabetes.chat\";\n\nexport const currentWebsiteURL = (window.location.hostname === \"localhost\") ? localtestingURL : window.location.hostname;\n","import i18n from 'i18next';\n// import Backend from 'i18next-xhr-backend';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\nimport moment from 'moment';\nimport i18next from 'i18next';\n\nimport translationFI from './i18n/locales/omadiabetes.fi/fi.json'\nimport translationEN from './i18n/locales/mydiabetes.chat/en.json'\nimport { currentWebsiteURL } from './readCurrentWebHostname.js';\n\nconst resources = {\n en: {\n translation: translationEN\n },\n fi: {\n translation: translationFI\n }\n}\n\n// TODO this won't work when we need multiple languages per website (swedish on omadiabetes.fi)\n\nconst languageBasedOfHost = (currentWebsiteURL === \"omadiabetes.fi\") ? \"fi\" : \"en\";\n\ni18n\n // load translation using xhr -> see /public/locales\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n resources,\n lng: languageBasedOfHost,\n // backend: {\n // loadPath: '/locales/{{lng}}.json'\n // },\n detection: {\n // order and from where user language should be detected\n order: ['cookie', 'navigator'], //default ['querystring', 'cookie', 'localStorage', 'navigator', 'htmlTag', 'path', 'subdomain'],\n lookupCookie: 'language',\n caches: []\n },\n // fallbackLng: 'fi',\n debug: false,\n\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n\n // react i18next special options (optional)\n // override if needed - omit if ok with defaults\n\n react: {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i'],\n useSuspense: false\n }\n })\n .then(() => {\n moment.locale(i18next.language);\n });\n\nexport default i18n;\n","import { ApolloClient } from 'apollo-client';\r\n// import { createHttpLink } from 'apollo-link-http';\r\nimport { InMemoryCache } from 'apollo-cache-inmemory';\r\nimport { setContext } from 'apollo-link-context';\r\nimport { ApolloLink, split } from 'apollo-link';\r\nimport { WebSocketLink } from 'apollo-link-ws';\r\nimport { getMainDefinition } from 'apollo-utilities';\r\nimport { createUploadLink } from 'apollo-upload-client';\r\n\r\nconst uploadLink = createUploadLink({\r\n uri: `${process.env.REACT_APP_SERVER_URL_WEB}/graphql`,\r\n credentials: 'include',\r\n fetch\r\n});\r\n\r\n// const httpLink = createHttpLink({\r\n// uri: `${process.env.REACT_APP_SERVER_URL_WEB}/graphql`,\r\n// // credentials: 'include',\r\n// fetch\r\n// });\r\n\r\nconst middlewareLink = setContext(() => ({\r\n headers: {\r\n 'x-token': localStorage.getItem('token'),\r\n 'x-refresh-token': localStorage.getItem('refreshToken')\r\n }\r\n}));\r\n\r\nconst afterWareLink = new ApolloLink((operation, forward) =>\r\n forward(operation).map(response => {\r\n const {\r\n response: { headers }\r\n } = operation.getContext();\r\n\r\n if (headers) {\r\n const token = headers.get('x-token');\r\n const refreshToken = headers.get('x-refresh-token');\r\n // console.log(token);\r\n // console.log(refreshToken);\r\n\r\n if (token) {\r\n localStorage.setItem('token', token);\r\n }\r\n\r\n if (refreshToken) {\r\n localStorage.setItem('refreshToken', refreshToken);\r\n }\r\n }\r\n return response;\r\n })\r\n);\r\n\r\nconst httplinkWithMiddleware = afterWareLink.concat(\r\n // middlewareLink.concat(httpLink)\r\n middlewareLink.concat(uploadLink)\r\n);\r\n\r\n// Subscriptions\r\nexport const wsLink = new WebSocketLink({\r\n // uri: 'ws://localhost:4000',\r\n uri: `${process.env.REACT_APP_SERVER_URL_WS}/graphql`,\r\n options: {\r\n reconnect: true,\r\n lazy: true,\r\n connectionParams: {\r\n token: localStorage.getItem('token'),\r\n refreshToken: localStorage.getItem('refreshToken')\r\n }\r\n /*\r\n connectionParams: {\r\n token:\r\n console.log(\r\n 'connectionParams token: ',\r\n localStorage.getItem('token')\r\n ) || localStorage.getItem('token'),\r\n\r\n refreshToken:\r\n console.log(\r\n 'connectionParams refreshToken: ',\r\n localStorage.getItem('refreshToken')\r\n ) || localStorage.getItem('refreshToken')\r\n }*/\r\n }\r\n});\r\n\r\nconst link = split(\r\n ({ query }) => {\r\n const { kind, operation } = getMainDefinition(query);\r\n return kind === 'OperationDefinition' && operation === 'subscription';\r\n },\r\n wsLink,\r\n httplinkWithMiddleware\r\n);\r\n\r\nexport default new ApolloClient({\r\n link,\r\n cache: new InMemoryCache()\r\n});\r\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register () {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW (swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker (swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","/**\r\n * From ReactGA Community Wiki Page https://github.com/react-ga/react-ga/wiki/React-Router-v4-withTracker\r\n */\r\n\r\nimport React, { Component } from 'react';\r\nimport ReactGA from 'react-ga';\r\n\r\n// ReactGA.initialize('UA-147961355-1');\r\n\r\nexport default function withTracker(WrappedComponent, options = {}) {\r\n const trackPage = (page) => {\r\n ReactGA.set({\r\n page,\r\n ...options\r\n });\r\n ReactGA.pageview(page);\r\n };\r\n\r\n const HOC = class extends Component {\r\n componentDidMount() {\r\n const page = this.props.location.pathname;\r\n trackPage(page);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const currentPage = this.props.location.pathname;\r\n const nextPage = nextProps.location.pathname;\r\n\r\n if (currentPage !== nextPage) {\r\n trackPage(nextPage);\r\n }\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n };\r\n\r\n return HOC;\r\n}","import { currentWebsiteURL } from \"./readCurrentWebHostname\";\r\n\r\nlet chatEnabled = false;\r\n\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n chatEnabled = true;\r\n}\r\n\r\nif (currentWebsiteURL === 'mydiabetes.chat') {\r\n chatEnabled = true;\r\n}\r\n\r\nexport const isChatEnabled = chatEnabled;","import React from 'react';\nimport { Header, Segment, Image } from 'semantic-ui-react';\nimport { randomBytes } from 'crypto';\nimport { HTMLtarget } from '../index';\nimport PPSHPLogo from './../Assets/logos/ppshp.png';\nimport emergencyContacts from './../Assets/Banner/EmergencyContacts.png'; // Tell Webpack this JS file uses this image\n\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/ImportantContacts\";\nimport omadiabetes_fi_data from './data/omadiabetes.fi/ImportantContacts';\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\n\n// TODO create more modular way!\nlet jsonDATA;\nif (currentWebsiteURL === \"omadiabetes.fi\") {\n jsonDATA = omadiabetes_fi_data;\n}\n\nif (currentWebsiteURL === \"mydiabetes.chat\") {\n jsonDATA = mydiabetes_chat_data;\n}\n\nconst displayContactInformation = jsonDATA.map((d, index) => {\n if (index <= 1) {\n return (\n \n
\n \n \n {d.topic ? d.topic : null}\n \n \n {d.info\n ? d.info.map(i => (\n \n ))\n : null}\n
\n \n );\n } else {\n return null;\n }\n});\n\nfunction Frontpage () {\n return (\n <>\n
\n
\n
\n \n
\n \n {(currentWebsiteURL === \"omadiabetes.fi\") ? \"Tärkeät yhteystiedot\" : \"Important Contact information\"}\n {/* // TODO translate!! */}\n {(currentWebsiteURL === \"omadiabetes.fi\") ? : \"\" }\n \n
\n {displayContactInformation}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n \n
\n {displayContactInformation}\n
\n
\n
\n
\n
\n \n );\n}\n\nexport default Frontpage;\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { Translation } from 'react-i18next';\r\n// import finFlag from '../Assets/icons/flag-finland@2x.png';\r\n// import engFlag from '../Assets/icons/flag-united-kingdom@2x.png';\r\nimport { Grid } from 'semantic-ui-react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport {\r\n faComments,\r\n faBreadSlice,\r\n faAddressBook,\r\n faRunning,\r\n faHandHoldingHeart,\r\n faNewspaper,\r\n faHandshake,\r\n faHospital\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport { isChatEnabled } from '../isChatEnabled';\r\n\r\n//{props.contentProvider}\r\n// read oys/tays/etc..\r\n\r\nconst NavBarLink = props => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Links = props => {\r\n return (\r\n <>\r\n
\r\n \r\n {t => (\r\n
\r\n
    \r\n {isChatEnabled &&
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(t('page.links.messages'));\r\n }}>\r\n {t('page.links.messages')}\r\n \r\n
  • }\r\n
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(t('page.links.carbohydrates'));\r\n }}>\r\n {t('page.links.carbohydrates')}\r\n \r\n
  • \r\n
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n t('page.links.importantContacts')\r\n );\r\n }}>\r\n {t('page.links.importantContacts')}\r\n \r\n
  • \r\n
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n t('page.links.specialSituations')\r\n );\r\n }}>\r\n {t('page.links.specialSituations')}\r\n \r\n
  • \r\n
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n t('page.links.diabetesCouncelingShort')\r\n );\r\n }}>\r\n {t('page.links.diabetesCounceling')}\r\n \r\n
  • \r\n
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(t('page.links.newsAndInfo'));\r\n }}>\r\n {t('page.links.newsAndInfo')}\r\n \r\n
  • \r\n
  • \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(t('page.links.benefits'));\r\n }}>\r\n {t('page.links.benefits')}\r\n \r\n
  • \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n {t => (\r\n
\r\n \r\n \r\n \r\n {isChatEnabled &&\r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.messages')}\r\n }\r\n
\r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n\r\n {t('page.links.emergencyContacts')}\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.importantContacts')}\r\n \r\n
\r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.carbohydrates')}\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.diabetesCounceling')}\r\n \r\n
\r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.specialSituations')}\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.benefits')}\r\n \r\n
\r\n \r\n {\r\n props.closeDrawer();\r\n props.changeTextHandler(\r\n \r\n );\r\n }}>\r\n

\r\n \r\n

\r\n {t('page.links.newsAndInfo')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Links;\r\n","import React from 'react';\r\n\r\nimport './DrawerToggleButton.scss';\r\n\r\nexport const DrawerToggleButton = props => (\r\n \r\n);\r\n","import React from 'react';\r\nimport { Trans } from 'react-i18next';\r\nimport { Sticky } from 'react-uikit3';\r\nimport Links from '../Links';\r\nimport { DrawerToggleButton } from '../SideDrawer/DrawerToggleButton';\r\nimport './Toolbar.scss';\r\nconst { detect } = require('detect-browser')\r\n\r\nconst browser = detect();\r\n\r\nexport const Toolbar = props => {\r\n if (browser.name === 'ie') {\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
{props.displayText}
\r\n \r\n \r\n
\r\n \r\n );\r\n } else {\r\n\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{props.displayText}
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n","import React from 'react';\r\n\r\nimport './SideDrawer.scss';\r\nimport Links from '../Links';\r\n\r\n\r\nexport const SideDrawer = props => {\r\n let drawerClasses = 'side-drawer';\r\n if (props.show) {\r\n drawerClasses = 'side-drawer open';\r\n }\r\n return (\r\n \r\n );\r\n};\r\n","import React, {Component} from 'react';\nimport companyLogo from './../../Assets/logos/companyLogo.png'\nimport { Image } from 'semantic-ui-react';\nimport './footer.scss';\nimport { Translation } from 'react-i18next';\n\nclass Footer extends Component {\n render () {\n return (\n
\n \n \n {t => (\n

{t('footer.poweredBy')} {t('footer.companyName')}

\n )}\n
\n
\n )\n }\n}\n\nexport default Footer\n","import React, {Component} from 'react';\nimport background from './../../Assets/backgrounds/background.jpg'; // Tell Webpack this JS file uses this image\nimport { Image } from 'semantic-ui-react';\nimport './Header.scss';\n\n\nclass Header extends Component {\n render () {\n return (\n \n )\n }\n}\n\nexport default Header\n ","import React, { Component } from 'react';\nimport { Toolbar } from './Toolbar/Toolbar';\nimport { SideDrawer } from './SideDrawer/SideDrawer';\nimport Frontpage from './../pages/Frontpage';\nimport Footer from './Footer/footer';\nimport Header from './Header/Header';\nimport { withRouter } from 'react-router-dom';\n\nclass Layout extends Component {\n constructor () {\n super();\n this.state = {\n width: window.innerWidth\n };\n }\n\n // make sure to remove the listener\n // when the component is not mounted anymore\n componentWillUnmount () {\n window.removeEventListener('resize', this.handleWindowSizeChange);\n }\n\n handleWindowSizeChange = () => {\n this.setState({ width: window.innerWidth });\n };\n\n state = {\n sideDrawerOpen: false,\n displayText: '',\n contentProvider: '',\n language: ''\n };\n // TODO: fix\n UNSAFE_componentWillMount () {\n const pathName = window.location.pathname.slice(1).toLowerCase();\n let contentProvider = '';\n\n if (pathName === 'oys') {\n contentProvider = 'OYS';\n }\n\n if (pathName === 'tays') {\n contentProvider = 'TAYS';\n }\n\n this.setState({\n contentProvider\n });\n }\n\n drawerToggleClickHandler = () => {\n this.setState(prevState => {\n return { sideDrawerOpen: !prevState.sideDrawerOpen };\n });\n };\n\n displayTextClickHandler = param => {\n this.setState({ displayText: param });\n };\n\n changeLanguageClickHandler = param => {\n this.setState({ language: param });\n const { i18n } = this.props;\n\n i18n.changeLanguage(param);\n\n // cookie.set('language', param);\n // window.location.reload();\n };\n\n getViewPortSize = () => {\n let vh = window.innerHeight * 0.01;\n // Then we set the value in the --vh custom property to the root of the document\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n // We listen to the resize event\n window.addEventListener('resize', () => {\n // We execute the same script as before\n let vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n // console.log(vh);\n });\n // console.log(vh);\n };\n\n render () {\n const { width } = this.state;\n const isMobile = width <= 768;\n this.getViewPortSize();\n\n let showFrontPage = true;\n\n if (this.props.location.pathname === '/ViewChatWebsite') {\n // Hide frontpage if window height less than 1200px\n if (window.innerHeight <= 1200) {\n showFrontPage = false;\n }\n }\n if (isMobile) {\n return (\n <>\n
\n
\n
\n \n \n\n
\n {/* \"jejasdf\" */}\n {this.props.children}\n
\n
\n
\n
\n \n );\n } else {\n return (\n <>\n
\n
\n
\n
\n
\n
\n \n \n
{this.props.children}
\n {showFrontPage && }\n\n
\n
\n
\n
\n
\n \n );\n }\n }\n}\n\nexport default withRouter(Layout);\n","import React from 'react';\nimport { Icon } from 'semantic-ui-react';\nimport ReactGA from 'react-ga';\nimport { HTMLtarget, images } from '../../index';\n\nexport function LinkWithoutPopup (textORtopic, url, url_text, url_image) {\n return WithoutPopup(textORtopic, url, url_text, url_image, false);\n}\n\nexport function LinkWithoutPopupBold (textORtopic, url, url_text, url_image) {\n return WithoutPopup(textORtopic, url, url_text, url_image, true);\n}\n\nfunction WithoutPopup (textORtopic, url, url_text, url_image, bold = false) {\n if (bold) {\n return (\n \n \n {url_text ? <>{url_text} : <>{textORtopic}}\n  \n \n \n \n );\n }\n\n return (\n \n {url_text ? <>{url_text} : <>{textORtopic}}\n  \n \n \n );\n}\n","import React from 'react';\nimport ReactGA from 'react-ga';\nimport { HTMLtarget } from '../../index';\n\nexport function WithSource (url, source, source_url) {\n return (\n
\n
\n Source:\n \n {source}\n \n
\n
\n );\n}\n","import React from 'react';\r\nimport { LinkWithoutPopupBold } from './LinkWithoutPopup';\r\nimport { WithSource } from './WithSource';\r\n\r\nexport function displayLinks (data, outerTopic) {\r\n if (!data) return null;\r\n\r\n return data.map((d, index) => (\r\n
\r\n
\r\n {outerTopic === d.topic ? (\r\n LinkWithoutPopupBold(d.text, d.url)\r\n ) : (\r\n
\r\n {LinkWithoutPopupBold(d.topic, d.url)}\r\n
{d.text}
\r\n {d.source ? WithSource(d.url, d.source, d.source_url) : null}\r\n
\r\n )}\r\n
\r\n
\r\n ));\r\n}\r\n","import React from 'react';\nimport { Image } from 'semantic-ui-react';\nimport { logos, HTMLtarget } from '../../index';\n\nexport function WithLogo (url, logo) {\n const logoSource = logos[`${logo}`];\n\n return (\n
\n \n
\n );\n}\n","import React from 'react';\nimport ReactGA from 'react-ga';\n\nimport { pdfs, HTMLtarget } from '../../index';\n\nexport function WithPDF (pdf, title) {\n let pdfSource;\n if (pdf) {\n pdfSource = pdfs[`${pdf}`];\n }\n\n return (\n \n \n {title}\n \n \n );\n}\n","import React from 'react';\r\nimport { LinkWithoutPopupBold } from './LinkWithoutPopup';\r\nimport { WithLogo } from './WithLogo';\r\nimport { WithModal } from './WithModal';\r\nimport { WithPDF } from './WithPDF';\r\nimport { WithSource } from './WithSource';\r\n\r\nexport function displaySubfields (data, outerTopic) {\r\n if (!data) return null;\r\n\r\n return data.map((d, index) => {\r\n return (\r\n
\r\n
\r\n {outerTopic === d.topic ? (\r\n LinkWithoutPopupBold(d.text, d.url, d.url_text, d.url_image)\r\n ) : (\r\n
\r\n {d.pdf ? (\r\n WithPDF(d.pdf, d.pdf_title)\r\n ) : (\r\n \r\n {d.url_image\r\n ? WithModal(d.topic, d.url_image)\r\n : LinkWithoutPopupBold(d.topic, d.url, d.url_text, d.url_image)}\r\n \r\n )}\r\n\r\n
{d.text}
\r\n {d.source ? WithSource(d.url, d.source, d.source_url) : null}\r\n {d.logo ? WithLogo(d.source_url, d.logo) : null}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n });\r\n}\r\n","import React from 'react';\nimport { Icon, Modal, Image } from 'semantic-ui-react';\nimport { images } from '../..';\n\nexport function WithModal (textORtopic, url_image) {\n return (\n \n \n {textORtopic}\n

\n }>\n \n \n );\n}\n","import React from 'react';\r\n\r\nexport function WithHTML (html) {\r\n return
;\r\n}\r\n","import React from 'react';\r\nimport { Accordion, Icon } from 'semantic-ui-react';\r\nimport { displayLinks } from './DisplayLinks';\r\nimport { displaySubfields } from './DisplaySubfields';\r\nimport { LinkWithoutPopupBold } from './LinkWithoutPopup';\r\nimport { WithHTML } from './WithHTML';\r\nimport { WithImage } from './WithImage';\r\nimport { WithLogo } from './WithLogo';\r\nimport { WithPDF } from './WithPDF';\r\nimport { WithSource } from './WithSource';\r\n\r\n\r\nexport function displayAccordion (data, activeIndex, handleClick) {\r\n if (!data) return null;\r\n\r\n return data.map((d, index) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n {d.topic}\r\n \r\n \r\n <>\r\n {d.text ?

{d.text}

: null}\r\n {d.html ? WithHTML(d.html) : null}\r\n {d.url ? (\r\n <>\r\n {LinkWithoutPopupBold(d.topic, d.url, d.url_text)}\r\n {d.source ? WithSource(d.url, d.source, d.source_url) : null}\r\n \r\n ) : null}\r\n {d.links ? displayLinks(d.links, d.topic) : null}\r\n {d.logo ? WithLogo(d.source_url, d.logo, null, 'small') : null}\r\n {d.image ? (\r\n <>\r\n {WithImage(d.url, null, d.image, 'massive')}\r\n {d.source ? WithSource(d.url, d.source, d.source_url) : null}\r\n \r\n ) : null}\r\n {d.pdf ? WithPDF(d.pdf, d.pdf_title) : null}\r\n {d.subfields ? <>{displaySubfields(d.subfields)} : <>}\r\n \r\n
\r\n
\r\n
\r\n );\r\n });\r\n}\r\n","import React from 'react';\nimport { Image } from 'semantic-ui-react';\nimport { logos, images } from '../../index';\n\nexport function WithImage (url, logo, image, size = 'small') {\n let imageSource;\n if (logo) {\n imageSource = logos[`${logo}`];\n }\n if (image) {\n imageSource = images[`${image}`];\n }\n\n return ;\n}\n","import React from 'react';\nimport { Image, Modal, Icon, Accordion } from 'semantic-ui-react';\nimport { images } from '../..';\nimport { displayLinks } from './DisplayLinks';\nimport { displaySubfields } from './DisplaySubfields';\nimport { LinkWithoutPopupBold } from './LinkWithoutPopup';\nimport { WithHTML } from './WithHTML';\nimport { WithLogo } from './WithLogo';\nimport { WithPDF } from './WithPDF';\nimport { WithSource } from './WithSource';\n\nexport function displaySegment (data, activeIndex, handleClick) {\n if (!data) return null;\n\n return data.map((d, index) => {\n return (\n
\n
\n \n \n {d.topic}\n \n \n \n <>\n {/* \n {d.topic}\n */}\n
\n {d.text ?

{d.text}

: null}\n {d.html ? WithHTML(d.html) : null}\n {d.url ? (\n <>\n {LinkWithoutPopupBold(d.topic, d.url, d.url_text)}\n {d.source\n ? WithSource(d.url, d.source, d.source_url)\n : null}\n \n ) : null}\n {d.info ? (\n <>\n
\n {d.info.map(i => (\n \n ))}\n
\n \n ) : null}\n {d.links ? displayLinks(d.links, d.topic) : null}\n {d.logo ? WithLogo(d.source_url, d.logo) : null}\n {d.image ? (\n <>\n \n }>\n \n \n {d.source\n ? WithSource(d.url, d.source, d.source_url)\n : null}\n \n ) : null}\n {d.pdf ? WithPDF(d.pdf, d.pdf_title) : null}\n {d.subfields ? displaySubfields(d.subfields) : null}\n
\n \n \n
\n
\n
\n );\n });\n}\n","import React, { Component } from 'react';\r\nimport { Image } from 'semantic-ui-react';\r\nimport { displayAccordion } from './components/DisplayAccordion';\r\nimport { displaySegment } from './components/DisplaySegment';\r\nimport benefits from './../Assets/Banner/Benefits.jpg'; // Tell Webpack this JS file uses this image\r\n\r\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/Benefits\";\r\nimport omadiabetes_fi_data from './data/omadiabetes.fi/Benefits';\r\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\r\n\r\n// TODO create more modular way!\r\nlet jsonDATA;\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n jsonDATA = omadiabetes_fi_data;\r\n}\r\n\r\nif (currentWebsiteURL === \"mydiabetes.chat\") {\r\n jsonDATA = mydiabetes_chat_data;\r\n}\r\n\r\n\r\n\r\nexport default class Benefits extends Component {\r\n state = { activeIndex: -1 };\r\n\r\n handleClick = (e, titleProps) => {\r\n const { index } = titleProps;\r\n const { activeIndex } = this.state;\r\n const newIndex = activeIndex === index ? -1 : index;\r\n\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n\r\n render () {\r\n const { activeIndex } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
{displaySegment(jsonDATA, activeIndex, this.handleClick)}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {displayAccordion(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Image } from 'semantic-ui-react';\r\nimport { displayAccordion } from './components/DisplayAccordion';\r\nimport { displaySegment } from './components/DisplaySegment';\r\nimport specialSituation from './../Assets/Banner/SpecialSituations.png'; // Tell Webpack this JS file uses this image\r\n\r\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/SpecialSituations\";\r\nimport omadiabetes_fi_data from './data/omadiabetes.fi/SpecialSituations';\r\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\r\n\r\n// TODO create more modular way!\r\nlet jsonDATA;\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n jsonDATA = omadiabetes_fi_data;\r\n}\r\n\r\nif (currentWebsiteURL === \"mydiabetes.chat\") {\r\n jsonDATA = mydiabetes_chat_data;\r\n}\r\n\r\nexport default class SpecialSituations extends Component {\r\n state = { activeIndex: -1 };\r\n\r\n handleClick = (e, titleProps) => {\r\n const { index } = titleProps;\r\n const { activeIndex } = this.state;\r\n const newIndex = activeIndex === index ? -1 : index;\r\n\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n\r\n render () {\r\n const { activeIndex } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
{displaySegment(jsonDATA, activeIndex, this.handleClick)}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {displayAccordion(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Image } from 'semantic-ui-react';\r\nimport { displayAccordion } from './components/DisplayAccordion';\r\nimport { displaySegment } from './components/DisplaySegment';\r\nimport diabetesCounceling from './../Assets/Banner/DiabetesCounceling.jpg'; // Tell Webpack this JS file uses this image\r\n\r\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/DiabetesCounceling\";\r\nimport omadiabetes_fi_data from './data/omadiabetes.fi/DiabetesCounceling';\r\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\r\n\r\n// TODO create more modular way!\r\nlet jsonDATA;\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n jsonDATA = omadiabetes_fi_data;\r\n}\r\n\r\nif (currentWebsiteURL === \"mydiabetes.chat\") {\r\n jsonDATA = mydiabetes_chat_data;\r\n}\r\n\r\nclass DiabetesCounceling extends Component {\r\n state = {\r\n activeIndex: -1,\r\n numPages: null,\r\n pageNumber: 1\r\n };\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages });\r\n };\r\n\r\n handleClick = (e, titleProps) => {\r\n const { index } = titleProps;\r\n const { activeIndex } = this.state;\r\n const newIndex = activeIndex === index ? -1 : index;\r\n\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n\r\n handleColorChange = e => this.setState({ color: e.target.value });\r\n\r\n handleChange = (e, data) => this.setState(data);\r\n\r\n render () {\r\n const { activeIndex } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
{displaySegment(jsonDATA, activeIndex, this.handleClick)}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {displayAccordion(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default DiabetesCounceling;\r\n","import React, { Component } from 'react';\r\nimport { Image } from 'semantic-ui-react';\r\nimport { displayAccordion } from './components/DisplayAccordion';\r\nimport { displaySegment } from './components/DisplaySegment';\r\nimport news from './../Assets/Banner/News_and_info.jpg'; // Tell Webpack this JS file uses this image\r\n\r\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/NewsAndInfo\";\r\nimport omadiabetes_fi_data from './data/omadiabetes.fi/NewsAndInfo';\r\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\r\n\r\n// TODO create more modular way!\r\nlet jsonDATA;\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n jsonDATA = omadiabetes_fi_data;\r\n}\r\n\r\nif (currentWebsiteURL === \"mydiabetes.chat\") {\r\n jsonDATA = mydiabetes_chat_data;\r\n}\r\n\r\nexport default class NewsAndInfo extends Component {\r\n state = { activeIndex: -1 };\r\n\r\n handleClick = (e, titleProps) => {\r\n const { index } = titleProps;\r\n const { activeIndex } = this.state;\r\n const newIndex = activeIndex === index ? -1 : index;\r\n\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n\r\n render () {\r\n const { activeIndex } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
{displaySegment(jsonDATA, activeIndex, this.handleClick)}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {displayAccordion(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nimport { displaySegment } from './components/DisplaySegment';\r\nimport { displayAccordion } from './components/DisplayAccordion';\r\nimport { Image } from 'semantic-ui-react';\r\nimport importantContact from './../Assets/Banner/ImportantContact.jpeg'; // Tell Webpack this JS file uses this image\r\n\r\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/ImportantContacts\";\r\nimport omadiabetes_fi_data from './data/omadiabetes.fi/ImportantContacts';\r\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\r\n\r\n// TODO create more modular way!\r\nlet jsonDATA;\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n jsonDATA = omadiabetes_fi_data;\r\n}\r\n\r\nif (currentWebsiteURL === \"mydiabetes.chat\") {\r\n jsonDATA = mydiabetes_chat_data;\r\n}\r\n\r\nclass ImportantContacts extends Component {\r\n state = { activeIndex: -1 };\r\n\r\n handleClick = (e, titleProps) => {\r\n const { index } = titleProps;\r\n const { activeIndex } = this.state;\r\n const newIndex = activeIndex === index ? -1 : index;\r\n\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n render () {\r\n const { activeIndex } = this.state;\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {displaySegment(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {displayAccordion(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ImportantContacts;\r\n","import React, { Component } from 'react';\r\nimport { Image } from 'semantic-ui-react';\r\nimport { displayAccordion } from './components/DisplayAccordion';\r\nimport { displaySegment } from './components/DisplaySegment';\r\nimport carbohydrates from './../Assets/Banner/Carbohydrates.jpg'; // Tell Webpack this JS file uses this image\r\n\r\nimport mydiabetes_chat_data from \"./data/mydiabetes.chat/Carbohydrates\";\r\nimport omadiabetes_fi_data from './data/omadiabetes.fi/Carbohydrates';\r\nimport { currentWebsiteURL } from '../readCurrentWebHostname';\r\n\r\n// TODO create more modular way!\r\nlet jsonDATA;\r\nif (currentWebsiteURL === \"omadiabetes.fi\") {\r\n jsonDATA = omadiabetes_fi_data;\r\n}\r\n\r\nif (currentWebsiteURL === \"mydiabetes.chat\") {\r\n jsonDATA = mydiabetes_chat_data;\r\n}\r\n\r\nclass Carbohydrates extends Component {\r\n state = { activeIndex: -1 };\r\n\r\n handleClick = (e, titleProps) => {\r\n const { index } = titleProps;\r\n const { activeIndex } = this.state;\r\n const newIndex = activeIndex === index ? -1 : index;\r\n\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n\r\n handleColorChange = e => this.setState({ color: e.target.value });\r\n\r\n handleChange = (e, data) => this.setState(data);\r\n\r\n render () {\r\n const { activeIndex } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {displaySegment(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {displayAccordion(jsonDATA, activeIndex, this.handleClick)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default Carbohydrates;\r\n","import React from 'react';\nimport {\n Container,\n Header,\n Input,\n Button,\n Message,\n Form\n} from 'semantic-ui-react';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport gql from 'graphql-tag';\nimport uuidvalidate from 'uuid-validate';\nimport { Redirect } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\n\nclass Register extends React.Component {\n state = {\n login: '',\n loginError: '',\n displayname: '',\n displaynameError: '',\n password: '',\n passwordError: '',\n token: '',\n redirect: false\n };\n\n componentDidMount () {\n const { token } = this.props.match.params;\n const validUuid = uuidvalidate(token);\n\n if (!validUuid) {\n this.setState({\n redirect: true\n });\n }\n\n this.setState({\n token\n });\n }\n\n renderRedirect = () => {\n if (this.state.redirect) {\n return ;\n }\n };\n\n onSubmit = async e => {\n this.setState({\n loginError: '',\n displaynameError: '',\n passwordError: ''\n });\n const { login, displayname, password, token } = this.state;\n const response = await this.props.mutate({\n variables: { login, displayname, password, token }\n });\n\n const { ok, errors } = response.data.updateUserRegister;\n\n if (ok) {\n this.props.history.push('/login');\n } else {\n const err = {};\n if (errors) {\n errors.forEach(({ path, message }) => {\n // err['passwordError'] = 'too long..';\n err[`${path}Error`] = message;\n });\n }\n\n this.setState(err);\n }\n };\n\n onChange = e => {\n const { name, value } = e.target;\n // name = \"login\" --> this.setState({ login: value}) etc..\n this.setState({ [name]: value });\n };\n\n render () {\n const {\n login,\n displayname,\n password,\n loginError,\n displaynameError,\n passwordError\n } = this.state;\n\n const { t } = this.props;\n\n const translateError = errorText => {\n const withNoDigits =\n 'chat.error.' + errorText.replace(/[0-9]/g, '').replace(/ +(?= )/g, '');\n var translatedText = t(withNoDigits, {\n count: errorText.replace(/\\D/g, '')\n });\n return translatedText;\n };\n\n const errorList = [];\n if (loginError) errorList.push(translateError(loginError));\n if (displaynameError) errorList.push(translateError(displaynameError));\n if (passwordError) errorList.push(translateError(passwordError));\n\n // !! means casting to boolean\n // !'' => true\n // !!'' => false\n return (\n <>\n {this.renderRedirect()}\n
\n \n
\n {t(\n 'chat.register.registerHeader',\n '_chat.register.registerHeader'\n )}\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {errorList.length ? (\n \n ) : null}\n
\n
\n \n );\n }\n}\n\n// const registerMutation = gql`\n// mutation($login: String!, $displayname: String!, $password: String!) {\n// register(login: $login, displayname: $displayname, password: $password) {\n// ok\n// errors {\n// path\n// message\n// }\n// }\n// }\n// `;\n\nconst updateUserRegisterMutation = gql`\n mutation(\n $token: String!\n $login: String!\n $displayname: String!\n $password: String!\n ) {\n updateUserRegister(\n token: $token\n login: $login\n displayname: $displayname\n password: $password\n ) {\n ok\n errors {\n path\n message\n }\n }\n }\n`;\n\nexport default compose(\n graphql(updateUserRegisterMutation),\n withTranslation()\n)(Register);\n","import React, { Component } from 'react';\nimport {\n Container,\n Header,\n Input,\n Button,\n Form,\n Message\n} from 'semantic-ui-react';\nimport { extendObservable } from 'mobx';\n\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport gql from 'graphql-tag';\nimport { observer } from 'mobx-react';\nimport { wsLink } from '../apollo';\nimport { withTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router-dom';\n\nclass Login extends Component {\n constructor (props) {\n super(props);\n\n extendObservable(this, {\n login: '',\n password: '',\n errors: {}\n });\n }\n\n onSubmit = async () => {\n const { login, password } = this;\n const response = await this.props.mutate({\n variables: { login, password }\n });\n\n // console.log(response);\n\n const { ok, token, refreshToken, errors } = response.data.login;\n\n if (ok) {\n localStorage.setItem('token', token);\n localStorage.setItem('refreshToken', refreshToken);\n wsLink.subscriptionClient.tryReconnect();\n this.props.history.push('/ViewChat');\n } else {\n const err = {};\n errors.forEach(({ path, message }) => {\n // err['passwordError'] = 'too long..';\n err[`${path}Error`] = message;\n });\n\n this.errors = err;\n }\n };\n\n onChange = e => {\n const { name, value } = e.target;\n this[name] = value;\n };\n\n render () {\n // prettier-ignore\n const { login, password, errors: { loginError, passwordError } } = this;\n const { t } = this.props;\n\n const translateError = errorText => {\n const withNoDigits =\n 'chat.error.' + errorText.replace(/[0-9]/g, '').replace(/ +(?= )/g, '');\n var translatedText = t(withNoDigits, {\n count: errorText.replace(/\\D/g, '')\n });\n return translatedText;\n };\n\n const errorList = [];\n if (loginError) errorList.push(translateError(loginError));\n if (passwordError) errorList.push(translateError(passwordError));\n\n return (\n <>\n
\n
\n \n {t('chat.login.loginHeader')}\n \n \n
\n \n \n
\n \n
\n
\n \n \n \n \n {/* \n \n \n \n \n \n Forget password?\n \n \n */}\n \n {t('chat.login.logIn')}\n \n \n
\n {errorList.length ? (\n \n ) : null}\n
\n
\n
\n
\n
\n
\n
\n \n \n {t('chat.login.loginHeader')}\n \n
\n \n \n \n \n \n \n \n \n {/* \n \n \n \n \n \n Forget password?\n \n \n */}\n \n {t('chat.login.logIn')}\n \n \n
\n {errorList.length ? (\n \n ) : null}\n
\n
\n
\n
\n \n );\n }\n}\n\nconst loginMutation = gql`\n mutation($login: String!, $password: String!) {\n login(login: $login, password: $password) {\n ok\n token\n refreshToken\n errors {\n path\n message\n }\n }\n }\n`;\n\nexport default compose(\n graphql(loginMutation),\n withTranslation()\n)(withRouter(Login), observer(Login));\n","import React from 'react';\r\nimport { ApolloConsumer } from 'react-apollo';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nexport default () => (\r\n \r\n {client => {\r\n client.resetStore();\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('refreshToken');\r\n return ;\r\n }}\r\n \r\n);\r\n","import React from 'react';\r\nimport {\r\n Container,\r\n Header,\r\n Input,\r\n Button,\r\n Message,\r\n Form\r\n} from 'semantic-ui-react';\r\nimport { graphql } from 'react-apollo';\r\nimport gql from 'graphql-tag';\r\n\r\nclass ChangePassword extends React.Component {\r\n state = {\r\n password: '',\r\n passwordError: ''\r\n };\r\n\r\n onSubmit = async e => {\r\n this.setState({\r\n passwordError: ''\r\n });\r\n const { password } = this.state;\r\n const response = await this.props.mutate({\r\n variables: { password }\r\n });\r\n\r\n const { ok, errors } = response.data.register;\r\n\r\n if (ok) {\r\n this.props.history.push('/login');\r\n } else {\r\n const err = {};\r\n errors.forEach(({ path, message }) => {\r\n // err['passwordError'] = 'too long..';\r\n err[`${path}Error`] = message;\r\n });\r\n\r\n this.setState(err);\r\n }\r\n\r\n console.log(response);\r\n };\r\n\r\n onChange = e => {\r\n const { name, value } = e.target;\r\n // name = \"login\" --> this.setState({ login: value}) etc..\r\n this.setState({ [name]: value });\r\n };\r\n\r\n render () {\r\n const { password, passwordError } = this.state;\r\n\r\n const errorList = [];\r\n if (passwordError) errorList.push(passwordError);\r\n\r\n // !! means casting to boolean\r\n // !'' => true\r\n // !!'' => false\r\n return (\r\n \r\n
Aseta salasana
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {errorList.length ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst changePasswordMutation = gql`\r\n mutation($password: String!) {\r\n register(password: $password) {\r\n ok\r\n errors {\r\n path\r\n message\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default graphql(changePasswordMutation)(ChangePassword);\r\n","import React, { Component } from 'react';\r\nimport {\r\n Container,\r\n Header,\r\n Input,\r\n Button,\r\n Form,\r\n Message\r\n} from 'semantic-ui-react';\r\nimport { extendObservable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { graphql } from 'react-apollo';\r\nimport gql from 'graphql-tag';\r\n\r\nclass CreateTeam extends Component {\r\n constructor (props) {\r\n super(props);\r\n\r\n extendObservable(this, {\r\n name: '',\r\n errors: {}\r\n });\r\n }\r\n\r\n onSubmit = async () => {\r\n const { name } = this;\r\n let response = null;\r\n\r\n try {\r\n response = await this.props.mutate({\r\n variables: { name }\r\n });\r\n } catch (err) {\r\n this.props.history.push('/login');\r\n return;\r\n }\r\n\r\n console.log(response);\r\n\r\n const { ok, errors, team } = response.data.createTeam;\r\n\r\n if (ok) {\r\n this.props.history.push(`/ViewChat/${team.id}`);\r\n } else {\r\n const err = {};\r\n errors.forEach(({ path, message }) => {\r\n // err['passwordError'] = 'too long..';\r\n err[`${path}Error`] = message;\r\n });\r\n\r\n this.errors = err;\r\n }\r\n };\r\n\r\n onChange = e => {\r\n const { name, value } = e.target;\r\n this[name] = value;\r\n };\r\n\r\n render () {\r\n // prettier-ignore\r\n const { name, errors: { nameError } } = this;\r\n\r\n const errorList = [];\r\n if (nameError) errorList.push(nameError);\r\n\r\n return (\r\n \r\n
Create a team
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {errorList.length ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst createTeamMutation = gql`\r\n mutation($name: String!) {\r\n createTeam(name: $name) {\r\n ok\r\n team {\r\n id\r\n }\r\n errors {\r\n path\r\n message\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default graphql(createTeamMutation)(observer(CreateTeam));\r\n","import React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom';\n\nclass ViewChat extends Component {\n constructor () {\n super();\n this.state = {\n width: window.innerWidth,\n };\n }\n// TODO: fix\n UNSAFE_componentWillMount () {\n window.addEventListener('resize', this.handleWindowSizeChange);\n }\n\n // make sure to remove the listener\n // when the component is not mounted anymore\n componentWillUnmount () {\n window.removeEventListener('resize', this.handleWindowSizeChange);\n }\n\n handleWindowSizeChange = () => {\n this.setState({ width: window.innerWidth });\n };\n\n render () {\n const { width } = this.state;\n const isMobile = width <= 768;\n\n // the rest is the same...\n\n if (isMobile) {\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n }\n}\n\nexport default ViewChat","import React, { Component } from 'react';\r\n\r\nclass OwnGoals extends Component {\r\n state = {};\r\n render () {\r\n return (\r\n
\r\n

Own goals

\r\n

\r\n

\r\n );\r\n }\r\n}\r\n\r\nexport default OwnGoals;\r\n","import React, { Component } from 'react';\r\n\r\nclass DiabetesFacts extends Component {\r\n state = {};\r\n render () {\r\n return (\r\n
\r\n
\r\n

DiabetesFacts

\r\n

\r\n

\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DiabetesFacts;\r\n","import React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom';\n\nclass WidthLayouts extends Component {\n constructor () {\n super();\n this.state = {\n width: window.innerWidth,\n };\n }\n\n // TODO: fix\n UNSAFE_componentWillMount () {\n window.addEventListener('resize', this.handleWindowSizeChange);\n }\n\n // make sure to remove the listener\n // when the component is not mounted anymore\n // TODO: fix\n componentWillUnmount () {\n window.removeEventListener('resize', this.handleWindowSizeChange);\n }\n\n handleWindowSizeChange = () => {\n this.setState({ width: window.innerWidth });\n };\n\n render () {\n const { width } = this.state;\n const isMobile = width <= 768;\n\n // the rest is the same...\n\n if (isMobile) {\n return (\n \n );\n }\n else {\n return (\n \n );\n }\n }\n}\n\nexport default WidthLayouts","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Trans } from 'react-i18next';\r\n\r\n\r\nexport default ({ channelName }) => (\r\n
\r\n\r\n
\r\n

{channelName}

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

users

*/}\r\n
\r\n
\r\n);\r\n","import React from 'react';\n\nimport { TextArea, Button } from 'semantic-ui-react';\nimport { withFormik } from 'formik';\n\nimport Dropzone from 'react-dropzone';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport gql from 'graphql-tag';\nimport { Translation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faPaperPlane, faPlus } from '@fortawesome/free-solid-svg-icons';\n\nconst SendMessage = ({\n values,\n handleChange,\n handleSubmit,\n mutate,\n channelId\n}) => (\n
\n {\n await mutate({\n variables: {\n channelId,\n file\n }\n });\n // console.table(response);\n }}>\n {({ getRootProps, getInputProps }) => (\n \n \n \n \n )}\n \n \n {t => (\n
\n \n \n \n )}\n
\n
\n);\n\nconst createFileMessageMutation = gql`\n mutation($channelId: ID!, $file: Upload) {\n createMessage(channelId: $channelId, file: $file)\n }\n`;\n\nexport default compose(\n graphql(createFileMessageMutation),\n withFormik({\n mapPropsToValues: () => ({ message: '' }),\n\n handleSubmit: async (\n values,\n { props: { onSubmit }, setSubmitting, resetForm }\n ) => {\n if (!values.message || !values.message.trim()) {\n setSubmitting(false);\n return;\n }\n\n await onSubmit(values.message);\n resetForm(false);\n }\n })\n)(SendMessage);\n","import React from 'react';\r\n\r\nimport { Icon } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\n// import { ChatItem } from 'react-chat-elements';\r\n// import moment from 'moment';\r\nimport { sidebarClose } from './sidebarToggle';\r\n\r\nimport './Channels.scss';\r\nimport { THIS_IS_PATIENT_CHANNEL } from '../../../index';\r\nimport { Trans, Translation } from 'react-i18next';\r\n// import { sidebarClose } from './sidebarToggle';\r\n\r\nconst Bubble = ({ on = true }) =>\r\n on ? â—Ź : 'â—‹';\r\n\r\nconst channel = ({ id, name }, teamId, teamName) => {\r\n let displayChannelName = name;\r\n if (name === THIS_IS_PATIENT_CHANNEL) {\r\n displayChannelName = teamName;\r\n }\r\n\r\n return (\r\n \r\n
  • \r\n {/* */}\r\n {displayChannelName}\r\n
  • \r\n \r\n );\r\n};\r\n\r\n// const dmChannel = ({ id, name }, teamId) => (\r\n//
  • \r\n// \r\n// {name}\r\n// \r\n//
  • \r\n// );\r\n\r\nexport default ({\r\n teamName,\r\n displayName,\r\n channels,\r\n dmChannels,\r\n onAddChannelClick,\r\n teamId,\r\n onInvitePeopleClick,\r\n onDirectMessageClick,\r\n isOwner\r\n}) => (\r\n
    \r\n
    \r\n {/*

    \r\n Tiimi:
    \r\n {teamName}\r\n

    */}\r\n\r\n {/* Käyttäjä: */}\r\n \r\n {t => (\r\n sidebarClose('left')}\r\n title={t('chat.sideBar.close')}>\r\n \r\n {t('chat.sideBar.close')}\r\n {/* */}\r\n \r\n )}\r\n \r\n {/*
    \r\n {displayName} */}\r\n
    \r\n
    \r\n
      \r\n
    • \r\n \r\n
    • \r\n\r\n {channels.map(c => channel(c, teamId, teamName, displayName))}\r\n\r\n
      \r\n\r\n {isOwner && (\r\n

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

      \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/*
    \r\n
      \r\n
    • \r\n Direct Messages\r\n \r\n
    • \r\n {dmChannels.map(dmC => dmChannel(dmC, teamId))}\r\n
    \r\n
    */}\r\n {/* {isOwner && (\r\n \r\n )} */}\r\n
    \r\n);\r\n","const sidebarOpen = () => {\r\n const sidebarLeft = document.getElementsByClassName('sidebar-left')[0];\r\n const sidebarButtonOpen = document.getElementsByClassName(\r\n 'sidebarButtonOpen'\r\n )[0];\r\n const sidebarButtonClose = document.getElementsByClassName(\r\n 'sidebarButtonClose'\r\n )[0];\r\n\r\n if (sidebarLeft) {\r\n if (sidebarLeft.classList.contains('sidebar-left-closed')) {\r\n sidebarLeft.classList.remove('sidebar-left-closed');\r\n sidebarLeft.classList.add('sidebar-left-open');\r\n }\r\n }\r\n if (sidebarButtonOpen) {\r\n if (sidebarButtonOpen.classList.contains('visible')) {\r\n sidebarButtonOpen.classList.remove('visible');\r\n if (sidebarButtonClose) {\r\n sidebarButtonClose.classList.add('visible');\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst sidebarClose = () => {\r\n const sidebarLeft = document.getElementsByClassName('sidebar-left')[0];\r\n\r\n const sidebarButtonOpen = document.getElementsByClassName(\r\n 'sidebarButtonOpen'\r\n )[0];\r\n const sidebarButtonClose = document.getElementsByClassName(\r\n 'sidebarButtonClose'\r\n )[0];\r\n\r\n if (sidebarLeft) {\r\n if (sidebarLeft.classList.contains('sidebar-left-open')) {\r\n sidebarLeft.classList.remove('sidebar-left-open');\r\n sidebarLeft.classList.add('sidebar-left-closed');\r\n }\r\n }\r\n if (sidebarButtonClose) {\r\n if (sidebarButtonClose.classList.contains('visible')) {\r\n sidebarButtonClose.classList.remove('visible');\r\n if (sidebarButtonOpen) {\r\n sidebarButtonOpen.classList.add('visible');\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport { sidebarOpen, sidebarClose };\r\n\r\n/*\r\noriginal code for reference\r\nconst sidebarOpen = side => {\r\n const sidebarLeft = document.getElementsByClassName('sidebar-left')[0];\r\n const sidebarRight = document.getElementsByClassName('sidebar-right')[0];\r\n\r\n if (side === 'left') {\r\n if (sidebarRight.classList.contains('sidebar-right-open')) {\r\n sidebarRight.classList.remove('sidebar-right-open');\r\n sidebarRight.classList.add('sidebar-right-closed');\r\n }\r\n\r\n if (sidebarLeft.classList.contains('sidebar-left-closed')) {\r\n sidebarLeft.classList.remove('sidebar-left-closed');\r\n sidebarLeft.classList.add('sidebar-left-open');\r\n }\r\n } else if (side === 'right') {\r\n if (sidebarLeft.classList.contains('sidebar-left-open')) {\r\n sidebarLeft.classList.remove('sidebar-left-open');\r\n sidebarLeft.classList.add('sidebar-left-closed');\r\n }\r\n\r\n if (sidebarRight.classList.contains('sidebar-right-closed')) {\r\n sidebarRight.classList.remove('sidebar-right-closed');\r\n sidebarRight.classList.add('sidebar-right-open');\r\n }\r\n }\r\n};\r\n\r\nconst sidebarClose = side => {\r\n const sidebar = document.getElementsByClassName(`sidebar-${side}`)[0];\r\n\r\n if (sidebar.classList.contains(`sidebar-${side}-open`)) {\r\n sidebar.classList.remove(`sidebar-${side}-open`);\r\n sidebar.classList.add(`sidebar-${side}-closed`);\r\n }\r\n};\r\n\r\nexport { sidebarOpen, sidebarClose };\r\n*/\r\n","import gql from 'graphql-tag';\r\n\r\nexport const meQuery = gql`\r\n {\r\n me {\r\n id\r\n login\r\n displayname\r\n role\r\n teams {\r\n id\r\n name\r\n admin\r\n channels {\r\n id\r\n name\r\n dm\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const emptystuff = {};\r\n\r\nexport const getTeamMembersQuery = gql`\r\n query($teamId: ID!) {\r\n getTeamMembers(teamId: $teamId) {\r\n id\r\n login\r\n displayname\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Dropdown } from 'semantic-ui-react';\r\nimport { graphql } from 'react-apollo';\r\n\r\nimport { getTeamMembersQuery } from '../../../graphql/team';\r\n\r\nconst MultiSelectUsers = ({\r\n data: { loading, getTeamMembers = [] },\r\n value,\r\n handleChange,\r\n placeholder,\r\n currentUserId\r\n}) =>\r\n loading ? null : (\r\n tm.id !== currentUserId)\r\n .map(tm => ({ key: tm.id, value: tm.id, text: tm.displayname }))}\r\n />\r\n );\r\n\r\nexport default graphql(getTeamMembersQuery, {\r\n options: ({ teamId }) => ({ variables: { teamId } })\r\n})(MultiSelectUsers);\r\n","import React from 'react';\nimport { Checkbox, Form, Input, Button, Modal } from 'semantic-ui-react';\nimport { withFormik } from 'formik';\nimport gql from 'graphql-tag';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport findIndex from 'lodash/findIndex';\n\nimport { meQuery } from '../../../graphql/team';\nimport MultiSelectUsers from './MultiSelectUsers';\n\nconst AddChannelModal = ({\n open,\n onClose,\n values,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n resetForm,\n setFieldValue,\n teamId,\n currentUserId\n}) => (\n {\n resetForm();\n onClose(e);\n }}>\n Add Chat\n \n
    \n \n \n \n \n setFieldValue('public', !checked)}\n toggle\n />\n \n {values.public ? null : (\n \n setFieldValue('members', value)}\n teamId={teamId}\n placeholder=\"select members to invite\"\n currentUserId={currentUserId}\n />\n \n )}\n \n {\n resetForm();\n onClose(e);\n }}>\n Cancel\n \n \n \n
    \n
    \n \n);\n\nconst createChannelMutation = gql`\n mutation($teamId: ID!, $name: String!, $public: Boolean, $members: [ID!]) {\n createChannel(\n teamId: $teamId\n name: $name\n public: $public\n members: $members\n ) {\n ok\n channel {\n id\n name\n dm\n }\n }\n }\n`;\n\nexport default compose(\n graphql(createChannelMutation),\n withFormik({\n mapPropsToValues: () => ({ public: true, name: '', members: [] }),\n handleSubmit: async (\n values,\n { props: { onClose, teamId, mutate }, setSubmitting }\n ) => {\n await mutate({\n variables: {\n teamId,\n name: values.name,\n public: values.public,\n members: values.members\n },\n optimisticResponse: {\n createChannel: {\n __typename: 'Mutation',\n ok: true,\n channel: {\n __typename: 'Channel',\n id: -1,\n name: values.name,\n dm: false\n }\n }\n },\n update: (store, { data: { createChannel } }) => {\n const { ok, channel } = createChannel;\n if (!ok) {\n return;\n }\n\n const data = store.readQuery({ query: meQuery });\n const teamIdx = findIndex(data.me.teams, ['id', teamId]);\n data.me.teams[teamIdx].channels.push(channel);\n store.writeQuery({ query: meQuery, data });\n }\n });\n onClose();\n setSubmitting(false);\n }\n })\n)(AddChannelModal);\n","// [{path: 'login', message: 'does not exists'}]\r\n/*\r\n{\r\n login: ['e1', 'e2'..]\r\n}\r\n*/\r\n\r\nexport default errors =>\r\n errors.reduce((acc, cv) => {\r\n if (cv.path in acc) {\r\n acc[cv.path].push(cv.message);\r\n } else {\r\n acc[cv.path] = [cv.message];\r\n }\r\n\r\n return acc;\r\n }, {});\r\n","import React from 'react';\nimport { withFormik } from 'formik';\nimport { Button, Modal, Input, Form } from 'semantic-ui-react';\nimport gql from 'graphql-tag';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\n\nimport normalizeErrors from '../../../normalizeErrors';\n\nconst InvitePeopleModal = ({\n open,\n onClose,\n values,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n touched,\n errors\n}) => (\n \n Add People to your Team\n \n
    \n \n \n \n {touched.email && errors.email ? errors.email[0] : null}\n \n \n \n \n
    \n
    \n
    \n);\n\nconst addTeamMemberMutation = gql`\n mutation($email: String!, $teamId: ID!) {\n addTeamMember(email: $email, teamId: $teamId) {\n ok\n errors {\n path\n message\n }\n }\n }\n`;\n\nexport default compose(\n graphql(addTeamMemberMutation),\n withFormik({\n mapPropsToValues: () => ({ email: '' }),\n handleSubmit: async (\n values,\n { props: { onClose, teamId, mutate }, setSubmitting, setErrors }\n ) => {\n const response = await mutate({\n variables: { teamId, email: values.email }\n });\n const { ok, errors } = response.data.addTeamMember;\n if (ok) {\n onClose();\n setSubmitting(false);\n } else {\n setSubmitting(false);\n const errorsLength = errors.length;\n const filteredErrors = errors.filter(\n e => e.message !== 'user_id must be unique'\n );\n if (errorsLength !== filteredErrors.length) {\n filteredErrors.push({\n path: 'email',\n message: 'this user is already part of the team'\n });\n }\n\n setErrors(normalizeErrors(filteredErrors));\n\n // vaihtoehtoinen tapa\n // setErrors( normalizeErrors( errors.map((e) =>\n // e.message === 'user_id must be unique'\n // ? {\n // path: 'email',\n // message: 'this user is already part of the team'\n // }\n // : e\n // )\n // )\n // );\n }\n }\n })\n)(InvitePeopleModal);\n","import React from 'react';\nimport { Form, Button, Modal } from 'semantic-ui-react';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport { withRouter } from 'react-router-dom';\nimport { withFormik } from 'formik';\nimport gql from 'graphql-tag';\n\nimport MultiSelectUsers from './MultiSelectUsers';\nimport { meQuery } from '../../../graphql/team';\nimport findIndex from 'lodash/findIndex';\n\nconst DirectMessageModal = ({\n open,\n onClose,\n teamId,\n currentUserId,\n values,\n handleSubmit,\n isSubmitting,\n resetForm,\n setFieldValue\n}) => (\n \n Direct Messaging\n \n
    \n \n setFieldValue('members', value)}\n teamId={teamId}\n placeholder=\"select members to message\"\n currentUserId={currentUserId}\n />\n \n \n {\n resetForm();\n onClose(e);\n }}>\n Cancel\n \n \n \n
    \n
    \n
    \n);\n\nconst getOrCreateChannelMutation = gql`\n mutation($teamId: ID!, $members: [ID!]!) {\n getOrCreateChannel(teamId: $teamId, members: $members) {\n id\n name\n }\n }\n`;\n\nexport default compose(\n withRouter,\n graphql(getOrCreateChannelMutation),\n withFormik({\n mapPropsToValues: () => ({ members: [] }),\n // prettier-ignore\n handleSubmit: async ( {members}, { props: { history, onClose, teamId, mutate }, resetForm, setSubmitting } ) => {\n const response = await mutate({\n variables: { members, teamId },\n\n update: (store, { data: { getOrCreateChannel } }) => {\n const { id, name } = getOrCreateChannel;\n // console.log(id, name);\n // console.log(getOrCreateChannel);\n\n\n const data = store.readQuery({ query: meQuery });\n const teamIdx = findIndex(data.me.teams, ['id', teamId]);\n const notInChannelList = data.me.teams[teamIdx].channels.every(c => c.id !== id);\n if(notInChannelList) {\n data.me.teams[teamIdx].channels.push({\n __typename: 'Channel',\n id,\n name,\n dm: true,\n });\n store.writeQuery({ query: meQuery, data });\n }\n history.push(`/ViewChat/${teamId}/${id}`)\n\n\n // console.log(\"currentteam\");\n // console.log(teamIdx);\n }\n\n\n });\n if(response) {\n // console.log(response);\n }\n\n onClose();\n resetForm();\n }\n })\n)(DirectMessageModal);\n","import React from 'react';\r\n\r\nimport Channels from '../components/Channels';\r\n// import Teams from '../components/Teams';\r\nimport AddChannelModal from '../components/AddChannelModal';\r\nimport InvitePeopleModal from '../components/InvitePeopleModal';\r\nimport DirectMessageModal from '../components/DirectMessageModal';\r\n\r\nexport default class Sidebar extends React.Component {\r\n state = {\r\n openAddChannelModal: false,\r\n openInvitePeopleModal: false,\r\n openDirectMessageModal: false\r\n };\r\n\r\n toggleDirectMessageModal = e => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.setState(state => ({\r\n openDirectMessageModal: !state.openDirectMessageModal\r\n }));\r\n };\r\n\r\n toggleAddChannelModal = e => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.setState(state => ({\r\n openAddChannelModal: !state.openAddChannelModal\r\n }));\r\n };\r\n\r\n toggleInvitePeopleModal = e => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.setState(state => ({\r\n openInvitePeopleModal: !state.openInvitePeopleModal\r\n }));\r\n };\r\n\r\n render () {\r\n const { /*teams,*/ team, displayName, currentUserId } = this.props;\r\n const {\r\n openInvitePeopleModal,\r\n openAddChannelModal,\r\n openDirectMessageModal\r\n } = this.state;\r\n\r\n const regularChannels = [];\r\n const dmChannels = [];\r\n\r\n team.channels.forEach(c => {\r\n if (c.dm) {\r\n dmChannels.push(c);\r\n } else {\r\n regularChannels.push(c);\r\n }\r\n });\r\n\r\n // console.log(dmChannels);\r\n\r\n return [\r\n // ,\r\n ,\r\n ,\r\n ,\r\n \r\n ];\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nimport './PhotoMessage.css';\r\n\r\nimport { FaCloudDownloadAlt as FaCloudDownload } from 'react-icons/fa';\r\nimport { FaExclamationTriangle as FaError } from 'react-icons/fa';\r\n\r\nconst ProgressBar = require('react-progress-bar.js');\r\nconst Circle = ProgressBar.Circle;\r\n\r\nexport class PhotoMessage extends Component {\r\n render () {\r\n var progressOptions = {\r\n strokeWidth: 2.3,\r\n color: '#efe',\r\n trailColor: '#aaa',\r\n trailWidth: 1,\r\n step: (state, circle) => {\r\n circle.path.setAttribute('trail', state.color);\r\n circle.path.setAttribute('trailwidth-width', state.width);\r\n\r\n var value = Math.round(circle.value() * 100);\r\n if (value === 0) circle.setText('');\r\n else circle.setText(value);\r\n }\r\n };\r\n\r\n const error =\r\n this.props.data.status && this.props.data.status.error === true;\r\n\r\n return (\r\n
    \r\n \r\n \r\n\r\n {error && (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n {!error &&\r\n this.props.data.status &&\r\n !this.props.data.status.download && (\r\n
    \r\n {!this.props.data.status.click && (\r\n \r\n \r\n \r\n )}\r\n {typeof this.props.data.status.loading === 'number' &&\r\n this.props.data.status.loading !== 0 && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n {this.props.text && (\r\n
    {this.props.text}
    \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nPhotoMessage.defaultProps = {\r\n text: '',\r\n data: {},\r\n onDownload: null,\r\n onOpen: null,\r\n onLoad: null\r\n};\r\n\r\nexport default PhotoMessage;\r\n","import React, { Component } from 'react';\r\nimport './FileMessage.css';\r\n\r\nimport { FaCloudDownloadAlt as FaCloudDownload } from 'react-icons/fa';\r\nimport { MdError as FaError } from 'react-icons/md';\r\nimport { FaFile } from 'react-icons/fa';\r\n\r\nconst ProgressBar = require('react-progress-bar.js');\r\nconst Circle = ProgressBar.Circle;\r\n\r\nexport class FileMessage extends Component {\r\n onClick (e) {\r\n if (!this.props.data.status) return;\r\n\r\n if (\r\n !this.props.data.status.download &&\r\n this.props.onDownload instanceof Function\r\n )\r\n this.props.onDownload(e);\r\n else if (\r\n this.props.data.status.download &&\r\n this.props.onOpen instanceof Function\r\n )\r\n this.props.onOpen(e);\r\n }\r\n\r\n render () {\r\n var progressOptions = {\r\n strokeWidth: 5,\r\n color: '#333',\r\n trailColor: '#aaa',\r\n trailWidth: 5,\r\n step: (state, circle) => {\r\n circle.path.setAttribute('trail', state.color);\r\n circle.path.setAttribute('trailwidth-width', state.width);\r\n\r\n var value = Math.round(circle.value() * 100);\r\n if (value === 0) circle.setText('');\r\n else circle.setText(value);\r\n }\r\n };\r\n\r\n const error =\r\n this.props.data.status && this.props.data.status.error === true;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFileMessage.defaultProps = {\r\n text: '',\r\n data: {},\r\n onClick: null,\r\n onDownload: null,\r\n onOpen: null\r\n};\r\n\r\nexport default FileMessage;\r\n","import React, { Component } from 'react';\r\nimport './SystemMessage.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class SystemMessage extends Component {\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n {this.props.text}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default SystemMessage;\r\n","import React, { Component } from 'react';\r\nimport './LocationMessage.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nconst STATIC_URL =\r\n 'https://maps.googleapis.com/maps/api/staticmap?markers=color:MARKER_COLOR|LATITUDE,LONGITUDE&zoom=ZOOM&size=270x200&scale=2&key=KEY';\r\nconst MAP_URL =\r\n 'https://www.google.com/maps/search/?api=1&query=LATITUDE,LONGITUDE&zoom=ZOOM';\r\n\r\nexport class LocationMessage extends Component {\r\n constructor (props) {\r\n super(props);\r\n\r\n this.className = this.className.bind(this);\r\n }\r\n\r\n buildURL (url) {\r\n var center = this.props.data || {};\r\n\r\n return url\r\n .replace('LATITUDE', center.latitude)\r\n .replace('LONGITUDE', center.longitude)\r\n .replace('MARKER_COLOR', this.props.markerColor)\r\n .replace('ZOOM', this.props.zoom)\r\n .replace('KEY', this.props.apiKey);\r\n }\r\n\r\n className () {\r\n var className = classNames('rce-mbox-location', this.props.className);\r\n\r\n if (this.props.text) {\r\n className = classNames(className, 'rce-mbox-location-has-text');\r\n }\r\n\r\n return className;\r\n }\r\n\r\n render () {\r\n return (\r\n
    \r\n \r\n \r\n \r\n {this.props.text && (\r\n
    \r\n {this.props.text}\r\n
    \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nLocationMessage.defaultProps = {\r\n target: '_blank',\r\n apiKey: '',\r\n zoom: 14,\r\n markerColor: 'red'\r\n};\r\n\r\nexport default LocationMessage;\r\n","import React, { Component } from 'react';\r\nimport './SpotifyMessage.css';\r\n\r\n// const classNames = require('classnames');\r\n\r\nexport class SpotifyMessage extends Component {\r\n toUrl () {\r\n var formBody = [];\r\n var data = {\r\n uri: this.props.uri,\r\n theme: this.props.theme,\r\n view: this.props.view\r\n };\r\n for (var property in data) {\r\n var encodedKey = encodeURIComponent(property);\r\n var encodedValue = encodeURIComponent(data[property]);\r\n formBody.push(encodedKey + '=' + encodedValue);\r\n }\r\n formBody = formBody.join('&');\r\n return formBody;\r\n }\r\n\r\n render () {\r\n if (!this.props.uri) return null;\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSpotifyMessage.defaultProps = {\r\n uri: '',\r\n theme: 'black',\r\n view: 'list',\r\n width: 300,\r\n height: 380\r\n};\r\n\r\nexport default SpotifyMessage;\r\n","import React, { Component } from 'react';\r\nimport './Avatar.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class Avatar extends Component {\r\n render() {\r\n return (\r\n
    \r\n {this.props.alt}\r\n {this.props.sideElement}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nAvatar.defaultProps = {\r\n type: 'default',\r\n size: 'default',\r\n src: '',\r\n alt: '',\r\n sideElement: null,\r\n};\r\n\r\nexport default Avatar;\r\n","import React, { Component } from 'react';\r\nimport './MessageBox.scss';\r\n\r\nimport PhotoMessage from '../PhotoMessage/PhotoMessage';\r\nimport FileMessage from '../FileMessage/FileMessage';\r\nimport SystemMessage from '../SystemMessage/SystemMessage';\r\nimport LocationMessage from '../LocationMessage/LocationMessage';\r\nimport SpotifyMessage from '../SpotifyMessage/SpotifyMessage';\r\n\r\nimport Avatar from '../Avatar/Avatar';\r\n\r\nimport { FaForward } from 'react-icons/fa';\r\n// import { FaReply } from 'react-icons/fa';\r\n\r\nimport { IoIosDoneAll as IoDoneAll } from 'react-icons/io';\r\nimport { IoIosTime as MdIosTime } from 'react-icons/io';\r\nimport { MdCheck } from 'react-icons/md';\r\n\r\nconst moment = require('moment');\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class MessageBox extends Component {\r\n render () {\r\n var positionCls = classNames(\r\n 'rce-mbox',\r\n {\r\n 'rce-mbox-right': this.props.position === 'right'\r\n },\r\n { 'rce-mbox-professional': this.props.professional === 'professional' }\r\n );\r\n\r\n var thatAbsoluteTime =\r\n this.props.type !== 'text' &&\r\n this.props.type !== 'file' &&\r\n !(this.props.type === 'location' && this.props.text);\r\n\r\n const dateText =\r\n this.props.date &&\r\n !isNaN(this.props.date) &&\r\n (this.props.dateString || moment(this.props.date).fromNow());\r\n\r\n return (\r\n \r\n {this.props.renderAddCmp instanceof Function &&\r\n this.props.renderAddCmp()}\r\n {this.props.type === 'system' ? (\r\n \r\n ) : (\r\n \r\n
    \r\n {this.props.forwarded === true && (\r\n \r\n \r\n
    \r\n )}\r\n\r\n {(this.props.title || this.props.avatar) && (\r\n \r\n {this.props.avatar && }\r\n {this.props.title && {this.props.title}}\r\n \r\n )}\r\n\r\n {this.props.type === 'text' && (\r\n
    {this.props.text}
    \r\n )}\r\n\r\n {this.props.type === 'location' && (\r\n \r\n )}\r\n\r\n {this.props.type === 'photo' && (\r\n \r\n )}\r\n\r\n {this.props.type === 'file' && (\r\n \r\n )}\r\n\r\n {this.props.type === 'spotify' && (\r\n \r\n )}\r\n\r\n \r\n {this.props.copiableDate &&\r\n this.props.date &&\r\n !isNaN(this.props.date) &&\r\n (this.props.dateString || moment(this.props.date).fromNow())}\r\n {this.props.status && (\r\n \r\n {this.props.status === 'waiting' && }\r\n\r\n {this.props.status === 'sent' && }\r\n\r\n {this.props.status === 'received' && }\r\n\r\n {this.props.status === 'read' && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n\r\n {this.props.notch &&\r\n (this.props.position === 'right' ? (\r\n \r\n \r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nMessageBox.defaultProps = {\r\n position: 'left',\r\n type: 'text',\r\n text: '',\r\n title: null,\r\n titleColor: null,\r\n onTitleClick: null,\r\n onForwardClick: null,\r\n date: new Date(),\r\n data: {},\r\n onClick: null,\r\n onOpen: null,\r\n onDownload: null,\r\n onLoad: null,\r\n forwarded: false,\r\n status: null,\r\n dateString: null,\r\n notch: true,\r\n avatar: null,\r\n renderAddCmp: null,\r\n copiableDate: false\r\n};\r\n\r\nexport default MessageBox;\r\n","import React, { Component } from 'react';\r\nimport './ChatItem.css';\r\n\r\nimport Avatar from '../Avatar/Avatar';\r\n\r\nconst moment = require('moment');\r\nconst classNames = require('classnames');\r\n\r\nexport class ChatItem extends Component {\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {this.props.statusText}\r\n \r\n }\r\n type={classNames('circle', {'flexible': this.props.avatarFlexible})}/>\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {this.props.title}\r\n
    \r\n
    \r\n {\r\n this.props.date &&\r\n !isNaN(this.props.date) &&\r\n (\r\n this.props.dateString ||\r\n moment(this.props.date).fromNow()\r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {this.props.subtitle}\r\n
    \r\n
    \r\n {\r\n this.props.unread > 0 &&\r\n {this.props.unread}\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nChatItem.defaultProps = {\r\n id: '',\r\n onClick: null,\r\n avatar: '',\r\n avatarFlexible: false,\r\n alt: '',\r\n title: '',\r\n subtitle: '',\r\n date: new Date(),\r\n unread: 0,\r\n statusColor: null,\r\n statusText: null,\r\n dateString: null,\r\n}\r\n\r\nexport default ChatItem;\r\n","import React, { Component } from 'react';\r\nimport './ChatList.css';\r\n\r\nimport ChatItem from '../ChatItem/ChatItem';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class ChatList extends Component {\r\n\r\n onClick(item, i, e) {\r\n if (this.props.onClick instanceof Function)\r\n this.props.onClick(item, i, e);\r\n }\r\n\r\n onContextMenu(item, i, e) {\r\n e.preventDefault();\r\n if (this.props.onContextMenu instanceof Function)\r\n this.props.onContextMenu(item, i, e);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n this.props.dataSource.map((x, i) => (\r\n this.onContextMenu(x,i,e)}\r\n onClick={() => this.onClick(x, i)}/>\r\n ))\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nChatList.defaultProps = {\r\n dataSource: [],\r\n onClick: null,\r\n};\r\n\r\nexport default ChatList;\r\n","import React, { Component } from 'react';\nimport './MessageList.css';\n\nimport MessageBox from '../MessageBox/MessageBox';\n\nimport { FaChevronDown } from 'react-icons/fa';\n\nconst classNames = require('classnames');\n\nexport class MessageList extends Component {\n constructor (props) {\n super(props);\n this.state = {\n scrollBottom: 0,\n downButton: false\n };\n }\n\n checkScroll () {\n var e = this.mlistRef;\n if (!e) return;\n\n if (\n this.props.toBottomHeight === '100%' ||\n this.state.scrollBottom < this.props.toBottomHeight\n ) {\n // scroll to bottom\n e.scrollTop = e.scrollHeight;\n } else {\n if (this.props.lockable === true) {\n e.scrollTop = e.scrollHeight - e.offsetHeight - this.state.scrollBottom;\n }\n }\n }\n\n // TODO: fix\n UNSAFE_componentWillReceiveProps () {\n if (!this.mlistRef) return;\n this.setState(\n {\n scrollBottom: this.getBottom(this.mlistRef)\n },\n this.checkScroll.bind(this)\n );\n }\n\n getBottom (e) {\n return e.scrollHeight - e.scrollTop - e.offsetHeight;\n }\n\n onOpen (item, i, e) {\n if (this.props.onOpen instanceof Function) this.props.onOpen(item, i, e);\n }\n\n onDownload (item, i, e) {\n if (this.props.onDownload instanceof Function)\n this.props.onDownload(item, i, e);\n }\n\n onClick (item, i, e) {\n if (this.props.onClick instanceof Function) this.props.onClick(item, i, e);\n }\n\n onTitleClick (item, i, e) {\n if (this.props.onTitleClick instanceof Function)\n this.props.onTitleClick(item, i, e);\n }\n\n onForwardClick (item, i, e) {\n if (this.props.onForwardClick instanceof Function)\n this.props.onForwardClick(item, i, e);\n }\n\n loadRef (ref) {\n this.mlistRef = ref;\n if (this.props.cmpRef instanceof Function) this.props.cmpRef(ref);\n }\n\n onScroll (e) {\n var bottom = this.getBottom(e.target);\n this.setState.scrollBottom = bottom;\n if (\n this.props.toBottomHeight === '100%' ||\n bottom > this.props.toBottomHeight\n ) {\n if (this.state.downButton !== true) {\n this.setState.downButton = true;\n this.setState({\n downButton: true,\n scrollBottom: bottom\n });\n }\n } else {\n if (this.state.downButton !== false) {\n this.setState.downButton = false;\n this.setState({\n downButton: false,\n scrollBottom: bottom\n });\n }\n }\n\n if (this.props.onScroll instanceof Function) {\n this.props.onScroll(e);\n }\n }\n\n toBottom (e) {\n if (!this.mlistRef) return;\n this.mlistRef.scrollTop = this.mlistRef.scrollHeight;\n if (this.props.onDownButtonClick instanceof Function) {\n this.props.onDownButtonClick(e);\n }\n }\n\n render () {\n return (\n \n \n {this.props.dataSource.map((x, i) => (\n this.onOpen(x, i, e))}\n onDownload={\n this.props.onDownload && (e => this.onDownload(x, i, e))\n }\n onTitleClick={\n this.props.onDownload && (e => this.onTitleClick(x, i, e))\n }\n onForwardClick={\n this.props.onForwardClick && (e => this.onForwardClick(x, i, e))\n }\n onClick={this.props.onClick && (e => this.onClick(x, i, e))}\n />\n ))}\n \n {this.props.downButton === true &&\n this.state.downButton &&\n this.props.toBottomHeight !== '100%' && (\n \n \n {this.props.downButtonBadge && (\n \n {this.props.downButtonBadge}\n \n )}\n \n )}\n \n );\n }\n}\n\nMessageList.defaultProps = {\n onClick: null,\n onTitleClick: null,\n onForwardClick: null,\n onDownButtonClick: null,\n onOpen: null,\n onDownload: null,\n dataSource: [],\n lockable: false,\n toBottomHeight: 300,\n downButton: true,\n downButtonBadge: null\n};\n\nexport default MessageList;\n","import React, { Component } from 'react';\r\nimport './Input.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class Input extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n value: this.props.defaultValue,\r\n };\r\n }\r\n\r\n onChange(e) {\r\n if (this.props.maxlength && (e.target.value || '').length > this.props.maxlength) {\r\n if (this.props.onMaxLengthExceed instanceof Function)\r\n this.props.onMaxLengthExceed();\r\n return;\r\n }\r\n\r\n this.setState({\r\n value: e.target.value\r\n });\r\n if (this.props.onChange instanceof Function)\r\n this.props.onChange(e);\r\n\r\n if (this.props.multiline === true) {\r\n if (this.props.autoHeight === true) {\r\n e.target.style.height = this.props.minHeight + 'px';\r\n\r\n if (e.target.scrollHeight <= this.props.maxHeight)\r\n e.target.style.height = e.target.scrollHeight + 'px';\r\n else\r\n e.target.style.height = this.props.maxHeight + 'px';\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n var event = {\r\n FAKE_EVENT: true,\r\n target: this.input,\r\n };\r\n this.input.value = '';\r\n this.onChange(event);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.autofocus === true)\r\n this.input.focus();\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {\r\n this.props.leftButtons &&\r\n
    \r\n {this.props.leftButtons}\r\n
    \r\n }\r\n {\r\n this.props.multiline === false ?\r\n {\r\n if (this.props.inputRef instanceof Function)\r\n this.props.inputRef(ref);\r\n this.input = ref;\r\n }}\r\n type={this.props.type}\r\n className={classNames('rce-input')}\r\n placeholder={this.props.placeholder}\r\n value={this.state.value}\r\n style={this.props.inputStyle}\r\n onChange={this.onChange.bind(this)}\r\n onCopy={this.props.onCopy}\r\n onCut={this.props.onCut}\r\n onPaste={this.props.onPaste}\r\n onBlur={this.props.onBlur}\r\n onFocus={this.props.onFocus}\r\n onSelect={this.props.onSelect}\r\n onSubmit={this.props.onSubmit}\r\n onReset={this.props.onReset}\r\n onKeyDown={this.props.onKeyDown}\r\n onKeyPress={this.props.onKeyPress}\r\n onKeyUp={this.props.onKeyUp}/>\r\n :\r\n {\r\n if (this.props.inputRef instanceof Function)\r\n this.props.inputRef(ref);\r\n this.input = ref;\r\n }}\r\n type={this.props.type}\r\n className={classNames('rce-input', 'rce-input-textarea')}\r\n placeholder={this.props.placeholder}\r\n value={this.state.value}\r\n style={this.props.inputStyle}\r\n onChange={this.onChange.bind(this)}\r\n onCopy={this.props.onCopy}\r\n onCut={this.props.onCut}\r\n onPaste={this.props.onPaste}\r\n onBlur={this.props.onBlur}\r\n onFocus={this.props.onFocus}\r\n onSelect={this.props.onSelect}\r\n onSubmit={this.props.onSubmit}\r\n onReset={this.props.onReset}\r\n onKeyDown={this.props.onKeyDown}\r\n onKeyPress={this.props.onKeyPress}\r\n onKeyUp={this.props.onKeyUp}>\r\n }\r\n {\r\n this.props.rightButtons &&\r\n
    \r\n {this.props.rightButtons}\r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nInput.defaultProps = {\r\n type: 'text',\r\n placeholder: '',\r\n defaultValue: '',\r\n onChange: null,\r\n rightButtons: null,\r\n leftButtons: null,\r\n multiline: false,\r\n minHeight: 25,\r\n maxHeight: 200,\r\n autoHeight: true,\r\n inputStyle: null,\r\n inputRef: null,\r\n maxlength: null,\r\n onMaxLengthExceed: null,\r\n autofocus: false,\r\n};\r\n\r\nexport default Input;\r\n","import React, { Component } from 'react';\r\nimport './Button.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class Button extends Component {\r\n render() {\r\n return (\r\n \r\n {\r\n this.props.icon ?\r\n \r\n {(this.props.icon.float === 'right' || !this.props.icon.float) && {this.props.text}}\r\n\r\n {this.props.icon.component}\r\n\r\n {this.props.icon.float === 'left' && {this.props.text}}\r\n \r\n : {this.props.text}\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nButton.defaultProps = {\r\n text: '',\r\n disabled: false,\r\n type: null,\r\n icon: null,\r\n backgroundColor: '#3979aa',\r\n color: 'white',\r\n className: null,\r\n buttonRef: null,\r\n title: null,\r\n};\r\n\r\nexport default Button;\r\n","import React, { Component } from 'react';\r\nimport './Navbar.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class Navbar extends Component {\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.props.left}\r\n
    \r\n
    \r\n {this.props.center}\r\n
    \r\n
    \r\n {this.props.right}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nNavbar.defaultProps = {\r\n left: null,\r\n center: null,\r\n right: null,\r\n type:'light'\r\n};\r\n\r\nexport default Navbar;\r\n","import React, { Component } from 'react';\r\nimport './Dropdown.css';\r\n\r\nimport Button from '../Button/Button';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class Dropdown extends Component {\r\n constructor (props) {\r\n super(props);\r\n\r\n this.state = {\r\n show: undefined\r\n };\r\n }\r\n\r\n onBlur (e) {\r\n if (this.state.show === true) this.setState({ show: false });\r\n }\r\n\r\n render () {\r\n return (\r\n \r\n {\r\n this.setState({ show: !this.state.show })}\r\n />\r\n }\r\n \r\n
      \r\n {this.props.items.map((x, i) => (\r\n
    • this.props.onSelect(i)}>\r\n {x}\r\n
    • \r\n ))}\r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nDropdown.defaultProps = {\r\n animationType: 'default',\r\n animationPosition: 'nortwest',\r\n items: [],\r\n onSelect: Function,\r\n buttonProps: null\r\n};\r\n\r\nexport default Dropdown;\r\n","import React, { Component } from 'react';\r\nimport './SideBar.css';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class SideBar extends Component {\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.props.top}\r\n
    \r\n
    \r\n {this.props.center}\r\n
    \r\n
    \r\n {this.props.bottom}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSideBar.defaultProps = {\r\n top: null,\r\n center: null,\r\n bottom: null,\r\n type: 'dark',\r\n}\r\n\r\nexport default SideBar;\r\n","import React, { Component } from 'react';\r\nimport './Popup.css';\r\n\r\nimport Button from '../Button/Button';\r\n\r\nconst classNames = require('classnames');\r\n\r\nexport class Popup extends Component {\r\n render() {\r\n if (this.props.show === true)\r\n return (\r\n
    \r\n
    \r\n {\r\n this.props.renderHeader ?\r\n
    \r\n {this.props.renderHeader()}\r\n
    \r\n :\r\n
    \r\n {this.props.header}\r\n {\r\n this.props.header &&\r\n this.props.headerButtons.map((x, i) => (\r\n \r\n ))\r\n }\r\n
    \r\n }\r\n
    \r\n {\r\n this.props.renderContent ?\r\n this.props.renderContent()\r\n :\r\n this.props.text\r\n }\r\n
    \r\n
    \r\n {\r\n this.props.renderFooter ?\r\n this.props.renderFooter()\r\n :\r\n this.props.footerButtons.map((x, i) => (\r\n \r\n ))\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n return null;\r\n }\r\n}\r\n\r\nPopup.defaultProps = {\r\n show: false,\r\n header: null,\r\n text: null,\r\n headerButtons: [],\r\n footerButtons: [],\r\n renderHeader: null,\r\n renderContent: null,\r\n renderFooter: null,\r\n color: '#333',\r\n};\r\n\r\nexport default Popup;\r\n","import React from 'react';\r\nimport { Card, CardContent, Image, Modal } from 'semantic-ui-react';\r\n// import maleFemaleImage from '../images/male_female.svg';\r\n// import nurse from '../images/nurse.png';\r\nimport { MessageBox } from './react-chat-elements';\r\nimport { Trans } from 'react-i18next';\r\n\r\nconst Message = ({\r\n currentUser,\r\n displayName,\r\n messageText,\r\n messageDate,\r\n role,\r\n file,\r\n filetype\r\n}) => {\r\n return (\r\n <>\r\n {file ? (\r\n
    \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n : {displayName}\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 Message;\r\n","import React from 'react';\nimport { graphql } from 'react-apollo';\nimport gql from 'graphql-tag';\nimport { Button } from 'semantic-ui-react';\nimport { Trans } from 'react-i18next';\n\nimport ScrollableFeed from 'react-scrollable-feed';\n// import cookie from 'js-cookie';\nimport '../react-chat-elements.scss';\n\nimport { formatDate } from '../../../index';\nimport Message from '../components/Message';\n\nconst newChannelMessageSubscription = gql`\n subscription($channelId: ID!) {\n newChannelMessage(channelId: $channelId) {\n id\n text\n file\n filetype\n user {\n id\n displayname\n role\n }\n createdAt\n }\n }\n`;\n\nclass MessageContainer extends React.Component {\n constructor (props) {\n super(props);\n\n this.keyCount = 0;\n this.getKey = this.getKey.bind(this);\n // const chatOtherUserID = cookie.get('ChatOtherUserID');\n\n // if (chatOtherUserID) {\n // this.channelId = chatOtherUserID;\n // }\n }\n state = {\n hasMoreItems: true\n };\n\n getKey () {\n return this.keyCount++;\n }\n// TODO: fix\n UNSAFE_componentWillMount () {\n this.unsubscribe = this.subscribe(this.props.channelId);\n }\n\n // TODO: fix\n UNSAFE_componentWillReceiveProps ({ data: { messages }, channelId }) {\n if (this.props.channelId !== channelId) {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n this.unsubscribe = this.subscribe(channelId);\n }\n\n if (\n this.scroller &&\n this.scroller.scrollTop < 100 &&\n this.props.data.messages &&\n messages &&\n this.props.data.messages.length !== messages.length\n ) {\n // 35 items\n // console.log(this.scroller.scrollHeight);\n const heightBeforeRender = this.scroller.scrollHeight;\n // wait for 70 items to render\n setTimeout(() => {\n if (this.scroller) {\n // console.log(this.scroller.scrollHeight);\n this.scroller.scrollTop =\n this.scroller.scrollHeight - heightBeforeRender;\n }\n }, 100);\n }\n }\n\n componentWillUnmount () {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n subscribe = channelId =>\n this.props.data.subscribeToMore({\n document: newChannelMessageSubscription,\n variables: {\n channelId\n },\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData) {\n return prev;\n }\n\n return {\n ...prev,\n messages: [subscriptionData.data.newChannelMessage, ...prev.messages]\n };\n }\n });\n\n handleLoadMore = () => {\n // prettier-ignore\n const { data: { messages, fetchMore }, channelId } = this.props;\n fetchMore({\n variables: {\n channelId,\n cursor: messages[messages.length - 1].createdAt\n },\n updateQuery: (previousResult, { fetchMoreResult }) => {\n if (!fetchMoreResult) {\n return previousResult;\n }\n\n if (fetchMoreResult.messages.length < 35) {\n this.setState({ hasMoreItems: false });\n }\n\n return {\n ...previousResult,\n messages: [...previousResult.messages, ...fetchMoreResult.messages]\n };\n }\n });\n };\n\n handleScroll = () => {\n // prettier-ignore\n const { data: { messages, fetchMore }, channelId } = this.props;\n if (\n this.scroller &&\n this.scroller.scrollTop < 100 &&\n this.state.hasMoreItems &&\n messages.length >= 35\n ) {\n fetchMore({\n variables: {\n channelId,\n cursor: messages[messages.length - 1].createdAt\n },\n updateQuery: (previousResult, { fetchMoreResult }) => {\n if (!fetchMoreResult) {\n return previousResult;\n }\n\n if (fetchMoreResult.messages.length < 35) {\n this.setState({ hasMoreItems: false });\n }\n\n return {\n ...previousResult,\n messages: [...previousResult.messages, ...fetchMoreResult.messages]\n };\n }\n });\n }\n };\n\n render () {\n const {\n data: { loading, messages }\n } = this.props;\n\n return loading ? null : (\n {\n this.scroller = scroller;\n }}>\n \n {this.state.hasMoreItems && messages && messages.length >= 35 && (\n {\n this.handleScroll();\n }}>\n \n \n )}\n {messages &&\n messages\n .slice()\n .reverse()\n .map(m => {\n return (\n
    \n \n
    \n );\n })}\n
    \n \n );\n }\n}\n\nconst messagesQuery = gql`\n query($cursor: String, $channelId: ID!) {\n messages(cursor: $cursor, channelId: $channelId) {\n id\n text\n file\n filetype\n user {\n id\n displayname\n role\n }\n createdAt\n }\n }\n`;\n\nexport default graphql(messagesQuery, {\n options: props => ({\n fetchPolicy: 'network-only',\n variables: {\n channelId: props.channelId\n }\n })\n})(MessageContainer);\n","import React from 'react';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport findIndex from 'lodash/findIndex';\nimport { Redirect } from 'react-router-dom';\nimport gql from 'graphql-tag';\n\n// import cookie from 'js-cookie';\n\nimport Header from '../components/Chat/components/Header';\nimport SendMessage from '../components/Chat/components/SendMessage';\nimport Sidebar from '../components/Chat/containers/Sidebar';\nimport MessageContainer from '../components/Chat/containers/MessageContainer';\nimport { meQuery } from '../graphql/team';\nimport { THIS_IS_PATIENT_CHANNEL } from '..';\n\nconst ViewChat = ({\n mutate,\n data: { loading, me, error },\n match: {\n params: { teamId, channelId }\n }\n}) => {\n if (loading || !me) {\n if (error) {\n return ;\n }\n return null;\n }\n\n const { id: currentUserId, displayname, teams } = me;\n\n\n if (!teams.length) {\n return ;\n }\n\n const teamIdInteger = teamId;\n const teamIdx = teamIdInteger ? findIndex(teams, ['id', teamIdInteger]) : 0;\n const team = teamIdx === -1 ? teams[0] : teams[teamIdx];\n\n const channelIdInteger = channelId;\n const channelIdx = channelIdInteger\n ? findIndex(team.channels, ['id', channelIdInteger])\n : 0;\n let channel =\n channelIdx === -1 ? team.channels[0] : team.channels[channelIdx];\n\n // const chatOtherUserID = cookie.get('ChatOtherUserID');\n\n let allOk = true;\n let singleChannel = '';\n // if (chatOtherUserID) {\n // const singleChannelIdx = chatOtherUserID\n // ? findIndex(team.channels, ['id', chatOtherUserID])\n // : 0;\n // singleChannel =\n // singleChannelIdx === -1\n // ? team.channels[0]\n // : team.channels[singleChannelIdx];\n\n // channel = singleChannel;\n\n // if (singleChannelIdx === -1) {\n // // If we should show only one patient (chat with patientContext)\n // // and we don't find that patient guid in our channels we have a problem\n // // so we don't give anything on screen\n // // insert text to show what's wrong\n // allOk = false;\n // singleChannel = null;\n // }\n // }\n\n if (!allOk) {\n return
    Chat unavailable
    ;\n }\n\n let displayChannelName = channel ? channel.name : '';\n if (channel) {\n if (channel.name === THIS_IS_PATIENT_CHANNEL) {\n displayChannelName = team.name;\n }\n }\n\n\n return (\n <>\n
    \n
    \n ({\n id: t.id,\n letter: t.name.charAt(0).toUpperCase()\n }))}\n team={team}\n displayName={displayname}\n currentUserId={currentUserId}\n />\n\n
    \n {channel &&
    }\n {channel && (\n \n )}\n {channel && (\n {\n await mutate({ variables: { text, channelId: channel.id } });\n }}\n />\n )}\n
    \n
    \n
    \n \n );\n};\n\nconst createMessageMutation = gql`\n mutation($channelId: ID!, $text: String) {\n createMessage(channelId: $channelId, text: $text)\n }\n`;\n\nexport default compose(\n graphql(meQuery, { options: { fetchPolicy: 'network-only' } }),\n graphql(createMessageMutation)\n)(ViewChat);\n","import React from 'react';\nimport { graphql } from 'react-apollo';\nimport {flowRight as compose} from 'lodash';\nimport findIndex from 'lodash/findIndex';\nimport { Redirect } from 'react-router-dom';\nimport gql from 'graphql-tag';\n\n// import cookie from 'js-cookie';\n\nimport Header from '../components/Chat/components/Header';\nimport SendMessage from '../components/Chat/components/SendMessage';\nimport Sidebar from '../components/Chat/containers/Sidebar';\nimport MessageContainer from '../components/Chat/containers/MessageContainer';\nimport { meQuery } from '../graphql/team';\nimport { THIS_IS_PATIENT_CHANNEL } from '..';\n\nconst ViewChat = ({\n mutate,\n data: { loading, me, error },\n match: {\n params: { teamId, channelId }\n }\n}) => {\n if (loading || !me) {\n if (error) {\n return ;\n }\n return null;\n }\n\n const { id: currentUserId, displayname, teams } = me;\n\n\n if (!teams.length) {\n return ;\n }\n\n const teamIdInteger = teamId;\n const teamIdx = teamIdInteger ? findIndex(teams, ['id', teamIdInteger]) : 0;\n const team = teamIdx === -1 ? teams[0] : teams[teamIdx];\n\n const channelIdInteger = channelId;\n const channelIdx = channelIdInteger\n ? findIndex(team.channels, ['id', channelIdInteger])\n : 0;\n let channel =\n channelIdx === -1 ? team.channels[0] : team.channels[channelIdx];\n\n // const chatOtherUserID = cookie.get('ChatOtherUserID');\n\n let allOk = true;\n let singleChannel = '';\n // if (chatOtherUserID) {\n // const singleChannelIdx = chatOtherUserID\n // ? findIndex(team.channels, ['id', chatOtherUserID])\n // : 0;\n // singleChannel =\n // singleChannelIdx === -1\n // ? team.channels[0]\n // : team.channels[singleChannelIdx];\n\n // channel = singleChannel;\n\n // if (singleChannelIdx === -1) {\n // // If we should show only one patient (chat with patientContext)\n // // and we don't find that patient guid in our channels we have a problem\n // // so we don't give anything on screen\n // // insert text to show what's wrong\n // allOk = false;\n // singleChannel = null;\n // }\n // }\n\n if (!allOk) {\n return
    Chat unavailable
    ;\n }\n\n let displayChannelName = channel ? channel.name : '';\n if (channel) {\n if (channel.name === THIS_IS_PATIENT_CHANNEL) {\n displayChannelName = team.name;\n }\n }\n\n\n return (\n <>\n
    \n
    \n ({\n id: t.id,\n letter: t.name.charAt(0).toUpperCase()\n }))}\n team={team}\n displayName={displayname}\n currentUserId={currentUserId}\n />\n\n
    \n {channel &&
    }\n {channel && (\n \n )}\n {channel && (\n {\n await mutate({ variables: { text, channelId: channel.id } });\n }}\n />\n )}\n
    \n
    \n
    \n \n );\n};\n\nconst createMessageMutation = gql`\n mutation($channelId: ID!, $text: String) {\n createMessage(channelId: $channelId, text: $text)\n }\n`;\n\nexport default compose(\n graphql(meQuery, { options: { fetchPolicy: 'network-only' } }),\n graphql(createMessageMutation)\n)(ViewChat);\n","import React from 'react';\r\nimport { Route, Redirect, HashRouter } from 'react-router-dom';\r\n\r\nimport withTracker from '../withTracker'\r\n\r\nimport decode from 'jwt-decode';\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\n\r\n// Top of page\r\nimport Layout from '../components/Layout';\r\n// Pages\r\nimport Frontpage from '../pages/Frontpage';\r\nimport Benefits from '../pages/Benefits';\r\nimport SpecialSituations from '../pages/SpecialSituations';\r\nimport DiabetesCounceling from '../pages/DiabetesCounceling';\r\nimport NewsAndInfo from '../pages/NewsAndInfo';\r\nimport ImportantContacts from '../pages/ImportantContacts';\r\nimport Carbohydrates from '../pages/Carbohydrates';\r\nimport Register from './Register';\r\nimport Login from './Login';\r\nimport Logout from './Logout';\r\nimport ChangePassword from './ChangePassword';\r\nimport CreateTeam from './CreateTeam';\r\nimport ViewChat from './ViewChat';\r\nimport OwnGoals from '../pages/OwnGoals';\r\nimport DiabetesFacts from '../pages/DiabetesFacts';\r\nimport WidthLayouts from '../routes/WidthLayouts';\r\nimport ViewChatMobile from '../routes/ViewChatMobile';\r\nimport ViewChatWebsite from '../routes/ViewChatWebsite';\r\nimport { isChatEnabled } from '../isChatEnabled';\r\n\r\n// kick off the polyfill!\r\nsmoothscroll.polyfill();\r\n\r\n// Configure ApolloClient for GraphQL\r\n\r\nconst isAuthenticated = () => {\r\n const token = localStorage.getItem('token');\r\n const refreshToken = localStorage.getItem('refreshToken');\r\n try {\r\n decode(token);\r\n const { exp } = decode(refreshToken);\r\n if (Date.now() / 1000 > exp) {\r\n return false;\r\n }\r\n } catch (err) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => (\r\n \r\n isAuthenticated() ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n);\r\n\r\nexport default () => (\r\n <>\r\n \r\n <>\r\n \r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n {isChatEnabled && }\r\n \r\n \r\n \r\n \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 'babel-polyfill'; // For IE 11 support\nimport 'react-app-polyfill/ie11'; // For IE 11 support\nimport cssVars from 'css-vars-ponyfill';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ApolloProvider } from 'react-apollo';\nimport moment from 'moment';\nimport ReactGA from 'react-ga';\n// import cookie from 'js-cookie';\nimport './i18n';\nimport client from './apollo';\nimport registerServiceWorker from './registerServiceWorker';\nimport Routes from './routes';\nimport 'moment/locale/fi';\nimport 'semantic-ui-css/semantic.css';\n// Override couple semantic-ui css-settings\nimport './styling/semantic-ui-overrides.css';\nimport './styling/style.scss';\nimport './styling/chat-app.scss';\n\n\nfunction initializeAnalytics() {\n ReactGA.initialize('UA-147961355-1');\n}\n\ncssVars();\n\n// var cookieSetLanguage = cookie.get('language');\n\n// console.log(cookieSetLanguage, 'kieli vaihdettu cookiella');\n\n// cookie.set(\n// 'language',\n// window.navigator.userLanguage || window.navigator.language\n// );\n\nconst importAll = require =>\n require.keys().reduce((acc, next) => {\n acc[next.replace('./', '')] = require(next);\n return acc;\n }, {});\n\nexport const images = importAll(\n require.context('./Assets/images', false, /\\.(png|jpe?g|svg)$/)\n);\n\nexport const logos = importAll(\n require.context('./Assets/logos', false, /\\.(png|jpe?g|svg)$/)\n);\n\nexport const pdfs = importAll(\n require.context('./Assets/pdf', false, /\\.(pdf)$/)\n);\n\nexport const formatDate = timestamp => {\n if (typeof timestamp === 'string') {\n timestamp = parseInt(timestamp);\n } else {\n const DATE_FORMAT = 'ddd MMM DD YYYY HH:mm:ss';\n timestamp = moment(timestamp, DATE_FORMAT);\n }\n return timestamp;\n};\n\nexport const THIS_IS_PATIENT_CHANNEL = 'thisIsPatientChannel';\n\n// change target to '_blank' to open links in new tab/window\n// change targe to '' to open links in same window (default)\nexport const HTMLtarget = '_blank';\n\nconst Root = () => {\n\n initializeAnalytics();\n // * Not really usefull.\n // * Title is read from public/index.html and we need that to stay what website we use\n // * Also it includes manifest that cannot be changed dynamically\n // const [t] = useTranslation();\n\n // useEffect(() => {\n // document.title = t(\"title\")\n // },[t]);\n\n return (\n \n \n \n );\n};\n\nReactDOM.render(, document.getElementById('root'));\n// registerServiceWorker();\n"],"sourceRoot":""}