@webinex/chatify 1.0.0-alpha00 → 1.0.0-alpha02

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.
Files changed (44) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/ChatifyContext.d.ts +1 -1
  4. package/dist/cjs/types/ui/AddChatButton.d.ts +2 -0
  5. package/dist/cjs/types/ui/Avatar.d.ts +6 -0
  6. package/dist/cjs/types/ui/ChatHeaderMembers.d.ts +5 -0
  7. package/dist/cjs/types/ui/ChatHeaderSettingsButton.d.ts +5 -0
  8. package/dist/cjs/types/ui/Chatify.d.ts +17 -2
  9. package/dist/cjs/types/ui/Footer.d.ts +2 -0
  10. package/dist/cjs/types/ui/Header.d.ts +2 -0
  11. package/dist/cjs/types/ui/index.d.ts +5 -0
  12. package/dist/cjs/types/util/customize.d.ts +12 -0
  13. package/dist/cjs/types/util/index.d.ts +1 -0
  14. package/dist/css/chatify.css +3 -3
  15. package/dist/esm/index.js +1 -1
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/types/ChatifyContext.d.ts +1 -1
  18. package/dist/esm/types/ui/AddChatButton.d.ts +2 -0
  19. package/dist/esm/types/ui/Avatar.d.ts +6 -0
  20. package/dist/esm/types/ui/ChatHeaderMembers.d.ts +5 -0
  21. package/dist/esm/types/ui/ChatHeaderSettingsButton.d.ts +5 -0
  22. package/dist/esm/types/ui/Chatify.d.ts +17 -2
  23. package/dist/esm/types/ui/Footer.d.ts +2 -0
  24. package/dist/esm/types/ui/Header.d.ts +2 -0
  25. package/dist/esm/types/ui/index.d.ts +5 -0
  26. package/dist/esm/types/util/customize.d.ts +12 -0
  27. package/dist/esm/types/util/index.d.ts +1 -0
  28. package/dist/index.d.ts +48 -8
  29. package/package.json +1 -1
  30. package/src/ChatifyContext.tsx +5 -2
  31. package/src/ui/AddChatButton.tsx +19 -0
  32. package/src/ui/Aside.tsx +3 -2
  33. package/src/ui/Avatar.tsx +18 -0
  34. package/src/ui/ChatHeader.tsx +6 -22
  35. package/src/ui/ChatHeaderMembers.tsx +30 -0
  36. package/src/ui/ChatHeaderSettingsButton.tsx +26 -0
  37. package/src/ui/Chatify.tsx +30 -16
  38. package/src/ui/Footer.tsx +7 -0
  39. package/src/ui/Header.tsx +14 -0
  40. package/src/ui/MessageMd.tsx +2 -2
  41. package/src/ui/index.ts +5 -0
  42. package/src/ui/styles/index.scss +2 -2
  43. package/src/util/customize.tsx +45 -0
  44. package/src/util/index.ts +1 -0
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import s,{useRef as n,useCallback as i,useContext as c,useState as r,useEffect as d,useMemo as o}from"react";import*as u from"@microsoft/signalr";import{shallowEqual as h}from"shallow-equal";import{Menu as l,Avatar as m,Form as g,Input as y,Select as b,Button as f,Row as v,Col as p,Space as j,Tooltip as O,Skeleton as q,List as x}from"antd";import w from"dayjs";import{SettingOutlined as I,CloseOutlined as _}from"@ant-design/icons";import k from"@ant-design/icons/SendOutlined";import N from"@ant-design/icons/FileAddOutlined";import C from"is-hotkey";function F(e,t,a,s){return new(a||(a=Promise))((function(n,i){function c(e){try{d(s.next(e))}catch(e){i(e)}}function r(e){try{d(s.throw(e))}catch(e){i(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(c,r)}d((s=s.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const S={hubUri:"/api/chatify/hub",headersFactory:()=>Promise.resolve({})},R=["chatify://new-message","chatify://chat-created","chatify://read","chatify://member-added","chatify://member-removed"];class A{constructor(e){this._connection=null,this._subscribers={},this._reconnectSubscribers=[],this.connect=()=>F(this,void 0,void 0,(function*(){const e=yield this._config.signalR.headersFactory();this._connection=(new u.HubConnectionBuilder).withUrl(this._config.signalR.hubUri,{accessTokenFactory:this._config.signalR.accessTokenFactory?this._config.signalR.accessTokenFactory:void 0,headers:e}).withAutomaticReconnect().build(),R.forEach((e=>{this._connection.on(e,((...t)=>{var a;null===(a=this._subscribers[e])||void 0===a||a.forEach((e=>e(t)))}))})),this._connection.onreconnected((()=>this._reconnectSubscribers.forEach((e=>e())))),yield this._connection.start()})),this.subscribe=(e,t)=>{var a;return this._subscribers[e]=null!==(a=this._subscribers[e])&&void 0!==a?a:[],this._subscribers[e].push(t),()=>this._subscribers[e].filter((e=>e!==t))},this.subscribeReconnect=e=>(this._reconnectSubscribers.push(e),()=>this._reconnectSubscribers.filter((t=>t!==e))),this.accounts=()=>F(this,void 0,void 0,(function*(){const{data:e}=yield this.axios.get("account");return e})),this.chats=()=>F(this,void 0,void 0,(function*(){const{data:e}=yield this.axios.get("chat");return e})),this.chat=e=>F(this,void 0,void 0,(function*(){const{data:t}=yield this.axios.get(`chat/${e}`);return t})),this.addChat=e=>F(this,void 0,void 0,(function*(){const{data:t}=yield this.axios.post("chat",e);return t})),this.messages=e=>F(this,void 0,void 0,(function*(){const{chatId:t,skip:a=0,take:s=20}=e,n=encodeURIComponent(JSON.stringify({skip:a,take:s})),{data:i}=yield this.axios.get(`chat/${t}/message?pagingRule=${n}`);return i})),this.send=e=>F(this,void 0,void 0,(function*(){const{chatId:t}=e,a=function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(e);n<s.length;n++)t.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(e,s[n])&&(a[s[n]]=e[s[n]])}return a}(e,["chatId"]);yield this.axios.post(`chat/${t}/message`,a)})),this.read=e=>F(this,void 0,void 0,(function*(){yield this.axios.put("chat/message/read",e)})),this.removeMember=e=>F(this,void 0,void 0,(function*(){yield this.axios.delete(`chat/${e.chatId}/member`,{data:e})})),this.addMember=e=>F(this,void 0,void 0,(function*(){yield this.axios.post(`chat/${e.chatId}/member`,e)})),this._config=Object.assign(Object.assign({},e),{signalR:Object.assign(Object.assign({},S),e.signalR)})}get axios(){return this._config.axios}}function B(e,t,a){const s=a((e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query[t]);return s&&(e.query[t]=s),e}function E(e,t,a){const s=a((e=Object.assign(Object.assign({},e),{mutation:Object.assign({},e.mutation)})).mutation[t]);return s&&(e.mutation[t]=s),e}const T={query_fetch:(e,{key:t})=>B(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!0,uninitialized:!1}))),query_resolve:(e,{key:t,data:a})=>B(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:void 0,data:a}))),query_reject:(e,{key:t,error:a})=>B(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:a}))),mutation_fetch:(e,{key:t})=>E(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!0}))),mutation_resolve:(e,{key:t})=>E(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:void 0}))),mutation_reject:(e,{key:t,error:a})=>E(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:a}))),update:(e,{mutation:t})=>t(e),chat_open:(e,{chatId:t})=>Object.assign(Object.assign({},e),{ui:Object.assign(Object.assign({},e.ui),{view:"chat",chatId:t})}),new_chat_open:e=>Object.assign(Object.assign({},e),{ui:Object.assign(Object.assign({},e.ui),{view:"new-chat",chatId:void 0})}),chat_settings_open:(e,{chatId:t})=>Object.assign(Object.assign({},e),{ui:Object.assign(Object.assign({},e.ui),{view:"chat-settings",chatId:t})}),message_received:(e,{message:t,requestId:a})=>{var s;return void 0!==(null===(s=e.query["messages."+t.chatId])||void 0===s?void 0:s.data)&&(e=Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{["messages."+t.chatId]:Object.assign(Object.assign({},e.query["messages."+t.chatId]),{data:[Object.assign({type:"message"},t),...e.query["messages."+t.chatId].data].filter((e=>"sending"!==e.type||e.requestId!==a))})})})),void 0!==e.query["chat-list"].data&&(e=Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{"chat-list":Object.assign(Object.assign({},e.query["chat-list"]),{data:e.query["chat-list"].data.map((e=>e.id===t.chatId?Object.assign(Object.assign({},e),{message:t,unreadCount:t.read?e.unreadCount:e.unreadCount+1}):e))})})})),e},chat_created:(e,{chat:t})=>{var a;return void 0===(null===(a=e.query["chat-list"])||void 0===a?void 0:a.data)?e:Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{"chat-list":Object.assign(Object.assign({},e.query["chat-list"]),{data:[t,...e.query["chat-list"].data]})})})},read:(e,{id:t,timestamp:a})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:[...e.read.queued,t],timestamp:a})}),read_send:(e,{ids:t})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:e.read.queued.filter((e=>!t.includes(e))),sent:[...e.read.sent,...t]})}),read_reject:(e,{ids:t,timestamp:a})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:[...e.read.queued,...t],sent:e.read.sent.filter((e=>!t.includes(e))),timestamp:a})}),read_received:(e,{events:t})=>{var a,s;const n=t.map((e=>e.messageId));e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query),read:Object.assign(Object.assign({},e.read),{sent:e.read.sent.filter((e=>!n.includes(e)))})}),Object.keys(e.query).filter((e=>e.startsWith("messages."))).forEach((t=>{var a;e.query[t]=Object.assign({},e.query[t]);const s=e.query[t];s.data=null===(a=s.data)||void 0===a?void 0:a.map((e=>"message"===e.type&&n.includes(e.id)?Object.assign(Object.assign({},e),{read:!0}):e))})),e.query["chat-list"]=Object.assign({},e.query["chat-list"]);const i=e.query["chat-list"];return i.data=null===(a=i.data)||void 0===a?void 0:a.map((e=>n.includes(e.message.id)?Object.assign(Object.assign({},e),{message:Object.assign(Object.assign({},e.message),{read:!0})}):e)),i.data=null===(s=i.data)||void 0===s?void 0:s.map((e=>Object.assign(Object.assign({},e),{unreadCount:e.unreadCount-t.filter((t=>t.chatId===e.id)).length}))),e},member_added:(e,{chatId:t,account:a})=>{var s;return void 0!==(null===(s=(e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query["chat."+t])||void 0===s?void 0:s.data)&&(e.query["chat."+t]=Object.assign(Object.assign({},e.query["chat."+t]),{data:Object.assign({},e.query["chat."+t].data)}),e.query["chat."+t].data.members=[...e.query["chat."+t].data.members,a]),e},member_removed:(e,{chatId:t,accountId:a,deleteHistory:s,me:n})=>{var i,c,r,d,o;return void 0!==(null===(i=(e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query["chat."+t])||void 0===i?void 0:i.data)&&(e.query["chat."+t]=Object.assign(Object.assign({},e.query["chat."+t]),{data:Object.assign({},e.query["chat."+t].data)}),e.query["chat."+t].data.members=e.query["chat."+t].data.members.filter((e=>e.id!==a))),a===n&&s&&(null===(c=e.query["chat-list"])||void 0===c?void 0:c.data)&&(e.query["chat-list"]=Object.assign({},e.query["chat-list"]),e.query["chat-list"].data=e.query["chat-list"].data.filter((e=>e.id!==t))),a===n&&s&&(null===(r=e.query["chat-list"])||void 0===r?void 0:r.data)&&e.ui.chatId===t&&(e.ui=Object.assign(Object.assign({},e.ui),{chatId:null===(o=null===(d=e.query["chat-list"])||void 0===d?void 0:d.data.at(0))||void 0===o?void 0:o.id})),e}},M={ui:{},query:{},mutation:{},read:{queued:[],sent:[],timestamp:0}};function P(){const e=n(M),t=n([]),a=i((a=>{const s=function(e,t){const a=T[t.type](e,t.data);return console.debug("[Chatify]: ",t,a),a}(e.current,a);h(e.current,s)||(e.current=s,t.current.forEach((e=>e(s))))}),[]),s=i((e=>(t.current.push(e),()=>{t.current=t.current.filter((t=>t!==e))})),[]);return[e,a,s]}const H=s.createContext(null);function $({children:t}){const a=P();return e(H.Provider,{value:a,children:t})}function U(){return c(H)[1]}function D(){const[e]=c(H);return e}function z(e,t){const[a,,s]=c(H),i=n(e(a.current)),[o,u]=r(i.current);return d((()=>s((t=>{const a=e(t);h(a,i.current)||(i.current=a,u(a))}))),[]),o}const K=s.createContext(null),Q=s.createContext(null);function G(){return c(Q)}function J(){return c(K)}function W({value:t,children:a}){return e(Q.Provider,{value:t.client,children:e(K.Provider,{value:t.me,children:a})})}const L={uninitialized:!1,isFetching:!0,data:void 0,error:void 0};function V(e,t){return e.query[t]}function X(e){const{key:t,queryFn:a}=e,s=D(),n=U(),i=function(e){return z((t=>V(t,e)))}(e.key);return d((()=>{V(s.current,t)||(n({type:"query_fetch",data:{key:t}}),a().then((e=>n({type:"query_resolve",data:{key:t,data:e}}))).catch((e=>n({type:"query_reject",data:{key:t,error:e}}))))}),[]),null!=i?i:L}function Y(e){const{chatId:t}=e,a=G();return X({key:"chat."+t,queryFn:()=>a.chat(t)})}function Z(){const e=G();return X({key:"chat-list",queryFn:()=>e.chats()})}const ee={isFetching:!1,error:void 0};function te(e){const{key:t,queryFn:a,onQueryStarted:s}=e,n=U(),c=D(),r=z((t=>t.mutation[e.key])),d=i((e=>{n({type:"mutation_fetch",data:{key:t}});const i=a(e);i.then((()=>{n({type:"mutation_resolve",data:{key:t}})})).catch((e=>n({type:"mutation_reject",data:{key:t,error:e}}))),s&&s(e,{promise:i,state:c.current,updateState:e=>{n({type:"update",data:{mutation:e}})}})}),[]);return[d,null!=r?r:ee]}function ae({chatId:e}){const t=D(),a=G();return te({key:"more."+e,queryFn:()=>a.messages({chatId:e,skip:t.current.query["messages."+e].data.filter((e=>"message"===e.type)).length,take:15}),onQueryStarted:(t,{promise:a,updateState:s})=>F(this,void 0,void 0,(function*(){const t=yield a;s((a=>{var s;(a=Object.assign({},a)).query=Object.assign({},a.query),a.query["messages."+e]=Object.assign({},a.query["messages."+e]);const n=a.query["messages."+e];return n.data=null===(s=n.data)||void 0===s?void 0:s.filter((e=>"more"!==e.type)),n.data=[...n.data,...t.map((e=>Object.assign(Object.assign({type:"message"},e),{proceed:!0})))],15===t.length&&(n.data=[...n.data,{type:"more"}]),a}))}))})}function se(e){const{chatId:t}=e,a=G();return X({key:"messages."+t,queryFn:()=>a.messages({chatId:t,skip:0,take:15}).then((e=>{const t=e.map((e=>Object.assign(Object.assign({type:"message"},e),{proceed:!0})));return 15===e.length?[...t,{type:"more"}]:t}))})}function ne(){const e=G(),t=U(),a=J();d((()=>{let s=[];return e.connect().then((()=>{s.push(e.subscribe("chatify://new-message",(([e,a])=>{t({type:"message_received",data:{message:e,requestId:a}})}))),s.push(e.subscribe("chatify://chat-created",(([e,a])=>{t({type:"chat_created",data:{chat:e,requestId:a}})}))),s.push(e.subscribe("chatify://read",(([e])=>{t({type:"read_received",data:{events:e}})}))),s.push(e.subscribe("chatify://member-added",(([e,a])=>{t({type:"member_added",data:{chatId:e,account:a}})}))),s.push(e.subscribe("chatify://member-removed",(([e,s,n])=>{t({type:"member_removed",data:{chatId:e,accountId:s,deleteHistory:n,me:a}})})))})),()=>{s.forEach((e=>e()))}}),[])}function ie(){const e=G();return X({key:"accounts",queryFn:()=>e.accounts()})}function ce(){const e=G();return te({key:"add-chat",queryFn:t=>e.addChat(t)})}function re(){const e=G(),[t,a]=z((e=>[e.read.queued,e.read.timestamp])),s=U(),i=n(null);d((()=>{0!==t.length&&(i.current&&clearTimeout(i.current),i.current=setTimeout((()=>{s({type:"read_send",data:{ids:t}}),e.read({ids:t}).catch((()=>s({type:"read_reject",data:{ids:t,timestamp:(new Date).getTime()}})))}),100))}),[a])}function de(){const e=G();return te({key:"add-member",queryFn:t=>e.addMember(t)})}function oe(){const e=G();return te({key:"remove-member",queryFn:t=>e.removeMember(t)})}const ue=s.createContext(null);function he(){return c(ue)}const le={timestamp:e=>w(e).format("HH:mm"),message:{read:()=>"Read",reading:()=>"Reading...",sending:()=>"Sending..."},addChat:{title:()=>"Add chat",name:{label:()=>"Name",required:()=>"Name is required",max250:()=>"Max 250 characters allowed"},members:{label:()=>"Members",required:()=>"Members is required"},submitBtn:()=>"Submit"},system:{chatCreated:()=>"Chat created"}};function me(e,t){if("chatify://chat-created"===t)return e.system.chatCreated();throw new Error(`Unknown system message ${t}`)}function ge(a){const{text:s,sentAt:n}=a,i=he();return t("div",{className:"wxchtf-system-message",children:[e("div",{className:"wxchtf-text",children:me(i,s)}),e("div",{className:"wxchtf-timestamp",children:i.timestamp(n)})]})}function ye(a){const{chat:s}=a,{name:n,message:i,unreadCount:c}=s,r=he();return t("div",{className:"wxchtf-chat"+(i.read?"":" --unread"),children:[e("div",{className:"wxchtf-chat-name",children:n}),c>0&&e("div",{className:"wxchtf-unread-count",children:c}),t("div",{className:"wxchtf-chat-last",children:["chatify::system"!==i.sentBy.id&&t("div",{className:"wxchtf-chat-last-author",children:[e(m,{src:i.sentBy.avatar})," ",i.sentBy.name]}),e("div",{className:"wxchtf-chat-last-message",children:"chatify::system"===i.sentBy.id?me(r,i.text):i.text})]})]})}function be(){const t=z((e=>e.ui.chatId)),a=U(),s=o((()=>t?[t]:[]),[t]),n=i((e=>a({type:"chat_open",data:{chatId:e.selectedKeys[0]}})),[a]),{data:c}=Z(),r=o((()=>c?c.map((t=>({key:t.id,label:e(ye,{chat:t})}))):[]),[c]);return d((()=>{!t&&c&&c.length>0&&a({type:"chat_open",data:{chatId:c[0].id}})}),[c,a]),e("div",{className:"wxchtf-aside",children:c&&e(l,{className:"wxchtf-chats",selectedKeys:s,onSelect:n,items:r})})}function fe(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}function ve(){const[a,{isFetching:s}]=ce(),{data:n,isFetching:c}=ie(),r=he(),d=o((()=>null==n?void 0:n.map((e=>({value:e.id,label:e.name})))),[n]),u=i((e=>a({name:e.name,members:e.members,requestId:fe()})),[a]);return t("div",{className:"wxchtf-add-chat",children:[e("h3",{children:r.addChat.title()}),t(g,{onFinish:u,layout:"vertical",disabled:s,children:[e(g.Item,{name:"name",label:r.addChat.name.label(),rules:[{required:!0,message:r.addChat.name.required()},{max:250,message:r.addChat.name.max250()}],children:e(y,{})}),e(g.Item,{name:"members",label:r.addChat.members.label(),rules:[{required:!0,message:r.addChat.members.required()}],children:e(b,{mode:"multiple",loading:c,options:d})}),e(f,{loading:s,type:"primary",block:!0,htmlType:"submit",children:r.addChat.submitBtn()})]})]})}function pe(a){var s;const{id:n}=a,{data:c}=Y({chatId:n}),r=z((e=>{var t;return null===(t=e.query["chat-list"].data)||void 0===t?void 0:t.find((e=>e.id===n))})),d=U(),o=i((()=>d({type:"chat_settings_open",data:{chatId:n}})),[d]);return e("div",{className:"wxchtf-chat-header",children:t(v,{justify:"space-between",align:"middle",children:[e(p,{className:"wxchtf-chat-name",children:null!==(s=null==c?void 0:c.name)&&void 0!==s?s:null==r?void 0:r.name}),e(p,{className:"wxchtf-chat-members",children:t(j,{align:"center",children:[(null==c?void 0:c.members)&&e(m.Group,{maxCount:5,children:c.members.map((t=>e(O,{title:t.name,children:e(m,{src:t.avatar,children:t.name})},t.id)))}),e(f,{onClick:o,type:"link",icon:e(I,{})})]})})]})})}const je=s.forwardRef(((a,s)=>{const{author:n,text:i,my:c,read:r,reading:d,sending:o,timestamp:u}=a,h=he();return t("div",{ref:s,className:"wxchtf-message"+(c?" --my":"")+(o?" --sending":""),children:[n&&e("div",{className:"wxchtf-message-author",children:e(m,{src:n.avatar})}),t("div",{className:"wxchtf-message-body",children:[e("div",{className:"wxchtf-message-text",children:i}),t("div",{className:"wxchtf-message-info-box",children:[e("div",{className:"wxchtf-message-sent-at",children:h.timestamp(u)}),void 0!==r&&!c&&e("div",{className:"wxchtf-message-read-box",children:d?h.message.reading():h.message.read()}),o&&e("div",{className:"wxchtf-message-sending-box",children:h.message.sending()})]})]})]})}));function Oe(t){const{message:a}=t,s=J(),i=a.sentBy.id===s,c=U(),r=n(null),u=n(!1),h=z((e=>e.read.queued.includes(a.id))),l=o((()=>new IntersectionObserver((([e])=>{!e.isIntersecting||u.current||a.read||(u.current=!0,c({type:"read",data:{id:a.id,timestamp:(new Date).getTime()}}))}))),[]);return d((()=>(l.observe(r.current),()=>l.disconnect())),[l]),e(je,{ref:r,my:i,text:a.text,files:a.files,author:a.sentBy,timestamp:a.sentAt,read:a.read,sending:!1,reading:h})}function qe(s){const{count:n=1}=s;return e(a,{children:Array.from(Array(n)).map(((a,s)=>t("div",{className:"wxchtf-message-skeleton",children:[e(q.Avatar,{className:"wxchtf-avatar",active:!0}),e(q.Button,{active:!0,className:"wxchtf-content"})]},s)))})}function xe(t){const{chatId:a}=t,[s,{isFetching:i}]=ae({chatId:a}),[c,u]=r(!1),h=n(null),l=o((()=>new IntersectionObserver((([e])=>u((t=>t||e.isIntersecting))))),[]);return d((()=>(l.observe(h.current),()=>l.disconnect())),[l]),d((()=>{c&&s()}),[c]),i?e(qe,{count:4}):e("div",{ref:h})}function we(t){const{text:a,files:s}=t;return e(je,{text:a,files:s,my:!0,sending:!0,timestamp:(new Date).toUTCString()})}function Ie(a){const{id:s}=a,{data:n}=se({chatId:s});return t("div",{className:"wxchtf-chat-body",children:[!n&&e(qe,{count:5}),null==n?void 0:n.map(((t,a)=>{if("message"===t.type&&"chatify::system"===t.sentBy.id)return e(ge,{text:t.text,sentAt:t.sentAt});switch(t.type){case"message":return e(Oe,{message:t},t.id);case"sending":return e(we,{text:t.text,files:t.files},t.requestId);case"more":return e(xe,{chatId:s},a);default:return null}}))]})}function _e(){const a=z((e=>e.ui.chatId)),[s]=function(e){const{chatId:t}=e,a=G();return te({key:"add."+t,queryFn:e=>a.send(Object.assign({chatId:t},e)),onQueryStarted:(e,{updateState:a})=>F(this,void 0,void 0,(function*(){a((a=>{const s=(a=Object.assign(Object.assign({},a),{query:Object.assign(Object.assign({},a.query),{["messages."+t]:Object.assign({},a.query["messages."+t])})})).query["messages."+t];return s.data=[{type:"sending",text:e.text,requestId:e.requestId,files:e.files},...s.data],a}))}))})}({chatId:a}),[n,c]=r(""),d=i((()=>{c(""),s({text:n,files:[],requestId:fe()})}),[a,n]);return e("div",{className:"wxchtf-input-form",children:t("div",{className:"wxchtf-input-box",children:[e("div",{className:"wxchtf-add-files-box",children:e(f,{type:"link",icon:e(N,{}),className:"wxchtf-add-files-btn"})}),e("div",{className:"wxchtf-text-input-box",children:e(y.TextArea,{value:n,onChange:e=>c(e.target.value),autoSize:{maxRows:5},className:"wxchtf-text-input-textarea",placeholder:"Start typing (Ctrl/⌘Cmd + Enter to send) ...",onKeyDown:e=>{C("ctrl+enter")(e)&&d()}})}),e("div",{className:"wxchtf-submit-btn-box",children:e(f,{onClick:d,type:"link",icon:e(k,{}),className:"wxchtf-submit-btn"})})]})})}function ke(s){const{id:n}=s,i=J(),{data:c}=Y({chatId:n}),r=!0===(null==c?void 0:c.members.map((e=>e.id)).includes(i));return t(a,{children:[t("div",{className:"wxchtf-chat",children:[e(pe,{id:n}),e(Ie,{id:n})]}),r&&e(_e,{})]})}function Ne(a){const{account:s,chatId:n}=a,[c]=oe(),r=i((()=>c({chatId:n,accountId:s.id,deleteHistory:!0})),[c,n,s.id]);return t(x.Item,{children:[s.name," ",e(f,{onClick:r,type:"link",icon:e(_,{})})]})}function Ce(){const[a]=z((e=>[e.ui.chatId])),{data:s}=Y({chatId:a}),[n]=de(),{data:c}=ie(),r=o((()=>null==c?void 0:c.map((e=>({value:e.id,label:e.name})))),[c]),d=i((e=>n({chatId:a,accountId:e,withHistory:!0})),[n,a]);return s?t("div",{className:"wxchtf-chat-settings",children:[t(v,{justify:"space-between",children:[e(p,{children:e("h3",{className:"wxchtf-title",children:s.name})}),e(p,{children:e(f,{type:"link",icon:e(_,{})})})]}),e("h4",{children:"Members"}),e(x,{dataSource:s.members,rowKey:"id",renderItem:t=>e(Ne,{account:t,chatId:a})}),e(b,{style:{width:"350px"},options:r,value:null,onSelect:d})]}):null}function Fe(){const{view:a,chatId:s}=z((e=>({view:e.ui.view,chatId:e.ui.chatId})));return t("div",{className:"wxchtf-main",children:["chat"===a&&s&&e(ke,{id:s},s),"new-chat"===a&&e(ve,{}),"chat-settings"===a&&e(Ce,{})]})}function Se(a){const{className:s="",style:n}=a;ne(),re();const c=U(),r=i((()=>c({type:"new_chat_open",data:void 0})),[c]);return t("div",{className:s+" wxchtf-chatify",style:n,children:[e("div",{className:"wxchtf-header",children:e(f,{onClick:r,icon:"+",type:"link",children:"Add chat"})}),t("div",{className:"wxchtf-body",children:[e(be,{}),e(Fe,{})]}),e("div",{className:"wxchtf-footer"})]})}function Re(t){const{localizer:a=le}=t;return e(ue.Provider,{value:a,children:e($,{children:e(Se,Object.assign({},t))})})}export{T as ACTIONS,Re as Chatify,A as ChatifyClient,W as ChatifyContext,ue as LocalizerContext,$ as ReducerProvider,le as defaultLocalizer,ie as useAccounts,ce as useAddChat,de as useAddMember,Y as useChat,Z as useChatList,G as useClient,U as useDispatch,ae as useLoadMore,he as useLocalizer,J as useMe,se as useMessages,re as useReadMonitor,P as useReducer,oe as useRemoveMember,z as useSelect,ne as useSignalR,D as useStateRef};
1
+ import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import*as s from"@microsoft/signalr";import n,{useRef as i,useCallback as c,useContext as r,useState as d,useEffect as o,useMemo as u}from"react";import{shallowEqual as h}from"shallow-equal";import{Avatar as l,Menu as m,Form as g,Input as y,Select as b,Button as f,Tooltip as v,Row as p,Col as j,Space as O,Skeleton as q,List as x}from"antd";import w from"dayjs";import{SettingOutlined as I,CloseOutlined as _}from"@ant-design/icons";import N from"@ant-design/icons/SendOutlined";import k from"@ant-design/icons/FileAddOutlined";import C from"is-hotkey";function F(e,t,a,s){return new(a||(a=Promise))((function(n,i){function c(e){try{d(s.next(e))}catch(e){i(e)}}function r(e){try{d(s.throw(e))}catch(e){i(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(c,r)}d((s=s.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const S={hubUri:"/api/chatify/hub",headersFactory:()=>Promise.resolve({})},A=["chatify://new-message","chatify://chat-created","chatify://read","chatify://member-added","chatify://member-removed"];class B{constructor(e){this._connection=null,this._subscribers={},this._reconnectSubscribers=[],this.connect=()=>F(this,void 0,void 0,(function*(){const e=yield this._config.signalR.headersFactory();this._connection=(new s.HubConnectionBuilder).withUrl(this._config.signalR.hubUri,{accessTokenFactory:this._config.signalR.accessTokenFactory?this._config.signalR.accessTokenFactory:void 0,headers:e}).withAutomaticReconnect().build(),A.forEach((e=>{this._connection.on(e,((...t)=>{var a;null===(a=this._subscribers[e])||void 0===a||a.forEach((e=>e(t)))}))})),this._connection.onreconnected((()=>this._reconnectSubscribers.forEach((e=>e())))),yield this._connection.start()})),this.subscribe=(e,t)=>{var a;return this._subscribers[e]=null!==(a=this._subscribers[e])&&void 0!==a?a:[],this._subscribers[e].push(t),()=>this._subscribers[e].filter((e=>e!==t))},this.subscribeReconnect=e=>(this._reconnectSubscribers.push(e),()=>this._reconnectSubscribers.filter((t=>t!==e))),this.accounts=()=>F(this,void 0,void 0,(function*(){const{data:e}=yield this.axios.get("account");return e})),this.chats=()=>F(this,void 0,void 0,(function*(){const{data:e}=yield this.axios.get("chat");return e})),this.chat=e=>F(this,void 0,void 0,(function*(){const{data:t}=yield this.axios.get(`chat/${e}`);return t})),this.addChat=e=>F(this,void 0,void 0,(function*(){const{data:t}=yield this.axios.post("chat",e);return t})),this.messages=e=>F(this,void 0,void 0,(function*(){const{chatId:t,skip:a=0,take:s=20}=e,n=encodeURIComponent(JSON.stringify({skip:a,take:s})),{data:i}=yield this.axios.get(`chat/${t}/message?pagingRule=${n}`);return i})),this.send=e=>F(this,void 0,void 0,(function*(){const{chatId:t}=e,a=function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(e);n<s.length;n++)t.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(e,s[n])&&(a[s[n]]=e[s[n]])}return a}(e,["chatId"]);yield this.axios.post(`chat/${t}/message`,a)})),this.read=e=>F(this,void 0,void 0,(function*(){yield this.axios.put("chat/message/read",e)})),this.removeMember=e=>F(this,void 0,void 0,(function*(){yield this.axios.delete(`chat/${e.chatId}/member`,{data:e})})),this.addMember=e=>F(this,void 0,void 0,(function*(){yield this.axios.post(`chat/${e.chatId}/member`,e)})),this._config=Object.assign(Object.assign({},e),{signalR:Object.assign(Object.assign({},S),e.signalR)})}get axios(){return this._config.axios}}function R(e,t,a){const s=a((e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query[t]);return s&&(e.query[t]=s),e}function E(e,t,a){const s=a((e=Object.assign(Object.assign({},e),{mutation:Object.assign({},e.mutation)})).mutation[t]);return s&&(e.mutation[t]=s),e}const H={query_fetch:(e,{key:t})=>R(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!0,uninitialized:!1}))),query_resolve:(e,{key:t,data:a})=>R(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:void 0,data:a}))),query_reject:(e,{key:t,error:a})=>R(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:a}))),mutation_fetch:(e,{key:t})=>E(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!0}))),mutation_resolve:(e,{key:t})=>E(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:void 0}))),mutation_reject:(e,{key:t,error:a})=>E(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:a}))),update:(e,{mutation:t})=>t(e),chat_open:(e,{chatId:t})=>Object.assign(Object.assign({},e),{ui:Object.assign(Object.assign({},e.ui),{view:"chat",chatId:t})}),new_chat_open:e=>Object.assign(Object.assign({},e),{ui:Object.assign(Object.assign({},e.ui),{view:"new-chat",chatId:void 0})}),chat_settings_open:(e,{chatId:t})=>Object.assign(Object.assign({},e),{ui:Object.assign(Object.assign({},e.ui),{view:"chat-settings",chatId:t})}),message_received:(e,{message:t,requestId:a})=>{var s;return void 0!==(null===(s=e.query["messages."+t.chatId])||void 0===s?void 0:s.data)&&(e=Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{["messages."+t.chatId]:Object.assign(Object.assign({},e.query["messages."+t.chatId]),{data:[Object.assign({type:"message"},t),...e.query["messages."+t.chatId].data].filter((e=>"sending"!==e.type||e.requestId!==a))})})})),void 0!==e.query["chat-list"].data&&(e=Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{"chat-list":Object.assign(Object.assign({},e.query["chat-list"]),{data:e.query["chat-list"].data.map((e=>e.id===t.chatId?Object.assign(Object.assign({},e),{message:t,unreadCount:t.read?e.unreadCount:e.unreadCount+1}):e))})})})),e},chat_created:(e,{chat:t})=>{var a;return void 0===(null===(a=e.query["chat-list"])||void 0===a?void 0:a.data)?e:Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{"chat-list":Object.assign(Object.assign({},e.query["chat-list"]),{data:[t,...e.query["chat-list"].data]})})})},read:(e,{id:t,timestamp:a})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:[...e.read.queued,t],timestamp:a})}),read_send:(e,{ids:t})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:e.read.queued.filter((e=>!t.includes(e))),sent:[...e.read.sent,...t]})}),read_reject:(e,{ids:t,timestamp:a})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:[...e.read.queued,...t],sent:e.read.sent.filter((e=>!t.includes(e))),timestamp:a})}),read_received:(e,{events:t})=>{var a,s;const n=t.map((e=>e.messageId));e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query),read:Object.assign(Object.assign({},e.read),{sent:e.read.sent.filter((e=>!n.includes(e)))})}),Object.keys(e.query).filter((e=>e.startsWith("messages."))).forEach((t=>{var a;e.query[t]=Object.assign({},e.query[t]);const s=e.query[t];s.data=null===(a=s.data)||void 0===a?void 0:a.map((e=>"message"===e.type&&n.includes(e.id)?Object.assign(Object.assign({},e),{read:!0}):e))})),e.query["chat-list"]=Object.assign({},e.query["chat-list"]);const i=e.query["chat-list"];return i.data=null===(a=i.data)||void 0===a?void 0:a.map((e=>n.includes(e.message.id)?Object.assign(Object.assign({},e),{message:Object.assign(Object.assign({},e.message),{read:!0})}):e)),i.data=null===(s=i.data)||void 0===s?void 0:s.map((e=>Object.assign(Object.assign({},e),{unreadCount:e.unreadCount-t.filter((t=>t.chatId===e.id)).length}))),e},member_added:(e,{chatId:t,account:a})=>{var s;return void 0!==(null===(s=(e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query["chat."+t])||void 0===s?void 0:s.data)&&(e.query["chat."+t]=Object.assign(Object.assign({},e.query["chat."+t]),{data:Object.assign({},e.query["chat."+t].data)}),e.query["chat."+t].data.members=[...e.query["chat."+t].data.members,a]),e},member_removed:(e,{chatId:t,accountId:a,deleteHistory:s,me:n})=>{var i,c,r,d,o;return void 0!==(null===(i=(e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query["chat."+t])||void 0===i?void 0:i.data)&&(e.query["chat."+t]=Object.assign(Object.assign({},e.query["chat."+t]),{data:Object.assign({},e.query["chat."+t].data)}),e.query["chat."+t].data.members=e.query["chat."+t].data.members.filter((e=>e.id!==a))),a===n&&s&&(null===(c=e.query["chat-list"])||void 0===c?void 0:c.data)&&(e.query["chat-list"]=Object.assign({},e.query["chat-list"]),e.query["chat-list"].data=e.query["chat-list"].data.filter((e=>e.id!==t))),a===n&&s&&(null===(r=e.query["chat-list"])||void 0===r?void 0:r.data)&&e.ui.chatId===t&&(e.ui=Object.assign(Object.assign({},e.ui),{chatId:null===(o=null===(d=e.query["chat-list"])||void 0===d?void 0:d.data.at(0))||void 0===o?void 0:o.id})),e}},M={ui:{},query:{},mutation:{},read:{queued:[],sent:[],timestamp:0}};function P(){const e=i(M),t=i([]),a=c((a=>{const s=function(e,t){const a=H[t.type](e,t.data);return console.debug("[Chatify]: ",t,a),a}(e.current,a);h(e.current,s)||(e.current=s,t.current.forEach((e=>e(s))))}),[]),s=c((e=>(t.current.push(e),()=>{t.current=t.current.filter((t=>t!==e))})),[]);return[e,a,s]}const T=n.createContext(null);function $({children:t}){const a=P();return e(T.Provider,{value:a,children:t})}function z(){return r(T)[1]}function U(){const[e]=r(T);return e}function D(e,t){const[a,,s]=r(T),n=i(e(a.current)),[c,u]=d(n.current);return o((()=>s((t=>{const a=e(t);h(a,n.current)||(n.current=a,u(a))}))),[]),c}const K=n.createContext(null),Q=n.createContext(null);function G(){return r(Q)}function J(){return r(K)}function W({value:t,children:a}){return e(Q.Provider,{value:t.client,children:e(K.Provider,{value:t.me,children:e($,{children:a})})})}const L={uninitialized:!1,isFetching:!0,data:void 0,error:void 0};function V(e,t){return e.query[t]}function X(e){const{key:t,queryFn:a}=e,s=U(),n=z(),i=function(e){return D((t=>V(t,e)))}(e.key);return o((()=>{V(s.current,t)||(n({type:"query_fetch",data:{key:t}}),a().then((e=>n({type:"query_resolve",data:{key:t,data:e}}))).catch((e=>n({type:"query_reject",data:{key:t,error:e}}))))}),[]),null!=i?i:L}function Y(e){const{chatId:t}=e,a=G();return X({key:"chat."+t,queryFn:()=>a.chat(t)})}function Z(){const e=G();return X({key:"chat-list",queryFn:()=>e.chats()})}const ee={isFetching:!1,error:void 0};function te(e){const{key:t,queryFn:a,onQueryStarted:s}=e,n=z(),i=U(),r=D((t=>t.mutation[e.key])),d=c((e=>{n({type:"mutation_fetch",data:{key:t}});const c=a(e);c.then((()=>{n({type:"mutation_resolve",data:{key:t}})})).catch((e=>n({type:"mutation_reject",data:{key:t,error:e}}))),s&&s(e,{promise:c,state:i.current,updateState:e=>{n({type:"update",data:{mutation:e}})}})}),[]);return[d,null!=r?r:ee]}function ae({chatId:e}){const t=U(),a=G();return te({key:"more."+e,queryFn:()=>a.messages({chatId:e,skip:t.current.query["messages."+e].data.filter((e=>"message"===e.type)).length,take:15}),onQueryStarted:(t,{promise:a,updateState:s})=>F(this,void 0,void 0,(function*(){const t=yield a;s((a=>{var s;(a=Object.assign({},a)).query=Object.assign({},a.query),a.query["messages."+e]=Object.assign({},a.query["messages."+e]);const n=a.query["messages."+e];return n.data=null===(s=n.data)||void 0===s?void 0:s.filter((e=>"more"!==e.type)),n.data=[...n.data,...t.map((e=>Object.assign(Object.assign({type:"message"},e),{proceed:!0})))],15===t.length&&(n.data=[...n.data,{type:"more"}]),a}))}))})}function se(e){const{chatId:t}=e,a=G();return X({key:"messages."+t,queryFn:()=>a.messages({chatId:t,skip:0,take:15}).then((e=>{const t=e.map((e=>Object.assign(Object.assign({type:"message"},e),{proceed:!0})));return 15===e.length?[...t,{type:"more"}]:t}))})}function ne(){const e=G(),t=z(),a=J();o((()=>{let s=[];return e.connect().then((()=>{s.push(e.subscribe("chatify://new-message",(([e,a])=>{t({type:"message_received",data:{message:e,requestId:a}})}))),s.push(e.subscribe("chatify://chat-created",(([e,a])=>{t({type:"chat_created",data:{chat:e,requestId:a}})}))),s.push(e.subscribe("chatify://read",(([e])=>{t({type:"read_received",data:{events:e}})}))),s.push(e.subscribe("chatify://member-added",(([e,a])=>{t({type:"member_added",data:{chatId:e,account:a}})}))),s.push(e.subscribe("chatify://member-removed",(([e,s,n])=>{t({type:"member_removed",data:{chatId:e,accountId:s,deleteHistory:n,me:a}})})))})),()=>{s.forEach((e=>e()))}}),[])}function ie(){const e=G();return X({key:"accounts",queryFn:()=>e.accounts()})}function ce(){const e=G();return te({key:"add-chat",queryFn:t=>e.addChat(t)})}function re(){const e=G(),[t,a]=D((e=>[e.read.queued,e.read.timestamp])),s=z(),n=i(null);o((()=>{0!==t.length&&(n.current&&clearTimeout(n.current),n.current=setTimeout((()=>{s({type:"read_send",data:{ids:t}}),e.read({ids:t}).catch((()=>s({type:"read_reject",data:{ids:t,timestamp:(new Date).getTime()}})))}),100))}),[a])}function de(){const e=G();return te({key:"add-member",queryFn:t=>e.addMember(t)})}function oe(){const e=G();return te({key:"remove-member",queryFn:t=>e.removeMember(t)})}const ue=n.createContext(null);function he(){return r(ue)}const le={timestamp:e=>w(e).format("HH:mm"),message:{read:()=>"Read",reading:()=>"Reading...",sending:()=>"Sending..."},addChat:{title:()=>"Add chat",name:{label:()=>"Name",required:()=>"Name is required",max250:()=>"Max 250 characters allowed"},members:{label:()=>"Members",required:()=>"Members is required"},submitBtn:()=>"Submit"},system:{chatCreated:()=>"Chat created"}};function me(e,t){if("chatify://chat-created"===t)return e.system.chatCreated();throw new Error(`Unknown system message ${t}`)}function ge(a){const{text:s,sentAt:n}=a,i=he();return t("div",{className:"wxchtf-system-message",children:[e("div",{className:"wxchtf-text",children:me(i,s)}),e("div",{className:"wxchtf-timestamp",children:i.timestamp(n)})]})}function ye(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}const be=n.createContext(null);function fe(t){const{children:a,value:s}=t;return e(be.Provider,{value:s,children:a})}function ve(t,a){const s=n.forwardRef(((s,n)=>{const i=function(e){return r(be)[e]}(t);return null===i?null:e(i||a,Object.assign({},s,{ref:n}))}));return s.displayName="Customizable."+a.displayName,Object.assign(s,{key:t,Component:a})}const pe=t=>{const{account:a}=t;return e(l,{src:a.avatar})};pe.displayName="Avatar";const je=ve("Avatar",pe);function Oe(a){const{chat:s}=a,{name:n,message:i,unreadCount:c}=s,r=he();return t("div",{className:"wxchtf-chat"+(i.read?"":" --unread"),children:[e("div",{className:"wxchtf-chat-name",children:n}),c>0&&e("div",{className:"wxchtf-unread-count",children:c}),t("div",{className:"wxchtf-chat-last",children:["chatify::system"!==i.sentBy.id&&t("div",{className:"wxchtf-chat-last-author",children:[e(je,{account:i.sentBy})," ",i.sentBy.name]}),e("div",{className:"wxchtf-chat-last-message",children:"chatify::system"===i.sentBy.id?me(r,i.text):i.text})]})]})}function qe(){const t=D((e=>e.ui.chatId)),a=z(),s=u((()=>t?[t]:[]),[t]),n=c((e=>a({type:"chat_open",data:{chatId:e.selectedKeys[0]}})),[a]),{data:i}=Z(),r=u((()=>i?i.map((t=>({key:t.id,label:e(Oe,{chat:t})}))):[]),[i]);return o((()=>{!t&&i&&i.length>0&&a({type:"chat_open",data:{chatId:i[0].id}})}),[i,a]),e("div",{className:"wxchtf-aside",children:i&&e(m,{className:"wxchtf-chats",selectedKeys:s,onSelect:n,items:r})})}function xe(){const[a,{isFetching:s}]=ce(),{data:n,isFetching:i}=ie(),r=he(),d=u((()=>null==n?void 0:n.map((e=>({value:e.id,label:e.name})))),[n]),o=c((e=>a({name:e.name,members:e.members,requestId:ye()})),[a]);return t("div",{className:"wxchtf-add-chat",children:[e("h3",{children:r.addChat.title()}),t(g,{onFinish:o,layout:"vertical",disabled:s,children:[e(g.Item,{name:"name",label:r.addChat.name.label(),rules:[{required:!0,message:r.addChat.name.required()},{max:250,message:r.addChat.name.max250()}],children:e(y,{})}),e(g.Item,{name:"members",label:r.addChat.members.label(),rules:[{required:!0,message:r.addChat.members.required()}],children:e(b,{mode:"multiple",loading:i,options:d})}),e(f,{loading:s,type:"primary",block:!0,htmlType:"submit",children:r.addChat.submitBtn()})]})]})}const we=t=>{const{id:a}=t,{data:s}=Y({chatId:a});return(null==s?void 0:s.members)?e(l.Group,{maxCount:5,children:s.members.map((t=>e(v,{title:t.name,children:e(l,{src:t.avatar,children:t.name})},t.id)))}):null};we.displayName="ChatHeaderMembers";const Ie=ve("ChatHeaderMembers",we),_e=t=>{const{id:a}=t,s=z(),n=c((()=>s({type:"chat_settings_open",data:{chatId:a}})),[s]);return e(f,{onClick:n,type:"link",icon:e(I,{})})};_e.displayName="ChatSettingsButton";const Ne=ve("ChatSettingsButton",_e);function ke(a){var s;const{id:n}=a,{data:i}=Y({chatId:n}),c=D((e=>{var t;return null===(t=e.query["chat-list"].data)||void 0===t?void 0:t.find((e=>e.id===n))}));return e("div",{className:"wxchtf-chat-header",children:t(p,{justify:"space-between",align:"middle",children:[e(j,{className:"wxchtf-chat-name",children:null!==(s=null==i?void 0:i.name)&&void 0!==s?s:null==c?void 0:c.name}),e(j,{className:"wxchtf-chat-members",children:t(O,{align:"center",children:[e(Ie,{id:n}),e(Ne,{id:n})]})})]})})}const Ce=n.forwardRef(((a,s)=>{const{author:n,text:i,my:c,read:r,reading:d,sending:o,timestamp:u}=a,h=he();return t("div",{ref:s,className:"wxchtf-message"+(c?" --my":"")+(o?" --sending":""),children:[n&&e("div",{className:"wxchtf-message-author",children:e(je,{account:n})}),t("div",{className:"wxchtf-message-body",children:[e("div",{className:"wxchtf-message-text",children:i}),t("div",{className:"wxchtf-message-info-box",children:[e("div",{className:"wxchtf-message-sent-at",children:h.timestamp(u)}),void 0!==r&&!c&&e("div",{className:"wxchtf-message-read-box",children:d?h.message.reading():h.message.read()}),o&&e("div",{className:"wxchtf-message-sending-box",children:h.message.sending()})]})]})]})}));function Fe(t){const{message:a}=t,s=J(),n=a.sentBy.id===s,c=z(),r=i(null),d=i(!1),h=D((e=>e.read.queued.includes(a.id))),l=u((()=>new IntersectionObserver((([e])=>{!e.isIntersecting||d.current||a.read||(d.current=!0,c({type:"read",data:{id:a.id,timestamp:(new Date).getTime()}}))}))),[]);return o((()=>(l.observe(r.current),()=>l.disconnect())),[l]),e(Ce,{ref:r,my:n,text:a.text,files:a.files,author:a.sentBy,timestamp:a.sentAt,read:a.read,sending:!1,reading:h})}function Se(s){const{count:n=1}=s;return e(a,{children:Array.from(Array(n)).map(((a,s)=>t("div",{className:"wxchtf-message-skeleton",children:[e(q.Avatar,{className:"wxchtf-avatar",active:!0}),e(q.Button,{active:!0,className:"wxchtf-content"})]},s)))})}function Ae(t){const{chatId:a}=t,[s,{isFetching:n}]=ae({chatId:a}),[c,r]=d(!1),h=i(null),l=u((()=>new IntersectionObserver((([e])=>r((t=>t||e.isIntersecting))))),[]);return o((()=>(l.observe(h.current),()=>l.disconnect())),[l]),o((()=>{c&&s()}),[c]),n?e(Se,{count:4}):e("div",{ref:h})}function Be(t){const{text:a,files:s}=t;return e(Ce,{text:a,files:s,my:!0,sending:!0,timestamp:(new Date).toUTCString()})}function Re(a){const{id:s}=a,{data:n}=se({chatId:s});return t("div",{className:"wxchtf-chat-body",children:[!n&&e(Se,{count:5}),null==n?void 0:n.map(((t,a)=>{if("message"===t.type&&"chatify::system"===t.sentBy.id)return e(ge,{text:t.text,sentAt:t.sentAt});switch(t.type){case"message":return e(Fe,{message:t},t.id);case"sending":return e(Be,{text:t.text,files:t.files},t.requestId);case"more":return e(Ae,{chatId:s},a);default:return null}}))]})}function Ee(){const a=D((e=>e.ui.chatId)),[s]=function(e){const{chatId:t}=e,a=G();return te({key:"add."+t,queryFn:e=>a.send(Object.assign({chatId:t},e)),onQueryStarted:(e,{updateState:a})=>F(this,void 0,void 0,(function*(){a((a=>{const s=(a=Object.assign(Object.assign({},a),{query:Object.assign(Object.assign({},a.query),{["messages."+t]:Object.assign({},a.query["messages."+t])})})).query["messages."+t];return s.data=[{type:"sending",text:e.text,requestId:e.requestId,files:e.files},...s.data],a}))}))})}({chatId:a}),[n,i]=d(""),r=c((()=>{i(""),s({text:n,files:[],requestId:ye()})}),[a,n]);return e("div",{className:"wxchtf-input-form",children:t("div",{className:"wxchtf-input-box",children:[e("div",{className:"wxchtf-add-files-box",children:e(f,{type:"link",icon:e(k,{}),className:"wxchtf-add-files-btn"})}),e("div",{className:"wxchtf-text-input-box",children:e(y.TextArea,{value:n,onChange:e=>i(e.target.value),autoSize:{maxRows:5},className:"wxchtf-text-input-textarea",placeholder:"Start typing (Ctrl/⌘Cmd + Enter to send) ...",onKeyDown:e=>{C("ctrl+enter")(e)&&r()}})}),e("div",{className:"wxchtf-submit-btn-box",children:e(f,{onClick:r,type:"link",icon:e(N,{}),className:"wxchtf-submit-btn"})})]})})}function He(s){const{id:n}=s,i=J(),{data:c}=Y({chatId:n}),r=!0===(null==c?void 0:c.members.map((e=>e.id)).includes(i));return t(a,{children:[t("div",{className:"wxchtf-chat",children:[e(ke,{id:n}),e(Re,{id:n})]}),r&&e(Ee,{})]})}function Me(a){const{account:s,chatId:n}=a,[i]=oe(),r=c((()=>i({chatId:n,accountId:s.id,deleteHistory:!0})),[i,n,s.id]);return t(x.Item,{children:[s.name," ",e(f,{onClick:r,type:"link",icon:e(_,{})})]})}function Pe(){const[a]=D((e=>[e.ui.chatId])),{data:s}=Y({chatId:a}),[n]=de(),{data:i}=ie(),r=u((()=>null==i?void 0:i.map((e=>({value:e.id,label:e.name})))),[i]),d=c((e=>n({chatId:a,accountId:e,withHistory:!0})),[n,a]);return s?t("div",{className:"wxchtf-chat-settings",children:[t(p,{justify:"space-between",children:[e(j,{children:e("h3",{className:"wxchtf-title",children:s.name})}),e(j,{children:e(f,{type:"link",icon:e(_,{})})})]}),e("h4",{children:"Members"}),e(x,{dataSource:s.members,rowKey:"id",renderItem:t=>e(Me,{account:t,chatId:a})}),e(b,{style:{width:"350px"},options:r,value:null,onSelect:d})]}):null}function Te(){const{view:a,chatId:s}=D((e=>({view:e.ui.view,chatId:e.ui.chatId})));return t("div",{className:"wxchtf-main",children:["chat"===a&&s&&e(He,{id:s},s),"new-chat"===a&&e(xe,{}),"chat-settings"===a&&e(Pe,{})]})}const $e=()=>{const t=z(),a=c((()=>t({type:"new_chat_open",data:void 0})),[t]);return e(f,{onClick:a,icon:"+",type:"link",children:"Add chat"})};$e.displayName="AddChatButton";const ze=ve("AddChatButton",$e),Ue=()=>e("div",{className:"wxchtf-header",children:e(ze,{})});Ue.displayName="Header";const De=ve("Header",Ue),Ke=()=>e("div",{className:"wxchtf-footer"});Ke.displayName="Footer";const Qe=ve("Footer",Ke);function Ge(a){const{className:s="",style:n}=a;return ne(),re(),t("div",{className:s+" wxchtf-chatify",style:n,children:[e(De,{}),t("div",{className:"wxchtf-body",children:[e(qe,{}),e(Te,{})]}),e(Qe,{})]})}const Je={},We=t=>{const{localizer:a=le,customize:s=Je}=t;return e(ue.Provider,{value:a,children:e(fe,{value:s,children:e(Ge,Object.assign({},t))})})};We.displayName="Chatify";export{H as ACTIONS,ze as AddChatButton,je as Avatar,ke as ChatHeader,Ie as ChatHeaderMembers,We as Chatify,B as ChatifyClient,W as ChatifyContext,De as Header,ue as LocalizerContext,$ as ReducerProvider,le as defaultLocalizer,ie as useAccounts,ce as useAddChat,de as useAddMember,Y as useChat,Z as useChatList,G as useClient,z as useDispatch,ae as useLoadMore,he as useLocalizer,J as useMe,se as useMessages,re as useReadMonitor,P as useReducer,oe as useRemoveMember,D as useSelect,ne as useSignalR,U as useStateRef};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/core/client.ts","../../src/core/action.tsx","../../src/core/state.ts","../../src/core/reducer.tsx","../../src/ChatifyContext.tsx","../../src/core/useQuery.tsx","../../src/core/useChat.tsx","../../src/core/useChatList.tsx","../../src/core/useMutation.tsx","../../src/core/useLoadMore.tsx","../../src/core/useMessages.tsx","../../src/core/useSignalR.tsx","../../src/core/useAccounts.tsx","../../src/core/useAddChat.tsx","../../src/core/useReadMonitor.tsx","../../src/core/useAddMember.tsx","../../src/core/useRemoveMember.tsx","../../src/ui/localizer.tsx","../../src/ui/SystemMessage.tsx","../../src/ui/Aside.tsx","../../src/util/uniqId.tsx","../../src/ui/AddChat.tsx","../../src/ui/ChatHeader.tsx","../../src/ui/MessageMd.tsx","../../src/ui/Message.tsx","../../src/ui/MessageSkeleton.tsx","../../src/ui/LoadMore.tsx","../../src/ui/SendingMessage.tsx","../../src/ui/ChatBody.tsx","../../src/ui/InputForm.tsx","../../src/core/useAddMessage.tsx","../../src/ui/Chat.tsx","../../src/ui/ChatSettings.tsx","../../src/ui/Main.tsx","../../src/ui/Chatify.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","SuppressedError","DEFAULT_SIGNALR_CONFIG","hubUri","headersFactory","METHODS","ChatifyClient","constructor","config","this","_connection","_subscribers","_reconnectSubscribers","connect","headers","_config","signalR","SignalR","HubConnectionBuilder","withUrl","accessTokenFactory","undefined","withAutomaticReconnect","build","forEach","x","on","args","_a","s","onreconnected","subscriber","start","subscribe","method","push","filter","subscribeReconnect","accounts","data","axios","get","chats","chat","id","addChat","post","messages","chatId","skip","take","pagingRule","encodeURIComponent","JSON","stringify","send","request","rest","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","read","put","removeMember","delete","addMember","assign","updateQuery","state","key","mutation","query","updateMutation","ACTIONS","query_fetch","isFetching","uninitialized","query_resolve","error","query_reject","mutation_fetch","mutation_resolve","mutation_reject","update","chat_open","ui","view","new_chat_open","chat_settings_open","message_received","message","requestId","type","map","unreadCount","chat_created","timestamp","queued","read_send","ids","includes","sent","read_reject","read_received","events","messageId","keys","startsWith","queryState","chatListState","_b","member_added","account","members","member_removed","accountId","deleteHistory","me","_c","_e","_d","at","INITIAL_STATE","useReducer","useRef","subscribers","dispatch","useCallback","action","newState","console","debug","reducer","current","shallowEqual","ReducerContext","React","createContext","ReducerProvider","children","_jsx","Provider","useDispatch","useContext","useStateRef","reducerState","useSelect","select","deps","prev","setState","useState","useEffect","newValue","MeContext","ClientContext","useClient","useMe","ChatifyContext","client","INITIAL_QUERY_STATE","useQuery","queryFn","useQueryState","catch","useChat","useChatList","INITIAL_MUTATION_STATE","useMutation","onQueryStarted","mutationState","invoke","promise","updateState","useLoadMore","_","proceed","useMessages","useSignalR","unsubscribes","useAccounts","useAddChat","useReadMonitor","timer","clearTimeout","setTimeout","Date","getTime","useAddMember","useRemoveMember","LocalizerContext","useLocalizer","defaultLocalizer","dayjs","format","reading","sending","title","name","label","required","max250","submitBtn","system","chatCreated","formatSystemMessage","localizer","text","Error","SystemMessage","props","sentAt","_jsxs","className","Chat","sentBy","Avatar","src","avatar","Aside","activeChatId","selected","useMemo","onSelect","info","selectedKeys","items","Menu","uniqId","now","toString","Math","random","substring","AddChat","add","adding","options","onSubmit","Form","onFinish","layout","disabled","Item","rules","max","Input","Select","mode","loading","Button","block","htmlType","ChatHeader","chatListItem","find","onSettingsClick","Row","justify","align","Col","Space","Group","maxCount","Tooltip","onClick","icon","SettingOutlined","MessageMd","forwardRef","author","my","ref","Message","readRef","observer","IntersectionObserver","entry","isIntersecting","observe","disconnect","files","MessageSkeleton","count","_Fragment","Array","from","index","Skeleton","active","LoadMore","loadMore","intersecting","setIntersecting","SendingMessage","toUTCString","ChatBody","InputForm","useAddMessage","setText","onSend","FileAddOutlined","TextArea","onChange","target","autoSize","maxRows","placeholder","onKeyDown","event","isHotkey","SendOutlined","isMember","Member","remove","onRemoveClick","List","CloseOutlined","ChatSettings","accountOptions","onAdd","withHistory","dataSource","rowKey","renderItem","style","width","Main","Content","onAddChat","Chatify"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/core/client.ts","../../src/core/action.tsx","../../src/core/state.ts","../../src/core/reducer.tsx","../../src/ChatifyContext.tsx","../../src/core/useQuery.tsx","../../src/core/useChat.tsx","../../src/core/useChatList.tsx","../../src/core/useMutation.tsx","../../src/core/useLoadMore.tsx","../../src/core/useMessages.tsx","../../src/core/useSignalR.tsx","../../src/core/useAccounts.tsx","../../src/core/useAddChat.tsx","../../src/core/useReadMonitor.tsx","../../src/core/useAddMember.tsx","../../src/core/useRemoveMember.tsx","../../src/ui/localizer.tsx","../../src/ui/SystemMessage.tsx","../../src/util/uniqId.tsx","../../src/util/customize.tsx","../../src/ui/Avatar.tsx","../../src/ui/Aside.tsx","../../src/ui/AddChat.tsx","../../src/ui/ChatHeaderMembers.tsx","../../src/ui/ChatHeaderSettingsButton.tsx","../../src/ui/ChatHeader.tsx","../../src/ui/MessageMd.tsx","../../src/ui/Message.tsx","../../src/ui/MessageSkeleton.tsx","../../src/ui/LoadMore.tsx","../../src/ui/SendingMessage.tsx","../../src/ui/ChatBody.tsx","../../src/ui/InputForm.tsx","../../src/core/useAddMessage.tsx","../../src/ui/Chat.tsx","../../src/ui/ChatSettings.tsx","../../src/ui/Main.tsx","../../src/ui/AddChatButton.tsx","../../src/ui/Header.tsx","../../src/ui/Footer.tsx","../../src/ui/Chatify.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","SuppressedError","DEFAULT_SIGNALR_CONFIG","hubUri","headersFactory","METHODS","ChatifyClient","constructor","config","this","_connection","_subscribers","_reconnectSubscribers","connect","headers","_config","signalR","SignalR","HubConnectionBuilder","withUrl","accessTokenFactory","undefined","withAutomaticReconnect","build","forEach","x","on","args","_a","s","onreconnected","subscriber","start","subscribe","method","push","filter","subscribeReconnect","accounts","data","axios","get","chats","chat","id","addChat","post","messages","chatId","skip","take","pagingRule","encodeURIComponent","JSON","stringify","send","request","rest","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","read","put","removeMember","delete","addMember","assign","updateQuery","state","key","mutation","query","updateMutation","ACTIONS","query_fetch","isFetching","uninitialized","query_resolve","error","query_reject","mutation_fetch","mutation_resolve","mutation_reject","update","chat_open","ui","view","new_chat_open","chat_settings_open","message_received","message","requestId","type","map","unreadCount","chat_created","timestamp","queued","read_send","ids","includes","sent","read_reject","read_received","events","messageId","keys","startsWith","queryState","chatListState","_b","member_added","account","members","member_removed","accountId","deleteHistory","me","_c","_e","_d","at","INITIAL_STATE","useReducer","useRef","subscribers","dispatch","useCallback","action","newState","console","debug","reducer","current","shallowEqual","ReducerContext","React","createContext","ReducerProvider","children","_jsx","Provider","useDispatch","useContext","useStateRef","reducerState","useSelect","select","deps","prev","setState","useState","useEffect","newValue","MeContext","ClientContext","useClient","useMe","ChatifyContext","client","INITIAL_QUERY_STATE","useQuery","queryFn","useQueryState","catch","useChat","useChatList","INITIAL_MUTATION_STATE","useMutation","onQueryStarted","mutationState","invoke","promise","updateState","useLoadMore","_","proceed","useMessages","useSignalR","unsubscribes","useAccounts","useAddChat","useReadMonitor","timer","clearTimeout","setTimeout","Date","getTime","useAddMember","useRemoveMember","LocalizerContext","useLocalizer","defaultLocalizer","dayjs","format","reading","sending","title","name","label","required","max250","submitBtn","system","chatCreated","formatSystemMessage","localizer","text","Error","SystemMessage","props","sentAt","_jsxs","className","uniqId","now","toString","Math","random","substring","CustomizeContext","CustomizeProvider","customize","Component","Result","forwardRef","Custom","useCustom","ref","displayName","_Avatar","AntdAvatar","src","avatar","Avatar","Chat","sentBy","Aside","activeChatId","selected","useMemo","onSelect","info","selectedKeys","items","Menu","AddChat","add","adding","options","onSubmit","Form","onFinish","layout","disabled","Item","rules","max","Input","Select","mode","loading","Button","block","htmlType","_ChatHeaderMembers","Group","maxCount","Tooltip","ChatHeaderMembers","_ChatSettingsButton","onSettingsClick","onClick","icon","SettingOutlined","ChatSettingsButton","ChatHeader","chatListItem","find","Row","justify","align","Col","Space","MessageMd","author","my","Message","readRef","observer","IntersectionObserver","entry","isIntersecting","observe","disconnect","files","MessageSkeleton","count","_Fragment","Array","from","index","Skeleton","active","LoadMore","loadMore","intersecting","setIntersecting","SendingMessage","toUTCString","ChatBody","InputForm","useAddMessage","setText","onSend","FileAddOutlined","TextArea","onChange","target","autoSize","maxRows","placeholder","onKeyDown","event","isHotkey","SendOutlined","isMember","Member","remove","onRemoveClick","List","CloseOutlined","ChatSettings","accountOptions","onAdd","withHistory","dataSource","rowKey","renderItem","style","width","Main","_AddChatButton","onAddChat","AddChatButton","_Header","Header","_Footer","Footer","Content","EMPTY_CUSTOMIZE","Chatify"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { ChatifyClient } from './core';
2
+ import { ChatifyClient } from './core/client';
3
3
  export declare function useClient(): ChatifyClient;
4
4
  export declare function useMe(): string;
5
5
  export interface ChatifyContextValue {
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const AddChatButton: import("../util").Customizable<FC, "AddChatButton">;
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ import { Account } from '../core';
3
+ export interface AvatarProps {
4
+ account: Account;
5
+ }
6
+ export declare const Avatar: import("../util").Customizable<FC<AvatarProps>, "Avatar">;
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ export interface ChatHeaderMembersProps {
3
+ id: string;
4
+ }
5
+ export declare const ChatHeaderMembers: import("../util").Customizable<FC<ChatHeaderMembersProps>, "ChatHeaderMembers">;
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ export interface ChatSettingsButtonProps {
3
+ id: string;
4
+ }
5
+ export declare const ChatSettingsButton: import("../util").Customizable<FC<ChatSettingsButtonProps>, "ChatSettingsButton">;
@@ -1,8 +1,23 @@
1
- import { CSSProperties } from 'react';
1
+ import { CSSProperties, FC } from 'react';
2
2
  import { Localizer } from './localizer';
3
+ import { Avatar } from './Avatar';
4
+ import { ChatHeaderMembers } from './ChatHeaderMembers';
5
+ import { ChatSettingsButton } from './ChatHeaderSettingsButton';
6
+ import { Header } from './Header';
7
+ import { AddChatButton } from './AddChatButton';
8
+ import { Footer } from './Footer';
9
+ export interface ChatifyCustomizeValue {
10
+ Avatar?: typeof Avatar.Component | null;
11
+ Header?: typeof Header.Component | null;
12
+ Footer?: typeof Footer.Component | null;
13
+ AddChatButton?: typeof AddChatButton.Component | null;
14
+ ChatHeaderMembers?: typeof ChatHeaderMembers.Component | null;
15
+ ChatSettingsButton?: typeof ChatSettingsButton.Component | null;
16
+ }
3
17
  export interface ChatifyProps {
4
18
  className?: string;
5
19
  style?: CSSProperties;
6
20
  localizer?: Localizer;
21
+ customize?: ChatifyCustomizeValue;
7
22
  }
8
- export declare function Chatify(props: ChatifyProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare const Chatify: FC<ChatifyProps>;
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const Footer: import("../util").Customizable<FC, "Footer">;
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const Header: import("../util").Customizable<FC, "Header">;
@@ -1,2 +1,7 @@
1
1
  export * from './Chatify';
2
+ export * from './Avatar';
2
3
  export * from './localizer';
4
+ export * from './AddChatButton';
5
+ export * from './Header';
6
+ export * from './ChatHeader';
7
+ export * from './ChatHeaderMembers';
@@ -0,0 +1,12 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ export type Customizable<TComponent extends React.ComponentType<any>, TKey extends string> = TComponent & {
3
+ Component: TComponent;
4
+ key: TKey;
5
+ };
6
+ export interface CustomizeProviderValue {
7
+ [key: string]: React.ComponentType<any> | null;
8
+ }
9
+ export declare function CustomizeProvider(props: PropsWithChildren<{
10
+ value: CustomizeProviderValue;
11
+ }>): import("react/jsx-runtime").JSX.Element;
12
+ export declare function customize<TComponent extends React.ComponentType<any>, TKey extends string>(key: TKey, Component: TComponent): Customizable<TComponent, TKey>;
@@ -1,2 +1,3 @@
1
1
  export * from './uniqBy';
2
2
  export * from './uniqId';
3
+ export * from './customize';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
+ import React, { PropsWithChildren, FC, CSSProperties } from 'react';
1
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React, { CSSProperties, PropsWithChildren } from 'react';
3
3
  import { AxiosInstance } from 'axios';
4
4
 
5
5
  interface Localizer {
@@ -30,12 +30,10 @@ declare const LocalizerContext: React.Context<Localizer>;
30
30
  declare function useLocalizer(): Localizer;
31
31
  declare const defaultLocalizer: Localizer;
32
32
 
33
- interface ChatifyProps {
34
- className?: string;
35
- style?: CSSProperties;
36
- localizer?: Localizer;
37
- }
38
- declare function Chatify(props: ChatifyProps): react_jsx_runtime.JSX.Element;
33
+ type Customizable<TComponent extends React.ComponentType<any>, TKey extends string> = TComponent & {
34
+ Component: TComponent;
35
+ key: TKey;
36
+ };
39
37
 
40
38
  interface File {
41
39
  name: string;
@@ -277,6 +275,48 @@ declare function useAddMember(): readonly [(args: AddMemberRequest) => void, Mut
277
275
 
278
276
  declare function useRemoveMember(): readonly [(args: RemoveMemberRequest) => void, MutationState];
279
277
 
278
+ interface AvatarProps {
279
+ account: Account;
280
+ }
281
+ declare const Avatar: Customizable<FC<AvatarProps>, "Avatar">;
282
+
283
+ interface ChatHeaderMembersProps {
284
+ id: string;
285
+ }
286
+ declare const ChatHeaderMembers: Customizable<FC<ChatHeaderMembersProps>, "ChatHeaderMembers">;
287
+
288
+ interface ChatSettingsButtonProps {
289
+ id: string;
290
+ }
291
+ declare const ChatSettingsButton: Customizable<FC<ChatSettingsButtonProps>, "ChatSettingsButton">;
292
+
293
+ declare const Header: Customizable<FC, "Header">;
294
+
295
+ declare const AddChatButton: Customizable<FC, "AddChatButton">;
296
+
297
+ declare const Footer: Customizable<FC, "Footer">;
298
+
299
+ interface ChatifyCustomizeValue {
300
+ Avatar?: typeof Avatar.Component | null;
301
+ Header?: typeof Header.Component | null;
302
+ Footer?: typeof Footer.Component | null;
303
+ AddChatButton?: typeof AddChatButton.Component | null;
304
+ ChatHeaderMembers?: typeof ChatHeaderMembers.Component | null;
305
+ ChatSettingsButton?: typeof ChatSettingsButton.Component | null;
306
+ }
307
+ interface ChatifyProps {
308
+ className?: string;
309
+ style?: CSSProperties;
310
+ localizer?: Localizer;
311
+ customize?: ChatifyCustomizeValue;
312
+ }
313
+ declare const Chatify: FC<ChatifyProps>;
314
+
315
+ interface ChatHeaderProps {
316
+ id: string;
317
+ }
318
+ declare function ChatHeader(props: ChatHeaderProps): react_jsx_runtime.JSX.Element;
319
+
280
320
  declare function useClient(): ChatifyClient;
281
321
  declare function useMe(): string;
282
322
  interface ChatifyContextValue {
@@ -287,4 +327,4 @@ declare function ChatifyContext({ value, children }: PropsWithChildren<{
287
327
  value: ChatifyContextValue;
288
328
  }>): react_jsx_runtime.JSX.Element;
289
329
 
290
- export { ACTIONS, Account, Action, AddChatRequest, AddMemberRequest, Chat, ChatListItem, Chatify, ChatifyClient, ChatifyClientConfig, ChatifyContext, ChatifyContextValue, ChatifyProps, ChatifySignalRConfig, File, Localizer, LocalizerContext, Message, MessageContent, MessageState, ReadEvent, ReadRequest, Reducer, ReducerProvider, RemoveMemberRequest, SendMessageRequest, defaultLocalizer, useAccounts, useAddChat, useAddMember, useChat, useChatList, useClient, useDispatch, useLoadMore, useLocalizer, useMe, useMessages, useReadMonitor, useReducer, useRemoveMember, useSelect, useSignalR, useStateRef };
330
+ export { ACTIONS, Account, Action, AddChatButton, AddChatRequest, AddMemberRequest, Avatar, AvatarProps, Chat, ChatHeader, ChatHeaderMembers, ChatHeaderMembersProps, ChatHeaderProps, ChatListItem, Chatify, ChatifyClient, ChatifyClientConfig, ChatifyContext, ChatifyContextValue, ChatifyCustomizeValue, ChatifyProps, ChatifySignalRConfig, File, Header, Localizer, LocalizerContext, Message, MessageContent, MessageState, ReadEvent, ReadRequest, Reducer, ReducerProvider, RemoveMemberRequest, SendMessageRequest, defaultLocalizer, useAccounts, useAddChat, useAddMember, useChat, useChatList, useClient, useDispatch, useLoadMore, useLocalizer, useMe, useMessages, useReadMonitor, useReducer, useRemoveMember, useSelect, useSignalR, useStateRef };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@webinex/chatify",
3
3
  "description": "Webinex Wispo",
4
4
  "private": false,
5
- "version": "1.0.0-alpha00",
5
+ "version": "1.0.0-alpha02",
6
6
  "author": "Webinex Dev",
7
7
  "license": "Apache-2.0",
8
8
  "main": "dist/cjs/index.js",
@@ -1,5 +1,6 @@
1
1
  import React, { PropsWithChildren, useContext } from 'react';
2
- import { ChatifyClient } from './core';
2
+ import { ReducerProvider } from './core/reducer';
3
+ import { ChatifyClient } from './core/client';
3
4
 
4
5
  const MeContext = React.createContext<string>(null!);
5
6
  const ClientContext = React.createContext<ChatifyClient>(null!);
@@ -20,7 +21,9 @@ export interface ChatifyContextValue {
20
21
  export function ChatifyContext({ value, children }: PropsWithChildren<{ value: ChatifyContextValue }>) {
21
22
  return (
22
23
  <ClientContext.Provider value={value.client}>
23
- <MeContext.Provider value={value.me}>{children}</MeContext.Provider>
24
+ <MeContext.Provider value={value.me}>
25
+ <ReducerProvider>{children}</ReducerProvider>
26
+ </MeContext.Provider>
24
27
  </ClientContext.Provider>
25
28
  );
26
29
  }
@@ -0,0 +1,19 @@
1
+ import { Button } from 'antd';
2
+ import { useDispatch } from '../core';
3
+ import { FC, useCallback } from 'react';
4
+ import { customize } from '../util';
5
+
6
+ const _AddChatButton: FC = () => {
7
+ const dispatch = useDispatch();
8
+ const onAddChat = useCallback(() => dispatch({ type: 'new_chat_open', data: undefined }), [dispatch]);
9
+
10
+ return (
11
+ <Button onClick={onAddChat} icon={'+'} type="link">
12
+ Add chat
13
+ </Button>
14
+ );
15
+ };
16
+
17
+ _AddChatButton.displayName = 'AddChatButton';
18
+
19
+ export const AddChatButton = customize('AddChatButton', _AddChatButton);