@webinex/chatify 1.0.0-alpha00

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 (135) hide show
  1. package/dist/cjs/index.js +2 -0
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/cjs/types/ChatifyContext.d.ts +11 -0
  4. package/dist/cjs/types/core/action.d.ts +73 -0
  5. package/dist/cjs/types/core/client.d.ts +35 -0
  6. package/dist/cjs/types/core/index.d.ts +14 -0
  7. package/dist/cjs/types/core/models.d.ts +64 -0
  8. package/dist/cjs/types/core/reducer.d.ts +11 -0
  9. package/dist/cjs/types/core/state.d.ts +25 -0
  10. package/dist/cjs/types/core/useAccounts.d.ts +1 -0
  11. package/dist/cjs/types/core/useAddChat.d.ts +2 -0
  12. package/dist/cjs/types/core/useAddMember.d.ts +2 -0
  13. package/dist/cjs/types/core/useAddMessage.d.ts +5 -0
  14. package/dist/cjs/types/core/useChat.d.ts +3 -0
  15. package/dist/cjs/types/core/useChatList.d.ts +1 -0
  16. package/dist/cjs/types/core/useLoadMore.d.ts +3 -0
  17. package/dist/cjs/types/core/useMessages.d.ts +15 -0
  18. package/dist/cjs/types/core/useMutation.d.ts +12 -0
  19. package/dist/cjs/types/core/useQuery.d.ts +7 -0
  20. package/dist/cjs/types/core/useReadMonitor.d.ts +1 -0
  21. package/dist/cjs/types/core/useRemoveMember.d.ts +2 -0
  22. package/dist/cjs/types/core/useSignalR.d.ts +1 -0
  23. package/dist/cjs/types/index.d.ts +3 -0
  24. package/dist/cjs/types/ui/AddChat.d.ts +1 -0
  25. package/dist/cjs/types/ui/Aside.d.ts +1 -0
  26. package/dist/cjs/types/ui/Chat.d.ts +4 -0
  27. package/dist/cjs/types/ui/ChatBody.d.ts +4 -0
  28. package/dist/cjs/types/ui/ChatHeader.d.ts +4 -0
  29. package/dist/cjs/types/ui/ChatSettings.d.ts +1 -0
  30. package/dist/cjs/types/ui/Chatify.d.ts +8 -0
  31. package/dist/cjs/types/ui/InputForm.d.ts +1 -0
  32. package/dist/cjs/types/ui/LoadMore.d.ts +4 -0
  33. package/dist/cjs/types/ui/Main.d.ts +1 -0
  34. package/dist/cjs/types/ui/Message.d.ts +5 -0
  35. package/dist/cjs/types/ui/MessageMd.d.ts +13 -0
  36. package/dist/cjs/types/ui/MessageSkeleton.d.ts +4 -0
  37. package/dist/cjs/types/ui/SendingMessage.d.ts +6 -0
  38. package/dist/cjs/types/ui/SystemMessage.d.ts +8 -0
  39. package/dist/cjs/types/ui/index.d.ts +2 -0
  40. package/dist/cjs/types/ui/localizer.d.ts +28 -0
  41. package/dist/cjs/types/util/index.d.ts +2 -0
  42. package/dist/cjs/types/util/uniqBy.d.ts +1 -0
  43. package/dist/cjs/types/util/uniqId.d.ts +1 -0
  44. package/dist/css/chatify.css +328 -0
  45. package/dist/esm/index.js +2 -0
  46. package/dist/esm/index.js.map +1 -0
  47. package/dist/esm/types/ChatifyContext.d.ts +11 -0
  48. package/dist/esm/types/core/action.d.ts +73 -0
  49. package/dist/esm/types/core/client.d.ts +35 -0
  50. package/dist/esm/types/core/index.d.ts +14 -0
  51. package/dist/esm/types/core/models.d.ts +64 -0
  52. package/dist/esm/types/core/reducer.d.ts +11 -0
  53. package/dist/esm/types/core/state.d.ts +25 -0
  54. package/dist/esm/types/core/useAccounts.d.ts +1 -0
  55. package/dist/esm/types/core/useAddChat.d.ts +2 -0
  56. package/dist/esm/types/core/useAddMember.d.ts +2 -0
  57. package/dist/esm/types/core/useAddMessage.d.ts +5 -0
  58. package/dist/esm/types/core/useChat.d.ts +3 -0
  59. package/dist/esm/types/core/useChatList.d.ts +1 -0
  60. package/dist/esm/types/core/useLoadMore.d.ts +3 -0
  61. package/dist/esm/types/core/useMessages.d.ts +15 -0
  62. package/dist/esm/types/core/useMutation.d.ts +12 -0
  63. package/dist/esm/types/core/useQuery.d.ts +7 -0
  64. package/dist/esm/types/core/useReadMonitor.d.ts +1 -0
  65. package/dist/esm/types/core/useRemoveMember.d.ts +2 -0
  66. package/dist/esm/types/core/useSignalR.d.ts +1 -0
  67. package/dist/esm/types/index.d.ts +3 -0
  68. package/dist/esm/types/ui/AddChat.d.ts +1 -0
  69. package/dist/esm/types/ui/Aside.d.ts +1 -0
  70. package/dist/esm/types/ui/Chat.d.ts +4 -0
  71. package/dist/esm/types/ui/ChatBody.d.ts +4 -0
  72. package/dist/esm/types/ui/ChatHeader.d.ts +4 -0
  73. package/dist/esm/types/ui/ChatSettings.d.ts +1 -0
  74. package/dist/esm/types/ui/Chatify.d.ts +8 -0
  75. package/dist/esm/types/ui/InputForm.d.ts +1 -0
  76. package/dist/esm/types/ui/LoadMore.d.ts +4 -0
  77. package/dist/esm/types/ui/Main.d.ts +1 -0
  78. package/dist/esm/types/ui/Message.d.ts +5 -0
  79. package/dist/esm/types/ui/MessageMd.d.ts +13 -0
  80. package/dist/esm/types/ui/MessageSkeleton.d.ts +4 -0
  81. package/dist/esm/types/ui/SendingMessage.d.ts +6 -0
  82. package/dist/esm/types/ui/SystemMessage.d.ts +8 -0
  83. package/dist/esm/types/ui/index.d.ts +2 -0
  84. package/dist/esm/types/ui/localizer.d.ts +28 -0
  85. package/dist/esm/types/util/index.d.ts +2 -0
  86. package/dist/esm/types/util/uniqBy.d.ts +1 -0
  87. package/dist/esm/types/util/uniqId.d.ts +1 -0
  88. package/dist/index.d.ts +290 -0
  89. package/package.json +90 -0
  90. package/src/ChatifyContext.tsx +26 -0
  91. package/src/core/action.tsx +282 -0
  92. package/src/core/client.ts +137 -0
  93. package/src/core/index.ts +14 -0
  94. package/src/core/models.tsx +75 -0
  95. package/src/core/reducer.tsx +80 -0
  96. package/src/core/state.ts +38 -0
  97. package/src/core/useAccounts.tsx +11 -0
  98. package/src/core/useAddChat.tsx +12 -0
  99. package/src/core/useAddMember.tsx +12 -0
  100. package/src/core/useAddMessage.tsx +40 -0
  101. package/src/core/useChat.tsx +12 -0
  102. package/src/core/useChatList.tsx +10 -0
  103. package/src/core/useLoadMore.tsx +42 -0
  104. package/src/core/useMessages.tsx +23 -0
  105. package/src/core/useMutation.tsx +48 -0
  106. package/src/core/useQuery.tsx +45 -0
  107. package/src/core/useReadMonitor.tsx +31 -0
  108. package/src/core/useRemoveMember.tsx +12 -0
  109. package/src/core/useSignalR.tsx +51 -0
  110. package/src/index.ts +3 -0
  111. package/src/ui/AddChat.tsx +55 -0
  112. package/src/ui/Aside.tsx +67 -0
  113. package/src/ui/Chat.tsx +26 -0
  114. package/src/ui/ChatBody.tsx +43 -0
  115. package/src/ui/ChatHeader.tsx +47 -0
  116. package/src/ui/ChatSettings.tsx +59 -0
  117. package/src/ui/Chatify.tsx +47 -0
  118. package/src/ui/InputForm.tsx +48 -0
  119. package/src/ui/LoadMore.tsx +40 -0
  120. package/src/ui/Main.tsx +16 -0
  121. package/src/ui/Message.tsx +50 -0
  122. package/src/ui/MessageMd.tsx +47 -0
  123. package/src/ui/MessageSkeleton.tsx +19 -0
  124. package/src/ui/SendingMessage.tsx +14 -0
  125. package/src/ui/SystemMessage.tsx +26 -0
  126. package/src/ui/index.ts +2 -0
  127. package/src/ui/localizer.tsx +58 -0
  128. package/src/ui/styles/aside.scss +94 -0
  129. package/src/ui/styles/index.scss +247 -0
  130. package/src/ui/styles/keyframes.scss +14 -0
  131. package/src/ui/styles/mixins.scss +20 -0
  132. package/src/ui/styles/variables.scss +10 -0
  133. package/src/util/index.ts +2 -0
  134. package/src/util/uniqBy.tsx +17 -0
  135. package/src/util/uniqId.tsx +3 -0
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),s=require("@microsoft/signalr"),a=require("shallow-equal"),n=require("antd"),i=require("dayjs"),c=require("@ant-design/icons"),r=require("@ant-design/icons/SendOutlined"),d=require("@ant-design/icons/FileAddOutlined"),u=require("is-hotkey");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(s){if("default"!==s){var a=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,a.get?a:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var l=o(s);function h(e,t,s,a){return new(s||(s=Promise))((function(n,i){function c(e){try{d(a.next(e))}catch(e){i(e)}}function r(e){try{d(a.throw(e))}catch(e){i(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(c,r)}d((a=a.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const m={hubUri:"/api/chatify/hub",headersFactory:()=>Promise.resolve({})},g=["chatify://new-message","chatify://chat-created","chatify://read","chatify://member-added","chatify://member-removed"];function b(e,t,s){const a=s((e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query[t]);return a&&(e.query[t]=a),e}function y(e,t,s){const a=s((e=Object.assign(Object.assign({},e),{mutation:Object.assign({},e.mutation)})).mutation[t]);return a&&(e.mutation[t]=a),e}const j={query_fetch:(e,{key:t})=>b(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!0,uninitialized:!1}))),query_resolve:(e,{key:t,data:s})=>b(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:void 0,data:s}))),query_reject:(e,{key:t,error:s})=>b(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:s}))),mutation_fetch:(e,{key:t})=>y(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!0}))),mutation_resolve:(e,{key:t})=>y(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:void 0}))),mutation_reject:(e,{key:t,error:s})=>y(e,t,(e=>Object.assign(Object.assign({},e),{isFetching:!1,error:s}))),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:s})=>{var a;return void 0!==(null===(a=e.query["messages."+t.chatId])||void 0===a?void 0:a.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!==s))})})})),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 s;return void 0===(null===(s=e.query["chat-list"])||void 0===s?void 0:s.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:s})=>Object.assign(Object.assign({},e),{read:Object.assign(Object.assign({},e.read),{queued:[...e.read.queued,t],timestamp:s})}),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:s})=>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:s})}),read_received:(e,{events:t})=>{var s,a;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 s;e.query[t]=Object.assign({},e.query[t]);const a=e.query[t];a.data=null===(s=a.data)||void 0===s?void 0:s.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===(s=i.data)||void 0===s?void 0:s.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===(a=i.data)||void 0===a?void 0:a.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:s})=>{var a;return void 0!==(null===(a=(e=Object.assign(Object.assign({},e),{query:Object.assign({},e.query)})).query["chat."+t])||void 0===a?void 0:a.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,s]),e},member_removed:(e,{chatId:t,accountId:s,deleteHistory:a,me:n})=>{var i,c,r,d,u;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!==s))),s===n&&a&&(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))),s===n&&a&&(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===(u=null===(d=e.query["chat-list"])||void 0===d?void 0:d.data.at(0))||void 0===u?void 0:u.id})),e}},f={ui:{},query:{},mutation:{},read:{queued:[],sent:[],timestamp:0}};function x(){const e=t.useRef(f),s=t.useRef([]),n=t.useCallback((t=>{const n=function(e,t){const s=j[t.type](e,t.data);return console.debug("[Chatify]: ",t,s),s}(e.current,t);a.shallowEqual(e.current,n)||(e.current=n,s.current.forEach((e=>e(n))))}),[]),i=t.useCallback((e=>(s.current.push(e),()=>{s.current=s.current.filter((t=>t!==e))})),[]);return[e,n,i]}const v=t.createContext(null);function p({children:t}){const s=x();return e.jsx(v.Provider,{value:s,children:t})}function O(){return t.useContext(v)[1]}function q(){const[e]=t.useContext(v);return e}function w(e,s){const[n,,i]=t.useContext(v),c=t.useRef(e(n.current)),[r,d]=t.useState(c.current);return t.useEffect((()=>i((t=>{const s=e(t);a.shallowEqual(s,c.current)||(c.current=s,d(s))}))),[]),r}const I=t.createContext(null),C=t.createContext(null);function k(){return t.useContext(C)}function _(){return t.useContext(I)}const N={uninitialized:!1,isFetching:!0,data:void 0,error:void 0};function S(e,t){return e.query[t]}function F(e){const{key:s,queryFn:a}=e,n=q(),i=O(),c=function(e){return w((t=>S(t,e)))}(e.key);return t.useEffect((()=>{S(n.current,s)||(i({type:"query_fetch",data:{key:s}}),a().then((e=>i({type:"query_resolve",data:{key:s,data:e}}))).catch((e=>i({type:"query_reject",data:{key:s,error:e}}))))}),[]),null!=c?c:N}function R(e){const{chatId:t}=e,s=k();return F({key:"chat."+t,queryFn:()=>s.chat(t)})}function E(){const e=k();return F({key:"chat-list",queryFn:()=>e.chats()})}const M={isFetching:!1,error:void 0};function A(e){const{key:s,queryFn:a,onQueryStarted:n}=e,i=O(),c=q(),r=w((t=>t.mutation[e.key])),d=t.useCallback((e=>{i({type:"mutation_fetch",data:{key:s}});const t=a(e);t.then((()=>{i({type:"mutation_resolve",data:{key:s}})})).catch((e=>i({type:"mutation_reject",data:{key:s,error:e}}))),n&&n(e,{promise:t,state:c.current,updateState:e=>{i({type:"update",data:{mutation:e}})}})}),[]);return[d,null!=r?r:M]}function B({chatId:e}){const t=q(),s=k();return A({key:"more."+e,queryFn:()=>s.messages({chatId:e,skip:t.current.query["messages."+e].data.filter((e=>"message"===e.type)).length,take:15}),onQueryStarted:(t,{promise:s,updateState:a})=>h(this,void 0,void 0,(function*(){const t=yield s;a((s=>{var a;(s=Object.assign({},s)).query=Object.assign({},s.query),s.query["messages."+e]=Object.assign({},s.query["messages."+e]);const n=s.query["messages."+e];return n.data=null===(a=n.data)||void 0===a?void 0:a.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"}]),s}))}))})}function P(e){const{chatId:t}=e,s=k();return F({key:"messages."+t,queryFn:()=>s.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 T(){const e=k(),s=O(),a=_();t.useEffect((()=>{let t=[];return e.connect().then((()=>{t.push(e.subscribe("chatify://new-message",(([e,t])=>{s({type:"message_received",data:{message:e,requestId:t}})}))),t.push(e.subscribe("chatify://chat-created",(([e,t])=>{s({type:"chat_created",data:{chat:e,requestId:t}})}))),t.push(e.subscribe("chatify://read",(([e])=>{s({type:"read_received",data:{events:e}})}))),t.push(e.subscribe("chatify://member-added",(([e,t])=>{s({type:"member_added",data:{chatId:e,account:t}})}))),t.push(e.subscribe("chatify://member-removed",(([e,t,n])=>{s({type:"member_removed",data:{chatId:e,accountId:t,deleteHistory:n,me:a}})})))})),()=>{t.forEach((e=>e()))}}),[])}function z(){const e=k();return F({key:"accounts",queryFn:()=>e.accounts()})}function D(){const e=k();return A({key:"add-chat",queryFn:t=>e.addChat(t)})}function H(){const e=k(),[s,a]=w((e=>[e.read.queued,e.read.timestamp])),n=O(),i=t.useRef(null);t.useEffect((()=>{0!==s.length&&(i.current&&clearTimeout(i.current),i.current=setTimeout((()=>{n({type:"read_send",data:{ids:s}}),e.read({ids:s}).catch((()=>n({type:"read_reject",data:{ids:s,timestamp:(new Date).getTime()}})))}),100))}),[a])}function L(){const e=k();return A({key:"add-member",queryFn:t=>e.addMember(t)})}function $(){const e=k();return A({key:"remove-member",queryFn:t=>e.removeMember(t)})}const U=t.createContext(null);function K(){return t.useContext(U)}const Q={timestamp:e=>i(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 G(e,t){if("chatify://chat-created"===t)return e.system.chatCreated();throw new Error(`Unknown system message ${t}`)}function J(t){const{text:s,sentAt:a}=t,n=K();return e.jsxs("div",{className:"wxchtf-system-message",children:[e.jsx("div",{className:"wxchtf-text",children:G(n,s)}),e.jsx("div",{className:"wxchtf-timestamp",children:n.timestamp(a)})]})}function W(t){const{chat:s}=t,{name:a,message:i,unreadCount:c}=s,r=K();return e.jsxs("div",{className:"wxchtf-chat"+(i.read?"":" --unread"),children:[e.jsx("div",{className:"wxchtf-chat-name",children:a}),c>0&&e.jsx("div",{className:"wxchtf-unread-count",children:c}),e.jsxs("div",{className:"wxchtf-chat-last",children:["chatify::system"!==i.sentBy.id&&e.jsxs("div",{className:"wxchtf-chat-last-author",children:[e.jsx(n.Avatar,{src:i.sentBy.avatar})," ",i.sentBy.name]}),e.jsx("div",{className:"wxchtf-chat-last-message",children:"chatify::system"===i.sentBy.id?G(r,i.text):i.text})]})]})}function V(){const s=w((e=>e.ui.chatId)),a=O(),i=t.useMemo((()=>s?[s]:[]),[s]),c=t.useCallback((e=>a({type:"chat_open",data:{chatId:e.selectedKeys[0]}})),[a]),{data:r}=E(),d=t.useMemo((()=>r?r.map((t=>({key:t.id,label:e.jsx(W,{chat:t})}))):[]),[r]);return t.useEffect((()=>{!s&&r&&r.length>0&&a({type:"chat_open",data:{chatId:r[0].id}})}),[r,a]),e.jsx("div",{className:"wxchtf-aside",children:r&&e.jsx(n.Menu,{className:"wxchtf-chats",selectedKeys:i,onSelect:c,items:d})})}function X(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}function Y(){const[s,{isFetching:a}]=D(),{data:i,isFetching:c}=z(),r=K(),d=t.useMemo((()=>null==i?void 0:i.map((e=>({value:e.id,label:e.name})))),[i]),u=t.useCallback((e=>s({name:e.name,members:e.members,requestId:X()})),[s]);return e.jsxs("div",{className:"wxchtf-add-chat",children:[e.jsx("h3",{children:r.addChat.title()}),e.jsxs(n.Form,{onFinish:u,layout:"vertical",disabled:a,children:[e.jsx(n.Form.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.jsx(n.Input,{})}),e.jsx(n.Form.Item,{name:"members",label:r.addChat.members.label(),rules:[{required:!0,message:r.addChat.members.required()}],children:e.jsx(n.Select,{mode:"multiple",loading:c,options:d})}),e.jsx(n.Button,{loading:a,type:"primary",block:!0,htmlType:"submit",children:r.addChat.submitBtn()})]})]})}function Z(s){var a;const{id:i}=s,{data:r}=R({chatId:i}),d=w((e=>{var t;return null===(t=e.query["chat-list"].data)||void 0===t?void 0:t.find((e=>e.id===i))})),u=O(),o=t.useCallback((()=>u({type:"chat_settings_open",data:{chatId:i}})),[u]);return e.jsx("div",{className:"wxchtf-chat-header",children:e.jsxs(n.Row,{justify:"space-between",align:"middle",children:[e.jsx(n.Col,{className:"wxchtf-chat-name",children:null!==(a=null==r?void 0:r.name)&&void 0!==a?a:null==d?void 0:d.name}),e.jsx(n.Col,{className:"wxchtf-chat-members",children:e.jsxs(n.Space,{align:"center",children:[(null==r?void 0:r.members)&&e.jsx(n.Avatar.Group,{maxCount:5,children:r.members.map((t=>e.jsx(n.Tooltip,{title:t.name,children:e.jsx(n.Avatar,{src:t.avatar,children:t.name})},t.id)))}),e.jsx(n.Button,{onClick:o,type:"link",icon:e.jsx(c.SettingOutlined,{})})]})})]})})}const ee=t.forwardRef(((t,s)=>{const{author:a,text:i,my:c,read:r,reading:d,sending:u,timestamp:o}=t,l=K();return e.jsxs("div",{ref:s,className:"wxchtf-message"+(c?" --my":"")+(u?" --sending":""),children:[a&&e.jsx("div",{className:"wxchtf-message-author",children:e.jsx(n.Avatar,{src:a.avatar})}),e.jsxs("div",{className:"wxchtf-message-body",children:[e.jsx("div",{className:"wxchtf-message-text",children:i}),e.jsxs("div",{className:"wxchtf-message-info-box",children:[e.jsx("div",{className:"wxchtf-message-sent-at",children:l.timestamp(o)}),void 0!==r&&!c&&e.jsx("div",{className:"wxchtf-message-read-box",children:d?l.message.reading():l.message.read()}),u&&e.jsx("div",{className:"wxchtf-message-sending-box",children:l.message.sending()})]})]})]})}));function te(s){const{message:a}=s,n=_(),i=a.sentBy.id===n,c=O(),r=t.useRef(null),d=t.useRef(!1),u=w((e=>e.read.queued.includes(a.id))),o=t.useMemo((()=>new IntersectionObserver((([e])=>{!e.isIntersecting||d.current||a.read||(d.current=!0,c({type:"read",data:{id:a.id,timestamp:(new Date).getTime()}}))}))),[]);return t.useEffect((()=>(o.observe(r.current),()=>o.disconnect())),[o]),e.jsx(ee,{ref:r,my:i,text:a.text,files:a.files,author:a.sentBy,timestamp:a.sentAt,read:a.read,sending:!1,reading:u})}function se(t){const{count:s=1}=t;return e.jsx(e.Fragment,{children:Array.from(Array(s)).map(((t,s)=>e.jsxs("div",{className:"wxchtf-message-skeleton",children:[e.jsx(n.Skeleton.Avatar,{className:"wxchtf-avatar",active:!0}),e.jsx(n.Skeleton.Button,{active:!0,className:"wxchtf-content"})]},s)))})}function ae(s){const{chatId:a}=s,[n,{isFetching:i}]=B({chatId:a}),[c,r]=t.useState(!1),d=t.useRef(null),u=t.useMemo((()=>new IntersectionObserver((([e])=>r((t=>t||e.isIntersecting))))),[]);return t.useEffect((()=>(u.observe(d.current),()=>u.disconnect())),[u]),t.useEffect((()=>{c&&n()}),[c]),i?e.jsx(se,{count:4}):e.jsx("div",{ref:d})}function ne(t){const{text:s,files:a}=t;return e.jsx(ee,{text:s,files:a,my:!0,sending:!0,timestamp:(new Date).toUTCString()})}function ie(t){const{id:s}=t,{data:a}=P({chatId:s});return e.jsxs("div",{className:"wxchtf-chat-body",children:[!a&&e.jsx(se,{count:5}),null==a?void 0:a.map(((t,a)=>{if("message"===t.type&&"chatify::system"===t.sentBy.id)return e.jsx(J,{text:t.text,sentAt:t.sentAt});switch(t.type){case"message":return e.jsx(te,{message:t},t.id);case"sending":return e.jsx(ne,{text:t.text,files:t.files},t.requestId);case"more":return e.jsx(ae,{chatId:s},a);default:return null}}))]})}function ce(){const s=w((e=>e.ui.chatId)),[a]=function(e){const{chatId:t}=e,s=k();return A({key:"add."+t,queryFn:e=>s.send(Object.assign({chatId:t},e)),onQueryStarted:(e,{updateState:s})=>h(this,void 0,void 0,(function*(){s((s=>{const a=(s=Object.assign(Object.assign({},s),{query:Object.assign(Object.assign({},s.query),{["messages."+t]:Object.assign({},s.query["messages."+t])})})).query["messages."+t];return a.data=[{type:"sending",text:e.text,requestId:e.requestId,files:e.files},...a.data],s}))}))})}({chatId:s}),[i,c]=t.useState(""),o=t.useCallback((()=>{c(""),a({text:i,files:[],requestId:X()})}),[s,i]);return e.jsx("div",{className:"wxchtf-input-form",children:e.jsxs("div",{className:"wxchtf-input-box",children:[e.jsx("div",{className:"wxchtf-add-files-box",children:e.jsx(n.Button,{type:"link",icon:e.jsx(d,{}),className:"wxchtf-add-files-btn"})}),e.jsx("div",{className:"wxchtf-text-input-box",children:e.jsx(n.Input.TextArea,{value:i,onChange:e=>c(e.target.value),autoSize:{maxRows:5},className:"wxchtf-text-input-textarea",placeholder:"Start typing (Ctrl/⌘Cmd + Enter to send) ...",onKeyDown:e=>{u("ctrl+enter")(e)&&o()}})}),e.jsx("div",{className:"wxchtf-submit-btn-box",children:e.jsx(n.Button,{onClick:o,type:"link",icon:e.jsx(r,{}),className:"wxchtf-submit-btn"})})]})})}function re(t){const{id:s}=t,a=_(),{data:n}=R({chatId:s}),i=!0===(null==n?void 0:n.members.map((e=>e.id)).includes(a));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"wxchtf-chat",children:[e.jsx(Z,{id:s}),e.jsx(ie,{id:s})]}),i&&e.jsx(ce,{})]})}function de(s){const{account:a,chatId:i}=s,[r]=$(),d=t.useCallback((()=>r({chatId:i,accountId:a.id,deleteHistory:!0})),[r,i,a.id]);return e.jsxs(n.List.Item,{children:[a.name," ",e.jsx(n.Button,{onClick:d,type:"link",icon:e.jsx(c.CloseOutlined,{})})]})}function ue(){const[s]=w((e=>[e.ui.chatId])),{data:a}=R({chatId:s}),[i]=L(),{data:r}=z(),d=t.useMemo((()=>null==r?void 0:r.map((e=>({value:e.id,label:e.name})))),[r]),u=t.useCallback((e=>i({chatId:s,accountId:e,withHistory:!0})),[i,s]);return a?e.jsxs("div",{className:"wxchtf-chat-settings",children:[e.jsxs(n.Row,{justify:"space-between",children:[e.jsx(n.Col,{children:e.jsx("h3",{className:"wxchtf-title",children:a.name})}),e.jsx(n.Col,{children:e.jsx(n.Button,{type:"link",icon:e.jsx(c.CloseOutlined,{})})})]}),e.jsx("h4",{children:"Members"}),e.jsx(n.List,{dataSource:a.members,rowKey:"id",renderItem:t=>e.jsx(de,{account:t,chatId:s})}),e.jsx(n.Select,{style:{width:"350px"},options:d,value:null,onSelect:u})]}):null}function oe(){const{view:t,chatId:s}=w((e=>({view:e.ui.view,chatId:e.ui.chatId})));return e.jsxs("div",{className:"wxchtf-main",children:["chat"===t&&s&&e.jsx(re,{id:s},s),"new-chat"===t&&e.jsx(Y,{}),"chat-settings"===t&&e.jsx(ue,{})]})}function le(s){const{className:a="",style:i}=s;T(),H();const c=O(),r=t.useCallback((()=>c({type:"new_chat_open",data:void 0})),[c]);return e.jsxs("div",{className:a+" wxchtf-chatify",style:i,children:[e.jsx("div",{className:"wxchtf-header",children:e.jsx(n.Button,{onClick:r,icon:"+",type:"link",children:"Add chat"})}),e.jsxs("div",{className:"wxchtf-body",children:[e.jsx(V,{}),e.jsx(oe,{})]}),e.jsx("div",{className:"wxchtf-footer"})]})}exports.ACTIONS=j,exports.Chatify=function(t){const{localizer:s=Q}=t;return e.jsx(U.Provider,{value:s,children:e.jsx(p,{children:e.jsx(le,Object.assign({},t))})})},exports.ChatifyClient=class{constructor(e){this._connection=null,this._subscribers={},this._reconnectSubscribers=[],this.connect=()=>h(this,void 0,void 0,(function*(){const e=yield this._config.signalR.headersFactory();this._connection=(new l.HubConnectionBuilder).withUrl(this._config.signalR.hubUri,{accessTokenFactory:this._config.signalR.accessTokenFactory?this._config.signalR.accessTokenFactory:void 0,headers:e}).withAutomaticReconnect().build(),g.forEach((e=>{this._connection.on(e,((...t)=>{var s;null===(s=this._subscribers[e])||void 0===s||s.forEach((e=>e(t)))}))})),this._connection.onreconnected((()=>this._reconnectSubscribers.forEach((e=>e())))),yield this._connection.start()})),this.subscribe=(e,t)=>{var s;return this._subscribers[e]=null!==(s=this._subscribers[e])&&void 0!==s?s:[],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=()=>h(this,void 0,void 0,(function*(){const{data:e}=yield this.axios.get("account");return e})),this.chats=()=>h(this,void 0,void 0,(function*(){const{data:e}=yield this.axios.get("chat");return e})),this.chat=e=>h(this,void 0,void 0,(function*(){const{data:t}=yield this.axios.get(`chat/${e}`);return t})),this.addChat=e=>h(this,void 0,void 0,(function*(){const{data:t}=yield this.axios.post("chat",e);return t})),this.messages=e=>h(this,void 0,void 0,(function*(){const{chatId:t,skip:s=0,take:a=20}=e,n=encodeURIComponent(JSON.stringify({skip:s,take:a})),{data:i}=yield this.axios.get(`chat/${t}/message?pagingRule=${n}`);return i})),this.send=e=>h(this,void 0,void 0,(function*(){const{chatId:t}=e,s=function(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(a=Object.getOwnPropertySymbols(e);n<a.length;n++)t.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(e,a[n])&&(s[a[n]]=e[a[n]])}return s}(e,["chatId"]);yield this.axios.post(`chat/${t}/message`,s)})),this.read=e=>h(this,void 0,void 0,(function*(){yield this.axios.put("chat/message/read",e)})),this.removeMember=e=>h(this,void 0,void 0,(function*(){yield this.axios.delete(`chat/${e.chatId}/member`,{data:e})})),this.addMember=e=>h(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({},m),e.signalR)})}get axios(){return this._config.axios}},exports.ChatifyContext=function({value:t,children:s}){return e.jsx(C.Provider,{value:t.client,children:e.jsx(I.Provider,{value:t.me,children:s})})},exports.LocalizerContext=U,exports.ReducerProvider=p,exports.defaultLocalizer=Q,exports.useAccounts=z,exports.useAddChat=D,exports.useAddMember=L,exports.useChat=R,exports.useChatList=E,exports.useClient=k,exports.useDispatch=O,exports.useLoadMore=B,exports.useLocalizer=K,exports.useMe=_,exports.useMessages=P,exports.useReadMonitor=H,exports.useReducer=x,exports.useRemoveMember=$,exports.useSelect=w,exports.useSignalR=T,exports.useStateRef=q;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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","updateQuery","state","key","mutation","Object","assign","query","updateMutation","ACTIONS","query_fetch","x","isFetching","uninitialized","query_resolve","data","error","undefined","query_reject","mutation_fetch","mutation_resolve","mutation_reject","update","chat_open","chatId","ui","view","new_chat_open","chat_settings_open","message_received","message","requestId","_a","type","filter","map","id","unreadCount","read","chat_created","chat","timestamp","queued","read_send","ids","includes","sent","read_reject","read_received","events","messageId","keys","startsWith","forEach","queryState","chatListState","_b","length","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","s","subscribe","subscriber","push","ReducerContext","React","createContext","ReducerProvider","children","_jsx","jsx","Provider","useDispatch","useContext","useStateRef","reducerState","useSelect","select","deps","prev","setState","useState","useEffect","newValue","MeContext","ClientContext","useClient","useMe","INITIAL_QUERY_STATE","useQuery","args","queryFn","useQueryState","catch","useChat","client","useChatList","chats","INITIAL_MUTATION_STATE","useMutation","onQueryStarted","mutationState","invoke","promise","updateState","useLoadMore","messages","skip","take","_","this","proceed","useMessages","useSignalR","unsubscribes","connect","useAccounts","accounts","useAddChat","addChat","useReadMonitor","timer","clearTimeout","setTimeout","Date","getTime","useAddMember","addMember","useRemoveMember","removeMember","LocalizerContext","useLocalizer","defaultLocalizer","dayjs","format","reading","sending","title","name","label","required","max250","submitBtn","system","chatCreated","formatSystemMessage","localizer","text","Error","SystemMessage","props","sentAt","_jsxs","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","Fragment","Array","from","index","Skeleton","active","LoadMore","loadMore","intersecting","setIntersecting","SendingMessage","toUTCString","ChatBody","InputForm","send","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","constructor","config","_connection","_subscribers","_reconnectSubscribers","headers","_config","signalR","SignalR","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","on","onreconnected","start","method","subscribeReconnect","axios","get","post","pagingRule","encodeURIComponent","JSON","stringify","request","rest","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","propertyIsEnumerable","__rest","put","delete"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,11 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { ChatifyClient } from './core';
3
+ export declare function useClient(): ChatifyClient;
4
+ export declare function useMe(): string;
5
+ export interface ChatifyContextValue {
6
+ me: string;
7
+ client: ChatifyClient;
8
+ }
9
+ export declare function ChatifyContext({ value, children }: PropsWithChildren<{
10
+ value: ChatifyContextValue;
11
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,73 @@
1
+ import type { State } from './state';
2
+ import { Account, ChatListItem, Message, ReadEvent } from './models';
3
+ export declare const ACTIONS: {
4
+ query_fetch: (state: State, { key }: {
5
+ key: string;
6
+ }) => State;
7
+ query_resolve: (state: State, { key, data }: {
8
+ key: string;
9
+ data: any[];
10
+ }) => State;
11
+ query_reject: (state: State, { key, error }: {
12
+ key: string;
13
+ error: any;
14
+ }) => State;
15
+ mutation_fetch: (state: State, { key }: {
16
+ key: string;
17
+ }) => State;
18
+ mutation_resolve: (state: State, { key }: {
19
+ key: string;
20
+ }) => State;
21
+ mutation_reject: (state: State, { key, error }: {
22
+ key: string;
23
+ error: any;
24
+ }) => State;
25
+ update: (state: State, { mutation }: {
26
+ mutation: (state: State) => State;
27
+ }) => State;
28
+ chat_open: (state: State, { chatId }: {
29
+ chatId: string;
30
+ }) => State;
31
+ new_chat_open: (state: State) => State;
32
+ chat_settings_open: (state: State, { chatId }: {
33
+ chatId: string;
34
+ }) => State;
35
+ message_received: (state: State, { message, requestId }: {
36
+ message: Message;
37
+ requestId: string;
38
+ }) => State;
39
+ chat_created: (state: State, { chat }: {
40
+ chat: ChatListItem;
41
+ requestId?: string | undefined;
42
+ }) => State;
43
+ read: (state: State, { id, timestamp }: {
44
+ id: string;
45
+ timestamp: number;
46
+ }) => State;
47
+ read_send: (state: State, { ids }: {
48
+ ids: string[];
49
+ }) => State;
50
+ read_reject: (state: State, { ids, timestamp }: {
51
+ ids: string[];
52
+ timestamp: number;
53
+ }) => State;
54
+ read_received: (state: State, { events }: {
55
+ events: ReadEvent[];
56
+ }) => State;
57
+ member_added: (state: State, { chatId, account }: {
58
+ chatId: string;
59
+ account: Account;
60
+ }) => State;
61
+ member_removed: (state: State, { chatId, accountId, deleteHistory, me, }: {
62
+ chatId: string;
63
+ accountId: string;
64
+ deleteHistory: boolean;
65
+ me: string;
66
+ }) => State;
67
+ };
68
+ export type Action = {
69
+ [K in keyof typeof ACTIONS]: {
70
+ type: K;
71
+ data: Parameters<(typeof ACTIONS)[K]>[1];
72
+ };
73
+ }[keyof typeof ACTIONS];
@@ -0,0 +1,35 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { Account, AddChatRequest, AddMemberRequest, Chat, ChatListItem, Message, ReadRequest, RemoveMemberRequest, SendMessageRequest } from './models';
3
+ export interface ChatifySignalRConfig {
4
+ hubUri?: string;
5
+ accessTokenFactory?: () => Promise<string>;
6
+ headersFactory?: () => Promise<Record<string, string>>;
7
+ }
8
+ export interface ChatifyClientConfig {
9
+ axios: AxiosInstance;
10
+ signalR: ChatifySignalRConfig;
11
+ }
12
+ export declare class ChatifyClient {
13
+ private _config;
14
+ private _connection;
15
+ private _subscribers;
16
+ private _reconnectSubscribers;
17
+ constructor(config: ChatifyClientConfig);
18
+ connect: () => Promise<void>;
19
+ subscribe: <T extends any[]>(method: string, subscriber: (args: T) => void) => () => ((args: any[]) => void)[];
20
+ subscribeReconnect: (subscriber: () => any) => () => (() => void)[];
21
+ private get axios();
22
+ accounts: () => Promise<Account[]>;
23
+ chats: () => Promise<ChatListItem[]>;
24
+ chat: (id: string) => Promise<Chat>;
25
+ addChat: (args: AddChatRequest) => Promise<string>;
26
+ messages: (args: {
27
+ chatId: string;
28
+ skip?: number;
29
+ take?: number;
30
+ }) => Promise<Message[]>;
31
+ send: (request: SendMessageRequest) => Promise<void>;
32
+ read: (request: ReadRequest) => Promise<void>;
33
+ removeMember: (request: RemoveMemberRequest) => Promise<void>;
34
+ addMember: (request: AddMemberRequest) => Promise<void>;
35
+ }
@@ -0,0 +1,14 @@
1
+ export * from './models';
2
+ export * from './client';
3
+ export * from './action';
4
+ export * from './reducer';
5
+ export * from './useChat';
6
+ export * from './useChatList';
7
+ export * from './useLoadMore';
8
+ export * from './useMessages';
9
+ export * from './useSignalR';
10
+ export * from './useAccounts';
11
+ export * from './useAddChat';
12
+ export * from './useReadMonitor';
13
+ export * from './useAddMember';
14
+ export * from './useRemoveMember';
@@ -0,0 +1,64 @@
1
+ export interface File {
2
+ name: string;
3
+ bytes: number;
4
+ ref: string;
5
+ }
6
+ export interface Account {
7
+ id: string;
8
+ name: string;
9
+ avatar: string;
10
+ }
11
+ export interface Message {
12
+ id: string;
13
+ chatId: string;
14
+ text: string;
15
+ files: File[];
16
+ sentAt: string;
17
+ sentBy: Account;
18
+ read: boolean;
19
+ requestId?: string;
20
+ }
21
+ export interface Chat {
22
+ id: string;
23
+ name: string;
24
+ members: Account[];
25
+ }
26
+ export interface ChatListItem {
27
+ id: string;
28
+ name: string;
29
+ message: Message;
30
+ unreadCount: number;
31
+ }
32
+ export interface SendMessageRequest {
33
+ chatId: string;
34
+ text: string;
35
+ files: File[];
36
+ requestId: string;
37
+ }
38
+ export interface MessageContent {
39
+ text: string;
40
+ files: File[];
41
+ }
42
+ export interface AddChatRequest {
43
+ requestId: string;
44
+ name: string;
45
+ message?: MessageContent;
46
+ members: string[];
47
+ }
48
+ export interface ReadRequest {
49
+ ids: string[];
50
+ }
51
+ export interface ReadEvent {
52
+ messageId: string;
53
+ chatId: string;
54
+ }
55
+ export interface RemoveMemberRequest {
56
+ chatId: string;
57
+ accountId: string;
58
+ deleteHistory: boolean;
59
+ }
60
+ export interface AddMemberRequest {
61
+ chatId: string;
62
+ accountId: string;
63
+ withHistory: boolean;
64
+ }
@@ -0,0 +1,11 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { Action } from './action';
3
+ import { State } from './state';
4
+ export type Reducer = ReturnType<typeof useReducer>;
5
+ type Subscriber = (state: State) => void;
6
+ export declare function useReducer(): readonly [React.MutableRefObject<State>, (action: Action) => void, (subscriber: Subscriber) => () => void];
7
+ export declare function ReducerProvider({ children }: PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function useDispatch(): (action: Action) => void;
9
+ export declare function useStateRef(): React.MutableRefObject<State>;
10
+ export declare function useSelect<TResult>(select: (state: State) => TResult, deps: any[]): TResult;
11
+ export {};
@@ -0,0 +1,25 @@
1
+ export interface UIState {
2
+ view?: 'chat' | 'new-chat' | 'chat-settings';
3
+ chatId?: string;
4
+ }
5
+ export interface QueryState<TData> {
6
+ uninitialized: boolean;
7
+ isFetching: boolean;
8
+ error?: any;
9
+ data?: TData;
10
+ }
11
+ export interface MutationState {
12
+ isFetching: boolean;
13
+ error?: any;
14
+ }
15
+ export interface State {
16
+ ui: UIState;
17
+ query: Record<string, QueryState<any>>;
18
+ mutation: Record<string, MutationState>;
19
+ read: {
20
+ queued: string[];
21
+ sent: string[];
22
+ timestamp: number;
23
+ };
24
+ }
25
+ export declare const INITIAL_STATE: State;
@@ -0,0 +1 @@
1
+ export declare function useAccounts(): import("./state").QueryState<import("./models").Account[]>;
@@ -0,0 +1,2 @@
1
+ import { AddChatRequest } from './models';
2
+ export declare function useAddChat(): readonly [(args: AddChatRequest) => void, import("./state").MutationState];
@@ -0,0 +1,2 @@
1
+ import { AddMemberRequest } from './models';
2
+ export declare function useAddMember(): readonly [(args: AddMemberRequest) => void, import("./state").MutationState];
@@ -0,0 +1,5 @@
1
+ import { SendMessageRequest } from './models';
2
+ export interface UseAddMessageArgs {
3
+ chatId: string;
4
+ }
5
+ export declare function useAddMessage(args: UseAddMessageArgs): readonly [(args: Omit<SendMessageRequest, "chatId">) => void, import("./state").MutationState];
@@ -0,0 +1,3 @@
1
+ export declare function useChat(args: {
2
+ chatId: string;
3
+ }): import("./state").QueryState<import("./models").Chat>;
@@ -0,0 +1 @@
1
+ export declare function useChatList(): import("./state").QueryState<import("./models").ChatListItem[]>;
@@ -0,0 +1,3 @@
1
+ export declare function useLoadMore({ chatId }: {
2
+ chatId: string;
3
+ }): readonly [(args: void) => void, import("./state").MutationState];
@@ -0,0 +1,15 @@
1
+ import { File, Message } from './models';
2
+ import { QueryState } from './state';
3
+ export type MessageState = ({
4
+ type: 'message';
5
+ } & Message) | {
6
+ type: 'more';
7
+ } | {
8
+ type: 'sending';
9
+ text: string;
10
+ files: File[];
11
+ requestId: string;
12
+ };
13
+ export declare function useMessages(args: {
14
+ chatId: string;
15
+ }): QueryState<MessageState[]>;
@@ -0,0 +1,12 @@
1
+ import { MutationState, State } from './state';
2
+ export interface MutationApi<TResult> {
3
+ promise: Promise<TResult>;
4
+ state: State;
5
+ updateState: (mutation: (state: State) => State) => void;
6
+ }
7
+ export interface UseMutationArgs<TResult = unknown, TArgs = void> {
8
+ key: string;
9
+ queryFn: (args: TArgs) => Promise<TResult>;
10
+ onQueryStarted?: (args: TArgs, api: MutationApi<TResult>) => void;
11
+ }
12
+ export declare function useMutation<TResult = unknown, TArgs = void>(args: UseMutationArgs<TResult, TArgs>): readonly [(args: TArgs) => void, MutationState];
@@ -0,0 +1,7 @@
1
+ import { QueryState } from './state';
2
+ interface UseQueryArgs<TData> {
3
+ key: string;
4
+ queryFn: () => Promise<TData>;
5
+ }
6
+ export declare function useQuery<TData>(args: UseQueryArgs<TData>): QueryState<TData>;
7
+ export {};
@@ -0,0 +1 @@
1
+ export declare function useReadMonitor(): void;
@@ -0,0 +1,2 @@
1
+ import { RemoveMemberRequest } from './models';
2
+ export declare function useRemoveMember(): readonly [(args: RemoveMemberRequest) => void, import("./state").MutationState];
@@ -0,0 +1 @@
1
+ export declare function useSignalR(): void;
@@ -0,0 +1,3 @@
1
+ export * from './ui';
2
+ export * from './core';
3
+ export * from './ChatifyContext';
@@ -0,0 +1 @@
1
+ export declare function AddChat(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function Aside(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ChatProps {
2
+ id: string;
3
+ }
4
+ export declare function Chat(props: ChatProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ChatBodyProps {
2
+ id: string;
3
+ }
4
+ export declare function ChatBody(props: ChatBodyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ChatHeaderProps {
2
+ id: string;
3
+ }
4
+ export declare function ChatHeader(props: ChatHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function ChatSettings(): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import { CSSProperties } from 'react';
2
+ import { Localizer } from './localizer';
3
+ export interface ChatifyProps {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ localizer?: Localizer;
7
+ }
8
+ export declare function Chatify(props: ChatifyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function InputForm(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface LoadMoreProps {
2
+ chatId: string;
3
+ }
4
+ export declare function LoadMore(props: LoadMoreProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function Main(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { Message as MessageModel } from '../core';
2
+ export interface MessageProps {
3
+ message: MessageModel;
4
+ }
5
+ export declare function Message(props: MessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { Account, File } from '../core';
2
+ import React from 'react';
3
+ export interface MessageMdProps {
4
+ author?: Account;
5
+ text: string;
6
+ files: File[];
7
+ my: boolean;
8
+ read?: boolean;
9
+ sending?: boolean;
10
+ reading?: boolean;
11
+ timestamp: string;
12
+ }
13
+ export declare const MessageMd: React.ForwardRefExoticComponent<MessageMdProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,4 @@
1
+ export interface MessageSkeletonProps {
2
+ count?: number;
3
+ }
4
+ export declare function MessageSkeleton(props: MessageSkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { File } from '../core';
2
+ export interface SendingMessageProps {
3
+ text: string;
4
+ files: File[];
5
+ }
6
+ export declare function SendingMessage(props: SendingMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Localizer } from './localizer';
3
+ export interface SystemMessageProps {
4
+ text: string;
5
+ sentAt: string;
6
+ }
7
+ export declare function formatSystemMessage(localizer: Localizer, text: string): React.ReactNode;
8
+ export declare function SystemMessage(props: SystemMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from './Chatify';
2
+ export * from './localizer';