airdcpp-webui 2.13.0-beta.2 → 2.13.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.html +1 -1
- package/dist/js/616.5fb9e1369585863a0090.chunk.js +2 -0
- package/dist/js/616.5fb9e1369585863a0090.chunk.js.gz +0 -0
- package/dist/js/616.5fb9e1369585863a0090.chunk.js.map +1 -0
- package/dist/js/{filelists.9bbe06c108a8677ee055.chunk.js → filelists.36c094bb9481fe161076.chunk.js} +2 -2
- package/dist/js/filelists.36c094bb9481fe161076.chunk.js.gz +0 -0
- package/dist/js/filelists.36c094bb9481fe161076.chunk.js.map +1 -0
- package/dist/js/{files.c892fc18f34c0df21798.chunk.js → files.e2f20d9b781cccf39e46.chunk.js} +2 -2
- package/dist/js/files.e2f20d9b781cccf39e46.chunk.js.gz +0 -0
- package/dist/js/files.e2f20d9b781cccf39e46.chunk.js.map +1 -0
- package/dist/js/{home.8eb92b8f499db1f6b157.chunk.js → home.2214cdc67645b4d98bc7.chunk.js} +3 -3
- package/dist/js/home.2214cdc67645b4d98bc7.chunk.js.gz +0 -0
- package/dist/js/home.2214cdc67645b4d98bc7.chunk.js.map +1 -0
- package/dist/js/{hubs.0519391702abb2ab6fb9.chunk.js → hubs.da174ee10d83d315fd94.chunk.js} +2 -2
- package/dist/js/hubs.da174ee10d83d315fd94.chunk.js.gz +0 -0
- package/dist/js/hubs.da174ee10d83d315fd94.chunk.js.map +1 -0
- package/dist/js/locales/{en-webui-main-json.887642492b267198ad80.chunk.js → en-webui-main-json.122e159ff7cbf9279033.chunk.js} +1 -1
- package/dist/js/locales/en-webui-main-json.122e159ff7cbf9279033.chunk.js.gz +0 -0
- package/dist/js/{main.0e886fb6440bb084150f.entry.js → main.50a26bf428c35f624dad.entry.js} +3 -3
- package/dist/js/main.50a26bf428c35f624dad.entry.js.gz +0 -0
- package/dist/js/{main.0e886fb6440bb084150f.entry.js.map → main.50a26bf428c35f624dad.entry.js.map} +1 -1
- package/dist/js/{messages.ca2775e685980c6c933c.chunk.js → messages.805b014b2ac099b6e9cf.chunk.js} +2 -2
- package/dist/js/messages.805b014b2ac099b6e9cf.chunk.js.gz +0 -0
- package/dist/js/messages.805b014b2ac099b6e9cf.chunk.js.map +1 -0
- package/dist/js/{settings.a2e92d27fef99fbeba03.chunk.js → settings.612ab4ae2ccdaebb1310.chunk.js} +2 -2
- package/dist/js/settings.612ab4ae2ccdaebb1310.chunk.js.gz +0 -0
- package/dist/js/settings.612ab4ae2ccdaebb1310.chunk.js.map +1 -0
- package/dist/sw.js +1 -1
- package/dist/sw.js.gz +0 -0
- package/package.json +1 -1
- package/dist/js/616.47ea358b41bea4430f9c.chunk.js +0 -2
- package/dist/js/616.47ea358b41bea4430f9c.chunk.js.gz +0 -0
- package/dist/js/616.47ea358b41bea4430f9c.chunk.js.map +0 -1
- package/dist/js/filelists.9bbe06c108a8677ee055.chunk.js.gz +0 -0
- package/dist/js/filelists.9bbe06c108a8677ee055.chunk.js.map +0 -1
- package/dist/js/files.c892fc18f34c0df21798.chunk.js.gz +0 -0
- package/dist/js/files.c892fc18f34c0df21798.chunk.js.map +0 -1
- package/dist/js/home.8eb92b8f499db1f6b157.chunk.js.gz +0 -0
- package/dist/js/home.8eb92b8f499db1f6b157.chunk.js.map +0 -1
- package/dist/js/hubs.0519391702abb2ab6fb9.chunk.js.gz +0 -0
- package/dist/js/hubs.0519391702abb2ab6fb9.chunk.js.map +0 -1
- package/dist/js/locales/en-webui-main-json.887642492b267198ad80.chunk.js.gz +0 -0
- package/dist/js/main.0e886fb6440bb084150f.entry.js.gz +0 -0
- package/dist/js/messages.ca2775e685980c6c933c.chunk.js.gz +0 -0
- package/dist/js/messages.ca2775e685980c6c933c.chunk.js.map +0 -1
- package/dist/js/settings.a2e92d27fef99fbeba03.chunk.js.gz +0 -0
- package/dist/js/settings.a2e92d27fef99fbeba03.chunk.js.map +0 -1
- /package/dist/js/{home.8eb92b8f499db1f6b157.chunk.js.LICENSE.txt → home.2214cdc67645b4d98bc7.chunk.js.LICENSE.txt} +0 -0
- /package/dist/js/{main.0e886fb6440bb084150f.entry.js.LICENSE.txt → main.50a26bf428c35f624dad.entry.js.LICENSE.txt} +0 -0
package/dist/js/{messages.ca2775e685980c6c933c.chunk.js → messages.805b014b2ac099b6e9cf.chunk.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[871],{58834:(e,s,n)=>{n.d(s,{A:()=>c});var t=n(71354),i=n.n(t),a=n(76314),o=n.n(a)()(i());o.push([e.id,".ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n","",{version:3,sources:["webpack://./src/routes/Sidebar/routes/Messages/style.css"],names:[],mappings:"AAAA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:[".ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n"],sourceRoot:""}]);const c=o},22187:(e,s,n)=>{n.d(s,{A:()=>r});var t=n(74848),i=n(77856),a=n(71352),o=n(93866),c=n(39115);function r(e){return{itemNameGetter:e=>e.user.nicks,itemStatusGetter(e){const{flags:s}=e.user;return(0,i.Z)(s)},itemHeaderDescriptionGetter:e=>e.user.hub_names,itemHeaderIconGetter:e=>(0,t.jsx)(o.A,{flags:e.user.flags}),itemHeaderTitleGetter(s,n,i){const{user:o}=s;return(0,t.jsx)(a.Bg,{user:o,ids:e,remoteMenuId:c.Ay.HINTED_USER,children:i})}}}},574:(e,s,n)=>{n.r(s),n.d(s,{default:()=>oe});var t=n(74848),i=n(96540),a=n(91950),o=n(22187),c=n(10704),r=n(8220),l=n(62705),A=n(93226),d=n(4425),u=n(
|
|
2
|
-
//# sourceMappingURL=messages.
|
|
1
|
+
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[871],{58834:(e,s,n)=>{n.d(s,{A:()=>c});var t=n(71354),i=n.n(t),a=n(76314),o=n.n(a)()(i());o.push([e.id,".ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n","",{version:3,sources:["webpack://./src/routes/Sidebar/routes/Messages/style.css"],names:[],mappings:"AAAA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:[".ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n"],sourceRoot:""}]);const c=o},22187:(e,s,n)=>{n.d(s,{A:()=>r});var t=n(74848),i=n(77856),a=n(71352),o=n(93866),c=n(39115);function r(e){return{itemNameGetter:e=>e.user.nicks,itemStatusGetter(e){const{flags:s}=e.user;return(0,i.Z)(s)},itemHeaderDescriptionGetter:e=>e.user.hub_names,itemHeaderIconGetter:e=>(0,t.jsx)(o.A,{flags:e.user.flags}),itemHeaderTitleGetter(s,n,i){const{user:o}=s;return(0,t.jsx)(a.Bg,{user:o,ids:e,remoteMenuId:c.Ay.HINTED_USER,children:i})}}}},574:(e,s,n)=>{n.r(s),n.d(s,{default:()=>oe});var t=n(74848),i=n(96540),a=n(91950),o=n(22187),c=n(10704),r=n(8220),l=n(62705),A=n(93226),d=n(4425),u=n(16674);const p=e=>c.A.getSession(e.user.cid),S=e=>{const s=s=>{const{location:n,navigate:t}=e;r.A.createSession(s,{sessionStore:c.A,location:n,navigate:t})},{sessionT:n}=e;return(0,t.jsxs)("div",{className:"private chat session new",children:[(0,t.jsx)(u.M,{onChange:s,offlineMessage:n.t("offlineMessage","You must to be connected to at least one hub in order to send private messages"),isClearable:!1,autoFocus:!0}),(0,t.jsx)(l.A,{entryType:A.iM.PRIVATE_CHAT,hasSession:p,entryTitleRenderer:e=>(0,t.jsx)("a",{onClick:n=>s(e.user),children:e.user.nicks}),entryIcon:d.A.MESSAGES_PLAIN})]})};var E=n(26590),m=n(38453),h=n(99347),C=n(71352),T=n(85208),I=n(86038),_=n(25113),b=n(32811),g=n(67749);const f={connectCCPM:{id:"connectCCPM",displayName:"Connect",access:I.US.PRIVATE_CHAT_EDIT,icon:d.A.PLAY,handler:({itemData:e})=>b.A.post(`${_.A.SESSIONS_URL}/${e.id}/ccpm`),filter:({itemData:e})=>e.ccpm_state.id===I.ob.DISCONNECTED},disconnectCCPM:{id:"disconnectCCPM",displayName:"Disconnect",access:I.US.PRIVATE_CHAT_EDIT,icon:d.A.REMOVE,handler:({itemData:e})=>b.A.delete(`${_.A.SESSIONS_URL}/${e.id}/ccpm`),filter:({itemData:e})=>e.ccpm_state.id===I.ob.CONNECTED}},N={moduleData:{moduleId:g.KV.MESSAGES},actions:f},y=(e,s)=>{const{translate:n}=s;switch(e){case I.ob.CONNECTED:return n("Direct encrypted channel established");case I.ob.CONNECTING:return(0,t.jsx)(h.A,{size:"mini",inline:!0,text:n("Establishing connection...")});case I.ob.DISCONNECTED:return n("Direct encrypted channel available");default:return null}},D=({session:e,sessionT:s})=>{const{flags:n}=e.user;if(!n.includes("ccpm"))return null;const i=e.ccpm_state.id;return i===I.ob.DISCONNECTED&&n.includes("offline")?null:(0,t.jsx)(m.q,{children:(0,t.jsxs)("div",{className:"ccpm-state",children:[(0,t.jsx)(T.A,{encryption:e.ccpm_state.encryption,alwaysVisible:!0,boundary:".session-container"}),(0,t.jsx)(C.Wy,{caption:y(i,s),actions:N,itemData:e})]})})};var v=n(22005),O=n.n(v),M=n(20311),x=n.n(M),P=n(14038),R=n(97744),j=n(19618);const w=O().createStore({scroll:(0,j.z)(),onSocketConnected(e){x()(!this.hasMessages(),"No existing private messages should exist on socket connect"),x()(!this.hasInitializedSessions(),"No initialized private message sessions should exist on socket connect");const s=_.A.MODULE_URL;e(s,_.A.MESSAGE,this._onChatMessage),e(s,_.A.STATUS,this._onStatusMessage),e(s,_.A.SESSION_REMOVED,this._onSessionRemoved),e(s,_.A.SESSION_UPDATED,this._onSessionUpdated)}}),U=(0,P.A)(w,r.A,R.A.PRIVATE_CHAT_VIEW);var G=n(59548),H=n(39115);class V extends i.Component{constructor(){super(...arguments),this.handleFileUpload=e=>{const{cid:s,hub_url:n,flags:t}=this.props.session.user,i=!t.includes("nmdc")&&!t.includes("bot");return(0,G.eo)(e,n,i?s:void 0)}}render(){const{session:e,sessionApi:s,sessionT:n,uiActions:i}=this.props;return(0,t.jsxs)("div",{className:"private chat session",children:[(0,t.jsx)(E.A,{chatAccess:I.US.PRIVATE_CHAT_SEND,chatActions:i,chatApi:r.A,sessionApi:s,messageStore:U,session:e,handleFileUpload:this.handleFileUpload,highlightRemoteMenuId:H.Ay.PRIVATE_CHAT_MESSAGE_HIGHLIGHT}),(0,t.jsx)(D,{session:e,sessionT:n})]})}}V.displayName="PrivateChatSession";const k=V;var L=n(78046),z=n(85072),B=n.n(z),F=n(97825),$=n.n(F),K=n(77659),W=n.n(K),Y=n(55056),Z=n.n(Y),q=n(10540),J=n.n(q),Q=n(41113),X=n.n(Q),ee=n(58834),se={};se.styleTagTransform=X(),se.setAttributes=Z(),se.insert=W().bind(null,"head"),se.domAPI=$(),se.insertStyleElement=J(),B()(ee.A,se),ee.A&&ee.A.locals&&ee.A.locals;var ne=n(4112);const te={clearChat:(0,n(69858).G)(_.A.SESSIONS_URL,I.US.PRIVATE_CHAT_EDIT),remove:(0,ne.R)(_.A.SESSIONS_URL,I.US.PRIVATE_CHAT_EDIT)},ie={moduleData:{moduleId:g.KV.MESSAGES},actions:te};const ae=["clearChat"],oe=(0,L.Z)((e=>{const{params:s,sessionT:n}=e,i=function(e,s){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&s.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(t=Object.getOwnPropertySymbols(e);i<t.length;i++)s.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(e,t[i])&&(n[t[i]]=e[t[i]])}return n}(e,["params","sessionT"]);return(0,t.jsx)(a.A,Object.assign({activeId:s.id,baseUrl:"messages",newCaption:n.t("new","New session"),newDescription:n.t("newDesc","Open a new private chat session"),newIcon:d.A.MESSAGES_PLAIN,unreadInfoStore:c.A,editAccess:I.US.PRIVATE_CHAT_EDIT,uiActions:ie,sessionApi:r.A,actionIds:ae,sessionItemLayout:k,newLayout:S,sessionT:n,remoteMenuId:"private_chat"},(0,o.A)(["browse","ignore","unignore"]),i))}),c.A,g.KV.MESSAGES)}}]);
|
|
2
|
+
//# sourceMappingURL=messages.805b014b2ac099b6e9cf.chunk.js.map
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/messages.805b014b2ac099b6e9cf.chunk.js","mappings":"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","sources":["webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/style.css","webpack://airdcpp-webui/./src/routes/Sidebar/decorators/UserItemHandlerDecorator.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/MessageNew.tsx","webpack://airdcpp-webui/./src/actions/ui/private-chat/PrivateChatCCPMActions.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/MessageFooter.tsx","webpack://airdcpp-webui/./src/stores/PrivateChatMessageStore.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/PrivateChatSession.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/style.css?55a2","webpack://airdcpp-webui/./src/actions/ui/private-chat/PrivateChatActions.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Messages/components/Messages.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ccpm-state {\n display: flex;\n}\n\n.ccpm-state > i {\n align-self: center;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/routes/Sidebar/routes/Messages/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".ccpm-state {\\n display: flex;\\n}\\n\\n.ccpm-state > i {\\n align-self: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { userOnlineStatusToColor } from 'utils/TypeConvert';\r\nimport { UserMenu } from 'components/action-menu';\r\nimport UserIcon from 'components/icon/UserIcon';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport MenuConstants from 'constants/MenuConstants';\r\n\r\ninterface UserSessionBase {\r\n user: API.HintedUser;\r\n}\r\n\r\nexport default function <SessionT extends UI.SessionItemBase & UserSessionBase>(\r\n itemMenuIds: string[],\r\n) {\r\n const UserItemHandlerDecorator: UI.SessionInfoGetter<SessionT> = {\r\n itemNameGetter(session) {\r\n return session.user.nicks;\r\n },\r\n\r\n itemStatusGetter(session) {\r\n const { flags } = session.user;\r\n return userOnlineStatusToColor(flags);\r\n },\r\n\r\n itemHeaderDescriptionGetter(session) {\r\n return session.user.hub_names;\r\n },\r\n\r\n itemHeaderIconGetter(session) {\r\n return <UserIcon flags={session.user.flags} />;\r\n },\r\n\r\n itemHeaderTitleGetter(session, location, actionMenu) {\r\n const { user } = session;\r\n return (\r\n <UserMenu user={user} ids={itemMenuIds} remoteMenuId={MenuConstants.HINTED_USER}>\r\n {actionMenu}\r\n </UserMenu>\r\n );\r\n },\r\n };\r\n\r\n return UserItemHandlerDecorator;\r\n}\r\n","import RecentLayout from 'routes/Sidebar/components/RecentLayout';\r\n\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\nimport PrivateChatSessionStore from 'stores/PrivateChatSessionStore';\r\n\r\nimport { HistoryEntryEnum } from 'constants/HistoryConstants';\r\n\r\nimport * as API from 'types/api';\r\n\r\nimport IconConstants from 'constants/IconConstants';\r\nimport { UserSelectField } from 'components/select';\r\nimport { NewSessionLayoutProps } from 'routes/Sidebar/components/types';\r\n\r\nconst hasSession = (entry: API.HistoryItem) => {\r\n return PrivateChatSessionStore.getSession(entry.user!.cid);\r\n};\r\n\r\nconst MessageNew: React.FC<NewSessionLayoutProps> = (props) => {\r\n const handleSubmit = (user: API.HintedUser) => {\r\n const { location, navigate } = props;\r\n PrivateChatActions.createSession(user, {\r\n sessionStore: PrivateChatSessionStore,\r\n location,\r\n navigate,\r\n });\r\n };\r\n\r\n const recentUserRender = (entry: API.HistoryItem) => {\r\n return <a onClick={(_) => handleSubmit(entry.user!)}>{entry.user!.nicks}</a>;\r\n };\r\n\r\n const { sessionT } = props;\r\n return (\r\n <div className=\"private chat session new\">\r\n <UserSelectField\r\n onChange={handleSubmit}\r\n offlineMessage={sessionT.t<string>(\r\n 'offlineMessage',\r\n 'You must to be connected to at least one hub in order to send private messages',\r\n )}\r\n isClearable={false}\r\n autoFocus={true}\r\n />\r\n <RecentLayout\r\n entryType={HistoryEntryEnum.PRIVATE_CHAT}\r\n hasSession={hasSession}\r\n entryTitleRenderer={recentUserRender}\r\n entryIcon={IconConstants.MESSAGES_PLAIN}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default MessageNew;\r\n","import PrivateChatConstants from 'constants/PrivateChatConstants';\r\nimport SocketService from 'services/SocketService';\r\n\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\ntype Filter = UI.ActionFilter<API.PrivateChat>;\r\nconst ccpmConnected: Filter = ({ itemData }) =>\r\n itemData.ccpm_state.id === API.CCPMStateEnum.CONNECTED;\r\nconst ccpmDisconnected: Filter = ({ itemData }) =>\r\n itemData.ccpm_state.id === API.CCPMStateEnum.DISCONNECTED;\r\n\r\ntype Handler = UI.ActionHandler<API.PrivateChat>;\r\n\r\nconst handleConnectCCPM: Handler = ({ itemData: session }) => {\r\n return SocketService.post(`${PrivateChatConstants.SESSIONS_URL}/${session.id}/ccpm`);\r\n};\r\n\r\nconst handleDisconnectCCPM: Handler = ({ itemData: session }) => {\r\n return SocketService.delete(`${PrivateChatConstants.SESSIONS_URL}/${session.id}/ccpm`);\r\n};\r\n\r\nexport const PrivateChatConnectCCPMAction = {\r\n id: 'connectCCPM',\r\n displayName: 'Connect',\r\n access: API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n icon: IconConstants.PLAY,\r\n handler: handleConnectCCPM,\r\n filter: ccpmDisconnected,\r\n};\r\n\r\nexport const PrivateChatDisconnectCCPMAction = {\r\n id: 'disconnectCCPM',\r\n displayName: 'Disconnect',\r\n access: API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n icon: IconConstants.REMOVE,\r\n handler: handleDisconnectCCPM,\r\n filter: ccpmConnected,\r\n};\r\n\r\nconst PrivateChatActions: UI.ActionListType<API.PrivateChat> = {\r\n connectCCPM: PrivateChatConnectCCPMAction,\r\n disconnectCCPM: PrivateChatDisconnectCCPMAction,\r\n};\r\n\r\nexport const PrivateChatCCPMActionModule = {\r\n moduleId: UI.Modules.MESSAGES,\r\n};\r\n\r\nexport const PrivateChatCCPMActionMenu = {\r\n moduleData: PrivateChatCCPMActionModule,\r\n actions: PrivateChatActions,\r\n};\r\n","import * as React from 'react';\n\nimport { SessionFooter } from 'routes/Sidebar/components/SessionFooter';\nimport Loader from 'components/semantic/Loader';\nimport { ActionMenu } from 'components/action-menu';\nimport EncryptionState from 'components/EncryptionState';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\n\nimport { PrivateChatCCPMActionMenu } from 'actions/ui/private-chat/PrivateChatCCPMActions';\n\nconst getCaption = (state: API.CCPMStateEnum, sessionT: UI.ModuleTranslator) => {\n const { translate } = sessionT;\n switch (state) {\n case API.CCPMStateEnum.CONNECTED:\n return translate('Direct encrypted channel established');\n case API.CCPMStateEnum.CONNECTING:\n return (\n <Loader\n size=\"mini\"\n inline={true}\n text={translate('Establishing connection...')}\n />\n );\n case API.CCPMStateEnum.DISCONNECTED:\n return translate('Direct encrypted channel available');\n default:\n return null;\n }\n};\n\ninterface CCPMStateProps {\n session: API.PrivateChat;\n sessionT: UI.ModuleTranslator;\n}\n\nconst CCPMState: React.FC<CCPMStateProps> = ({ session, sessionT }) => {\n const { flags } = session.user;\n if (!flags.includes('ccpm')) {\n return null;\n }\n\n const state = session.ccpm_state.id;\n if (state === API.CCPMStateEnum.DISCONNECTED && flags.includes('offline')) {\n return null;\n }\n\n return (\n <SessionFooter>\n <div className=\"ccpm-state\">\n <EncryptionState\n encryption={session.ccpm_state.encryption}\n alwaysVisible={true}\n boundary=\".session-container\"\n />\n <ActionMenu\n caption={getCaption(state, sessionT)}\n actions={PrivateChatCCPMActionMenu}\n itemData={session}\n />\n </div>\n </SessionFooter>\n );\n};\n\nexport default CCPMState;\n","//@ts-ignore\r\nimport Reflux from 'reflux';\r\nimport invariant from 'invariant';\r\n\r\nimport PrivateChatConstants from 'constants/PrivateChatConstants';\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\n\r\nimport MessageStoreDecorator from './decorators/MessageStoreDecorator';\r\n\r\nimport AccessConstants from 'constants/AccessConstants';\r\nimport { AddSocketListener } from 'decorators/SocketSubscriptionDecorator';\r\nimport { SessionScrollPositionKeeper } from './helpers/SessionScrollPositionKeeper';\r\n\r\nconst PrivateChatMessageStore = Reflux.createStore({\r\n scroll: SessionScrollPositionKeeper(),\r\n\r\n onSocketConnected(addSocketListener: AddSocketListener) {\r\n invariant(\r\n !this.hasMessages(),\r\n 'No existing private messages should exist on socket connect',\r\n );\r\n invariant(\r\n !this.hasInitializedSessions(),\r\n 'No initialized private message sessions should exist on socket connect',\r\n );\r\n\r\n const url = PrivateChatConstants.MODULE_URL;\r\n addSocketListener(url, PrivateChatConstants.MESSAGE, this._onChatMessage);\r\n addSocketListener(url, PrivateChatConstants.STATUS, this._onStatusMessage);\r\n\r\n addSocketListener(url, PrivateChatConstants.SESSION_REMOVED, this._onSessionRemoved);\r\n addSocketListener(url, PrivateChatConstants.SESSION_UPDATED, this._onSessionUpdated);\r\n },\r\n});\r\n\r\nexport default MessageStoreDecorator(\r\n PrivateChatMessageStore,\r\n PrivateChatActions,\r\n AccessConstants.PRIVATE_CHAT_VIEW,\r\n);\r\n","import { Component } from 'react';\r\n\r\nimport ChatLayout from 'routes/Sidebar/components/chat/ChatLayout';\r\nimport MessageFooter from 'routes/Sidebar/routes/Messages/components/MessageFooter';\r\n\r\nimport PrivateChatMessageStore from 'stores/PrivateChatMessageStore';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { shareTempFile } from 'services/api/ShareApi';\r\nimport PrivateChatActions from 'actions/reflux/PrivateChatActions';\r\nimport MenuConstants from 'constants/MenuConstants';\r\nimport { SessionChildProps } from 'routes/Sidebar/components/types';\r\n\r\ntype PrivateChatSessionProps = SessionChildProps<\r\n API.PrivateChat,\r\n UI.EmptyObject,\r\n UI.ChatActionList\r\n>;\r\n\r\nclass PrivateChatSession extends Component<PrivateChatSessionProps> {\r\n static displayName = 'PrivateChatSession';\r\n\r\n handleFileUpload = (file: File) => {\r\n const { cid, hub_url, flags } = this.props.session.user;\r\n\r\n const isPrivate = !flags.includes('nmdc') && !flags.includes('bot');\r\n return shareTempFile(file, hub_url, isPrivate ? cid : undefined);\r\n };\r\n\r\n render() {\r\n const { session, sessionApi, sessionT, uiActions } = this.props;\r\n return (\r\n <div className=\"private chat session\">\r\n <ChatLayout\r\n chatAccess={API.AccessEnum.PRIVATE_CHAT_SEND}\r\n chatActions={uiActions}\r\n chatApi={PrivateChatActions as UI.ChatAPI}\r\n sessionApi={sessionApi}\r\n messageStore={PrivateChatMessageStore}\r\n session={session}\r\n handleFileUpload={this.handleFileUpload}\r\n highlightRemoteMenuId={MenuConstants.PRIVATE_CHAT_MESSAGE_HIGHLIGHT}\r\n />\r\n\r\n <MessageFooter session={session} sessionT={sessionT} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PrivateChatSession;\r\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PrivateChatConstants from 'constants/PrivateChatConstants';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { BuildRemoveSessionAction } from '../decorators/SessionActionDecorator';\r\nimport { BuildClearChatAction } from '../decorators/ChatActionDecorator';\r\n\r\nconst PrivateChatClearChatAction = BuildClearChatAction(\r\n PrivateChatConstants.SESSIONS_URL,\r\n API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n);\r\n\r\nconst PrivateChatRemoveAction = BuildRemoveSessionAction(\r\n PrivateChatConstants.SESSIONS_URL,\r\n API.AccessEnum.PRIVATE_CHAT_EDIT,\r\n);\r\n\r\nconst PrivateChatActions: UI.ActionListType<API.PrivateChat> = {\r\n clearChat: PrivateChatClearChatAction,\r\n remove: PrivateChatRemoveAction,\r\n};\r\n\r\nexport const PrivateChatActionModule = {\r\n moduleId: UI.Modules.MESSAGES,\r\n};\r\n\r\nexport const PrivateChatActionMenu = {\r\n moduleData: PrivateChatActionModule,\r\n actions: PrivateChatActions,\r\n};\r\n","import * as React from 'react';\r\n\r\nimport SessionLayout from 'routes/Sidebar/components/SessionLayout';\r\nimport UserItemHandlerDecorator from 'routes/Sidebar/decorators/UserItemHandlerDecorator';\r\n\r\nimport PrivateChatSessionStore from 'stores/PrivateChatSessionStore';\r\nimport PrivateChatAPIActions from 'actions/reflux/PrivateChatActions';\r\n\r\nimport MessageNew from 'routes/Sidebar/routes/Messages/components/MessageNew';\r\nimport PrivateChatSession from 'routes/Sidebar/routes/Messages/components/PrivateChatSession';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport {\r\n SessionProviderDecoratorChildProps,\r\n SessionProviderDecorator,\r\n} from 'routes/Sidebar/decorators/SessionProviderDecorator';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport '../style.css';\r\nimport { PrivateChatActionMenu } from 'actions/ui/private-chat';\r\n\r\nconst sessionActions = ['clearChat'];\r\n\r\nconst Messages: React.FC<SessionProviderDecoratorChildProps<API.PrivateChat>> = (\r\n props,\r\n) => {\r\n const { params, sessionT, ...other } = props;\r\n return (\r\n <SessionLayout\r\n activeId={params.id}\r\n baseUrl=\"messages\"\r\n newCaption={sessionT.t('new', 'New session')}\r\n newDescription={sessionT.t('newDesc', 'Open a new private chat session')}\r\n newIcon={IconConstants.MESSAGES_PLAIN}\r\n unreadInfoStore={PrivateChatSessionStore}\r\n editAccess={API.AccessEnum.PRIVATE_CHAT_EDIT}\r\n uiActions={PrivateChatActionMenu}\r\n sessionApi={PrivateChatAPIActions as UI.SessionActions<API.PrivateChat>}\r\n actionIds={sessionActions}\r\n sessionItemLayout={PrivateChatSession}\r\n newLayout={MessageNew}\r\n sessionT={sessionT}\r\n remoteMenuId=\"private_chat\"\r\n {...UserItemHandlerDecorator(['browse', 'ignore', 'unignore'])}\r\n {...other}\r\n />\r\n );\r\n};\r\n\r\nexport default SessionProviderDecorator(\r\n Messages,\r\n PrivateChatSessionStore,\r\n UI.Modules.MESSAGES,\r\n);\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","itemMenuIds","itemNameGetter","session","user","nicks","itemStatusGetter","flags","itemHeaderDescriptionGetter","hub_names","itemHeaderIconGetter","itemHeaderTitleGetter","location","actionMenu","ids","remoteMenuId","HINTED_USER","hasSession","entry","PrivateChatSessionStore","getSession","cid","props","handleSubmit","navigate","PrivateChatActions","createSession","sessionStore","sessionT","className","onChange","offlineMessage","t","isClearable","autoFocus","RecentLayout","entryType","PRIVATE_CHAT","entryTitleRenderer","onClick","_","entryIcon","IconConstants","MESSAGES_PLAIN","connectCCPM","displayName","access","PRIVATE_CHAT_EDIT","icon","PLAY","handler","itemData","SocketService","post","PrivateChatConstants","SESSIONS_URL","filter","ccpm_state","DISCONNECTED","disconnectCCPM","REMOVE","delete","CONNECTED","PrivateChatCCPMActionMenu","moduleData","moduleId","MESSAGES","actions","getCaption","state","translate","CONNECTING","Loader","size","inline","text","includes","SessionFooter","EncryptionState","encryption","alwaysVisible","boundary","caption","PrivateChatMessageStore","scroll","SessionScrollPositionKeeper","onSocketConnected","addSocketListener","this","hasMessages","hasInitializedSessions","url","MODULE_URL","MESSAGE","_onChatMessage","STATUS","_onStatusMessage","SESSION_REMOVED","_onSessionRemoved","SESSION_UPDATED","_onSessionUpdated","MessageStoreDecorator","AccessConstants","A","PRIVATE_CHAT_VIEW","PrivateChatSession","Component","handleFileUpload","file","hub_url","isPrivate","undefined","render","sessionApi","uiActions","ChatLayout","chatAccess","PRIVATE_CHAT_SEND","chatActions","chatApi","messageStore","highlightRemoteMenuId","MenuConstants","PRIVATE_CHAT_MESSAGE_HIGHLIGHT","MessageFooter","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","clearChat","remove","PrivateChatActionMenu","sessionActions","SessionProviderDecorator","params","other","SessionLayout","activeId","baseUrl","newCaption","newDescription","newIcon","unreadInfoStore","editAccess","actionIds","sessionItemLayout","newLayout","UserItemHandlerDecorator"],"sourceRoot":""}
|