Compare commits

..
300 Commits
Author SHA1 Message Date
or-else 94c8bab4ec getting rid of componentWillMount per React 16 specs 2018-08-19 19:44:14 +03:00
or-else 7ac3041493 bump version and rebuild 2018-08-19 19:30:28 +03:00
or-else 4be41e47f4 starting to get rid of componentWillMount per React spec 2018-08-19 11:22:43 +03:00
or-else f782bc11cc simplifies InfoView parameters 2018-08-19 10:58:22 +03:00
or-else be8d64e29e generated files updated 2018-08-18 09:16:39 +03:00
or-else e22a4de007 remove unnecessary state update 2018-08-18 09:03:42 +03:00
or-else fde40f4f51 build and bump version 2018-08-17 16:07:03 +03:00
or-else e2b19d72bc add css minification 2018-08-13 11:36:50 +03:00
or-else a0eac497c6 minor npm packege changes 2018-08-12 16:13:52 +03:00
or-else f2ef14c239 setting up offline babel transpiling and nmp-ifying 2018-08-12 11:03:26 +03:00
or-else 2b8514b495 fix for visual breakage (https://github.com/minimaxir/big-list-of-naughty-strings) 2018-08-10 16:42:41 +03:00
or-else e9e8d9881f make the webapp work with browserify-processed tinode.js (symlinked tinode.dev.js) 2018-08-10 15:16:40 +03:00
or-else 3975401205 fix canonical url and application-url 2018-08-09 16:56:53 +03:00
or-else 6da0952e5d adding package.json 2018-08-09 10:48:51 +03:00
or-else 45acee4617 fix for a broken "send" button 2018-08-08 21:07:18 +03:00
or-else ff5096cd47 multiple simultaneous uploads and downloads work now 2018-08-08 15:59:26 +03:00
or-else 4cd97e7ff8 refactoring upload progress 2018-08-07 20:55:55 +03:00
or-else df86411cb7 rearranging components, splitting js/babel from html 2018-08-07 12:15:10 +03:00
or-else 905501f22f use delayed message sending 2018-08-06 08:43:30 +03:00
or-else c48e5f1dbf don't print entire message 2018-07-30 21:23:43 +03:00
or-else 0a956f0234 don't crash on malformed attachments 2018-07-30 20:50:48 +03:00
or-else ae73764173 fix: exception while logging out 2018-07-29 19:14:41 +03:00
or-else 2f8e5c4b33 conversion to react 16 seems to be successful 2018-07-27 19:27:26 +03:00
or-else a542afd194 updating reactjs to version 16 2018-07-27 18:13:05 +03:00
or-else a8c9347591 remove debug output 2018-07-14 14:15:47 +03:00
or-else dc46f8f166 bug fix: incorrect handling of avatar pic in InfoView 2018-06-20 12:19:44 +03:00
or-else 6eb3551665 add attachment's URLs to message header 2018-06-15 14:34:06 +03:00
or-else 3829b26cc8 fix an issue with incorrect scaling of png images 2018-06-11 11:31:18 +03:00
or-else 973b71eb80 uploading and downloading works ok now 2018-06-10 18:55:18 +03:00
or-else 1b7fd6a00b file uploads mostly work now 2018-06-09 21:14:12 +03:00
or-else daa1ee3e0c send credentials only if download url is relative 2018-06-09 19:05:26 +03:00
or-else 35eb23e3af uploading works with some minor UI glitches 2018-06-09 11:13:04 +03:00
or-else 0c16a5c991 uploading works, downloading still does not, UI broken 2018-06-08 22:15:31 +03:00
or-else 926dd43ce6 fixed image preview, split max inband size from total max attachment size 2018-06-06 17:47:48 +03:00
or-else 499bf1ee14 separate download url from preview url 2018-06-06 16:41:16 +03:00
or-else 9c507ba631 update Drafty for external attachmanes, update UI 2018-06-06 16:11:50 +03:00
or-else 2f307e2803 making file upload widget more consistent visually 2018-06-06 10:15:39 +03:00
or-else 2c21a34d07 adding large file uploads 2018-05-31 21:41:06 -07:00
or-else 2e3ecb1c4e support copy-pasting images and file attachments 2018-05-23 13:29:31 -07:00
or-else e21bf82de1 inline documentation cleanup 2018-05-22 18:54:04 -07:00
or-else d837d8950c start treating .Private as a dictionary instead of string 2018-05-19 16:51:16 -07:00
or-else b17e0d45ae updated logos (completely transparent background 2018-05-18 15:40:15 -07:00
or-else f5af1ff193 updated search, better typing indicator 2018-05-18 14:12:50 -07:00
or-else e77513d44b more meta tags and "keep me loggen in" on account creation 2018-05-17 09:07:26 -07:00
or-else 556e249b78 bug fix: incorrect handling of empty hashpath 2018-05-16 19:58:39 -07:00
or-else ce0e83070a don't send read notifications if tab or windows is invisible 2018-05-16 17:26:04 -07:00
or-else d0747b9f7b bug: topic may not be ready yet 2018-05-16 11:55:48 -07:00
or-else eb3ccf7b1e bug fix: crashes when switching topics with open <InfoView> 2018-05-16 11:36:54 -07:00
or-else 2e619d3fb8 show unread threads in title, bug fix 2018-05-16 10:17:00 -07:00
or-else 9d128e505f switch account tags from "me" to "fnd" 2018-05-15 10:32:32 -07:00
or-else 77479a3e2d graphic assets updated 2018-05-14 20:27:13 -07:00
or-else 353bd1d5fe bumped version to 0.15 due to incompatible changes in in FND 2018-05-14 13:05:37 -07:00
or-else ed11dd0d22 catch and report the error instead of throwing an exception 2018-05-10 17:08:44 -07:00
or-else 189fc0e3f2 new search works now 2018-05-09 19:00:15 -07:00
or-else d5c7464570 css tweaks 2018-05-05 10:22:58 -07:00
or-else ce4c803b97 handling of very long strings 2018-05-04 13:22:20 -07:00
or-else c6dbe3830e bug fix: callback to a stale ContactsView 2018-05-03 13:35:33 -07:00
or-else 09a1b85e86 bug fixes in creating topic with tags 2018-05-03 10:52:54 -07:00
or-else 82cc9ebb09 better handling of unchanged tags 2018-05-02 11:22:07 -07:00
or-else 820a4081a1 fix message scrolling and no-read-access display 2018-04-27 20:14:44 -07:00
or-else 09eb4bdde8 correct redirect after failed login 2018-04-27 10:52:43 -07:00
or-else c9c6bf1cef correctly display an invalid topic 2018-04-26 21:45:29 -07:00
or-else ff67a6d3d2 yet even more bug fixes in navigation 2018-04-26 14:13:18 -07:00
or-else c110c4bb5e active topic is not longer disabled on startup 2018-04-26 11:23:35 -07:00
or-else e2be203088 still debugging hash navigation 2018-04-25 21:22:44 -07:00
or-else 316de3e875 start actually using "keep-logged-in" 2018-04-25 10:57:07 -07:00
or-else 22c92043a1 another small fix for navigation 2018-04-25 09:39:19 -07:00
or-else cd4388d574 more debugging of hash navigation 2018-04-24 20:32:43 -07:00
or-else 9449606adc navigation mostly works but still buggy 2018-04-24 14:29:15 -07:00
or-else 4101ae21d1 Merge branch 'master' of https://github.com/tinode/example-react-js into devel 2018-04-23 21:03:20 -07:00
or-else 15ffade573 a few more navigation fixes 2018-04-23 20:44:24 -07:00
or-else 8148d42ba7 navigation by hash works partially 2018-04-23 19:48:57 -07:00
or-else 0f08e63b6e adding routing to hashchange handler 2018-04-23 12:41:02 -07:00
or-else 39b5ce8210 bug fix: remve &tab= on cancel 2018-04-22 16:26:26 -07:00
or-else a364aa7dea hash reflects the app state now 2018-04-22 16:21:17 -07:00
or-else e5fc770369 more work on #hash navigation 2018-04-22 14:24:26 -07:00
Gene da05994d0f Adding Apache 2.0 license 2018-04-21 21:46:21 -07:00
or-else 18ef1e88fd making the app navigatable by #hash 2018-04-21 18:23:56 -07:00
or-else 7e5f7dd30b adding local storage for auth token 2018-04-21 13:29:49 -07:00
or-else decad8f65c sort conversation by the last message timestamp 2018-04-19 19:16:59 -07:00
or-else 6edaf16db8 start reporting an error on invalid topic id 2018-04-15 14:06:03 -07:00
or-else cd8f5a1b94 remove badges from contact list 2018-04-15 12:55:10 -07:00
or-else 586b0f152b bug fixes in InfoView 2018-04-13 21:20:30 -07:00
or-else d06ca5cdbd bug fixes around acs handling 2018-04-11 17:42:26 -07:00
or-else ae1f08e506 don't send permissions update if permissions have not changed 2018-03-30 20:28:34 -07:00
or-else 53ef0f83d6 bug fix: wrong online status of a new topic 2018-03-30 10:55:37 -07:00
or-else efcf2680ec check for changes, don't send if unchanged 2018-03-28 19:19:18 -07:00
or-else ba4f976e3b cancel tag editor on escape key 2018-03-28 16:39:22 -07:00
or-else 757b23356c topic tags work as expected now 2018-03-28 16:29:45 -07:00
or-else fa90ff5bef make extra parameters collapsible to make more space for tags 2018-03-28 12:33:31 -07:00
or-else 60262291ce tags can now be added to group topics 2018-03-28 11:31:51 -07:00
or-else 515e27b489 refactoting tag manager 2018-03-28 11:04:45 -07:00
or-else ed268053f3 bug fix: in some cases messges never marked as read 2018-03-26 19:46:13 -07:00
or-else f68d4d3e24 bug fix in showing online group subscribers 2018-03-26 11:03:34 -07:00
or-else 00dd18302f bug fix with unread count, css & html fixes 2018-03-25 12:45:01 -07:00
or-else 3cba22ae22 disable notification sound for now 2018-03-24 18:45:56 -07:00
or-else ac89af9850 play sound on new message 2018-03-24 11:21:44 -07:00
or-else 83e17861bd allow the same file to be attached, bug in login 2018-03-23 19:36:59 -07:00
or-else 67c5cbf77f clear error on panel switch 2018-03-23 16:50:04 -07:00
or-else 1e69fabe2c better validation of input 2018-03-20 17:38:48 -07:00
or-else 9283c4ede2 minor corrections 2018-03-17 18:57:10 -07:00
or-else 95b9f1a1fd renaming type -> meth 2018-03-16 18:49:01 -07:00
or-else 99bab6cae9 added validation screen 2018-03-15 18:52:31 -07:00
or-else 57490cbe92 adding verification view 2018-03-14 20:22:04 -07:00
or-else 6d8b49c36c added autocomplete= to login, tag length enforcement 2018-03-09 11:49:19 -08:00
or-else b7a4efa6b6 tag management works now 2018-03-04 18:11:56 -08:00
or-else dac21cf807 fix favicon display 2018-03-03 18:59:28 -08:00
or-else bacaadfd86 added UI for tag handling 2018-03-03 18:24:13 -08:00
or-else ea55bde395 adding tag processing 2018-03-03 16:27:10 -08:00
or-else b277b020f7 more debug output 2018-02-28 14:24:09 -08:00
or-else 1415f21c51 bug fix in display of online topic subscribers 2018-02-12 15:04:33 -08:00
or-else 576d81a7ec adding back accidentally deleted link to manifest.json 2018-02-05 10:41:27 -08:00
or-else 0e5fb5b468 more icons 2018-02-05 10:38:09 -08:00
or-else 8daf217795 adding icons and actual manifest.json 2018-02-05 10:19:57 -08:00
or-else 29a55c1e37 adding manifest.json and related 2018-02-05 10:18:53 -08:00
or-else 964a423879 removed logging and renamed a few methods for clarity 2018-02-04 18:51:38 -08:00
or-else addd27108f making topic sach work 2018-02-04 18:14:29 -08:00
or-else dc91e9d7b7 report an error on failed invite 2018-01-22 17:21:51 -08:00
or-else c80e09d956 remove debug console logging 2018-01-20 17:33:58 -08:00
or-else 6a2681ab56 show users currently online in a topic 2018-01-20 17:24:34 -08:00
or-else e5c98ba2d1 bug fix for an "read" status not being sent in case of deleted messages 2018-01-09 15:13:57 -08:00
or-else 1b9b7a2671 bump app version 2017-12-14 11:18:41 -08:00
or-else 1a3362f1cd fix online status 2017-12-05 22:23:18 -08:00
or-else 9009667c5a bug fix: correct handling of hard-delete 2017-12-03 14:43:54 -08:00
or-else a59023575b bug fix in topic member menu 2017-11-25 19:02:36 -08:00
or-else b2b1ca2934 kind of works but buggy 2017-11-25 14:24:18 -08:00
or-else afd1bbb58a making new delete scheme work 2017-11-24 20:23:49 -08:00
or-else de655a105a bug fix 2017-10-25 14:00:21 -07:00
or-else 2c1c0b2544 fix for very long file names 2017-10-22 17:37:43 -07:00
or-else ccf5318e4c mention than deleting messages works now 2017-10-13 16:42:46 -07:00
or-else 7322abfd55 messages can be deleted one by one now 2017-10-13 13:04:54 -07:00
or-else 09518bbac2 adding message deletion - incomplete yet 2017-10-13 10:23:19 -07:00
or-else b6a831ec91 big fix in error handling 2017-10-01 16:08:02 -07:00
or-else 378cd622c4 dropping support for .ico because they are not well supported on android 2017-09-30 22:03:05 -07:00
or-else 939e3e59cf attach some images without converting them first 2017-09-30 16:47:02 -07:00
or-else 22e82b1c7f corrected inline image width on mobile 2017-09-26 14:54:00 -07:00
or-else e495917356 simplified handling of inline images 2017-09-26 14:43:46 -07:00
or-else cf4b58cab2 added missing screenshot 2017-09-25 21:01:36 -07:00
or-else 0a96014484 inline images work now 2017-09-25 21:00:35 -07:00
or-else 3e8fd9d6e6 file attachments work now 2017-09-24 18:21:14 -07:00
or-else a06d29863d add UI elements for attaching images and other docs 2017-09-23 13:26:58 -07:00
or-else de24e23127 bug fix: exception in changing permissions 2017-09-21 19:49:21 -07:00
or-else 9417e1aa49 bug fix: correct display of online status in MessagesView 2017-09-21 19:38:00 -07:00
or-else 1f8d26a215 bug fix: send private value in topic creation 2017-09-21 18:23:26 -07:00
or-else e4a0b60f1e better indication of write-only topics 2017-09-21 09:41:24 -07:00
or-else 19612e4236 add blob generation from base64 to be able to deal with large images 2017-09-20 17:13:13 -07:00
or-else af1e9c609b forgot to add the new icon 2017-09-20 15:27:37 -07:00
or-else 5d18c71475 add green dot to shortcut icon to indicate unread messages 2017-09-20 15:01:19 -07:00
or-else 20fc9ae343 scroll only on material changes 2017-09-20 12:00:54 -07:00
or-else 2e8b9145b7 better handling of lost/restored connection 2017-09-19 20:15:40 -07:00
or-else 859dec8410 removed dead code 2017-09-17 20:57:19 -07:00
or-else 8f13d2c856 better error handling and reporting 2017-09-17 18:36:01 -07:00
or-else d2a226852b fixed drafty's handling of undefined values 2017-09-15 18:04:02 -07:00
or-else 9c7a05f616 bug fix: lost topic parameters after reconnect 2017-09-14 19:26:45 -07:00
or-else a6e59936e2 typing indicators work now 2017-09-14 15:36:34 -07:00
or-else e3d95eafe1 bug fixes 2017-09-14 11:43:27 -07:00
or-else e30568ecd5 correctly propagate update to all components 2017-09-14 11:09:25 -07:00
or-else 9ac8ea8f93 adding borders to screenshots 2017-09-13 14:06:31 -07:00
or-else 1bac018961 adding borders to screenshots 2017-09-13 14:05:54 -07:00
or-else 1aba91d6f3 adding borders to screenshots 2017-09-13 14:03:20 -07:00
or-else fd750558ac adding borders to screenshots 2017-09-13 14:00:19 -07:00
or-else f2cb7d1e8b updated screenshots 2017-09-13 13:36:07 -07:00
or-else 7870fb06a2 better use of local cache 2017-09-13 12:17:24 -07:00
or-else 9adff7572e message pagination 2017-09-12 18:21:33 -07:00
or-else d50da89403 updated screenshot 2017-09-07 19:21:08 -07:00
or-else 8ddfb93f7a topic invites work correctly now, UI fixes 2017-09-07 19:10:50 -07:00
or-else b718aa9513 more context menu fixes and features 2017-09-05 22:04:14 -07:00
or-else 7782021c12 refactoring context menus 2017-09-03 21:52:59 -07:00
or-else 73b2a85eea cleaning up drafty and UI fixes in permissions editing 2017-09-02 15:57:03 -07:00
or-else d34f51a9d0 better formatted example 2017-08-24 20:16:53 -07:00
or-else 0a2abc080f a lot of refactoring of drafty to male it usable as a universal media container 2017-08-24 12:35:14 -07:00
or-else 9d1786ab67 better error handling 2017-08-21 19:53:41 -07:00
or-else fb6b4899cd rich formatting works 2017-08-21 19:45:48 -07:00
or-else 0c7549819a adding rich formatting to messags 2017-08-19 20:40:25 -07:00
or-else fd8c58e837 bug fix 2017-08-18 11:20:20 -07:00
or-else 5c74be339a added a couple of supporting methods and made representation a bit more compact 2017-08-18 11:01:51 -07:00
or-else c88c821002 added samples 2017-08-17 13:20:20 -07:00
or-else f20f83b936 urls, mentions, and hashtags are extracted and formatted correctly 2017-08-17 13:07:32 -07:00
or-else 88cc3145c4 parser and formatter work as expected 2017-08-16 17:53:39 -07:00
or-else 5d1bf5f624 first pass at defining rich text formatting 2017-08-15 20:54:59 -07:00
or-else 9fa998709d small tweaks to the logo 2017-08-10 22:35:20 +03:00
or-else 0f90626a49 make permissions editor UI clearer 2017-08-09 10:30:59 +03:00
or-else 40108d5201 incorrect value used for user2 2017-08-08 22:13:29 +03:00
or-else 0dde03cf6f more refactoring of permissions editor. still does not work 2017-08-08 18:33:30 +03:00
or-else 83fe8ea02b refactoring permissions editor 2017-08-08 11:16:50 +03:00
or-else 17876fc4b0 bug fix: an extra copy of a p2p topic was sometimes created 2017-08-07 21:14:42 +03:00
or-else eca16c8474 making default permissions work as expected 2017-08-07 17:12:43 +03:00
or-else ff0dfed2e8 change auto-login order: try token first 2017-08-07 10:06:03 +03:00
Gene db8e718002 Merge pull request #6 from riandyrn/attempt-generalized-number-of-tags-sent-to-server
[Attempt to Generalize Number of Tags Sent to Server]
2017-08-05 13:05:14 +03:00
Riandy Rahman Nugraha f49f0424d5 generalized to_tag() into to_tags() 2017-08-05 16:59:56 +07:00
or-else 998ddfd54b changed new code for style and made it usable for other non-email tags 2017-08-04 14:47:18 +03:00
Gene 53e67de669 Merge pull request #5 from riandyrn/riandy-branch
[Attempt to Make New User Discoverable]
2017-08-04 14:37:36 +03:00
Riandy Rahman Nugraha 897bb0719a remove tinode.js from example app —> tinode.js already has its own repo 2017-08-04 09:11:29 +07:00
Riandy Rahman Nugraha d051c84737 explicitly set defacs for newly created account to “JRWPS”; add email as tags in newly created account, so it could be discovered by others; 2017-08-03 09:15:31 +07:00
or-else 578df160d1 cosmetic change 2017-07-23 18:23:35 +03:00
or-else ac335a7a5c newer screenshot 2017-07-15 18:22:53 +03:00
or-else 5868915f2c permissions editing works now 2017-07-15 12:35:53 +03:00
or-else 1054c81de3 Merge branch 'devel' 2017-07-10 20:34:40 +03:00
or-else 79756602a7 topic member management complete 2017-07-10 19:29:35 +03:00
or-else 8d5f446ccd member management is complete now 2017-07-09 11:22:27 +03:00
or-else b689d08e71 subscriber management is somewhat functional 2017-07-06 16:15:56 +03:00
or-else 58ae90b574 added mateerial chips widget 2017-07-04 19:23:07 +03:00
or-else e79444e5f7 lets of bug fixes 2017-07-02 16:16:45 +03:00
or-else 45eb91765b more refactoring of topic and account editing 2017-06-29 14:02:16 +03:00
or-else 933ede1220 separated contact list into a component 2017-06-27 20:58:27 +03:00
or-else 506bd42201 documentation update 2017-06-25 20:40:17 +03:00
or-else b3ef0a856b name and version 2017-06-25 15:33:20 +03:00
or-else 732c17ad76 make mobile screenshots bigger 2017-06-25 15:32:15 +03:00
or-else 8ee22694f1 fit three images in a row 2017-06-25 15:29:25 +03:00
or-else e3909c96bd bug fixes and visual clean up 2017-06-25 15:26:19 +03:00
or-else ac97f1d61d added topic and account editing 2017-06-24 21:03:37 +03:00
or-else 61fbc69356 refactored contect menu and updated readme 2017-06-22 21:04:12 +03:00
or-else 67cd659712 better handling of avatars 2017-06-16 17:44:17 -07:00
or-else 895a81799f clearing messages works now 2017-06-15 21:29:07 -07:00
or-else 097bf7d193 make avatar circular rather than oval 2017-06-13 18:45:11 -07:00
or-else 40cccfdfa9 added error handling for hello() 2017-05-24 18:23:26 -07:00
Gene S 71fc855940 better handling of runtime server address changes 2017-04-25 11:49:12 -07:00
Gene S 9fc05d97d9 making host selectable from the login screen 2017-04-20 17:50:23 -07:00
Gene S 0a3dfa8d9a change server address to public 2017-04-19 17:05:12 -07:00
Gene S 43016e389a refactoring access mode to support server changes 2017-04-18 17:41:39 -07:00
Gene S 8c4284a435 Merge branch 'master' of https://github.com/tinode/example-react-js 2016-09-09 18:14:55 -07:00
Gene S 3f13c56fb9 merging changes 2016-09-09 18:14:52 -07:00
Or 73e2be8ac8 Merge pull request #1 from npmcdn-to-unpkg-bot/npmcdn-to-unpkg
Replace npmcdn.com with unpkg.com
2016-09-08 12:27:02 -07:00
npmcdn-to-unpkg-bot 86f706dee7 Replace npmcdn.com with unpkg.com 2016-09-08 07:29:29 +01:00
Gene S 1372a68ecf a few fixes around contacts discovery 2016-09-06 19:24:58 -07:00
Gene S dc37ab3d7a updated screenshot 2016-09-02 10:52:49 -07:00
Gene S e9de7d89fd contact discovery works now 2016-08-29 18:04:52 -07:00
Gene S 2e4b165b42 updated reactjs to the latest version 2016-08-29 14:54:50 -07:00
Gene S d03b340985 updated reactjs to the latest version 2016-08-29 14:54:28 -07:00
or-else 90d579bbcb incompatible protocol changes in authentication, version bumped to 0.8 2016-08-28 17:12:16 -07:00
Gene S 8067985edd bugs: AccessMode was broken, muting topics is now possible, but un-muting is still broken 2016-08-18 09:58:23 -07:00
Gene S 2d5ed1bb83 bug: removing deleted topic from view 2016-08-17 11:06:20 -07:00
Gene S 85bcc107d4 updated reactjs to the latest version 2016-06-15 15:40:58 -07:00
Gene S 3d4285d2dc introduced a handshake packet and bumped protocol version to 0.7, a few bugs fixed. long polling is broken 2016-06-15 15:28:22 -07:00
Gene S c7282f8c04 small bug fix in logging and clearer isplay of versions 2016-06-07 19:00:51 -07:00
Gene S e06612f5b3 autoreconnect with backoff and bug fixes 2016-03-16 19:16:31 -07:00
Gene S e28655a64c finished topic creation/deletion 2016-03-10 18:54:26 -08:00
Gene S 1db21526e1 fixes around deleteing/unsubscricing p2p topics 2016-03-09 17:26:55 -08:00
Gene S d709739dc0 menu positioning fixes 2016-03-04 18:31:15 -08:00
Gene S d9a1e2fd0c bug fixes 2016-03-04 18:12:06 -08:00
Gene S ac86e415e9 topic creation and context menu fixes 2016-03-03 18:03:11 -08:00
Gene S 5b89abb646 user search (incomplete) 2016-02-29 18:49:39 -08:00
Gene S ed49b8b10f user discovery 2016-02-29 09:32:38 -08:00
Gene S 58d02cf4bc added browser styling 2016-02-23 11:11:51 -08:00
Gene S 0ed884f5ad reduced delay fore sending read confirmation 2016-02-19 18:49:13 -08:00
Gene S e278ebda5d bug fixes 2016-02-18 19:30:21 -08:00
Gene S 103184c8da Merge branch 'master' of https://github.com/tinode/example-react-js 2016-02-17 19:06:45 -08:00
Gene S 3159ddb0a6 refactored message background colos 2016-02-17 19:06:42 -08:00
Gene S fc7369f586 refactored message background colos 2016-02-17 19:05:43 -08:00
or-else 11c78eb85e merge conflict + update react version to 14.7 2016-02-14 12:10:29 -08:00
or-else 5449728cc6 Changed public: vcard: <data> to public: <data> 2016-02-14 12:03:25 -08:00
Gene S 7d8e58fb4d changed host name 2016-02-12 18:22:29 -08:00
Gene S 1d46fd0279 refactoring of {sub} {get} and {set} for clarity 2016-02-12 15:52:05 -08:00
Gene S cc99b267bb swapping host name 2016-02-01 09:52:22 -08:00
Gene S cf38f55291 swapping host name 2016-02-01 09:50:18 -08:00
or-else 1483740189 making the app adaptive - now works on mobile 2016-01-31 20:04:37 -08:00
or-else f5e91a6366 update readme 2016-01-29 20:44:42 -08:00
or-else 0e539c0a98 change host from local to remote 2016-01-29 20:16:17 -08:00
Gene S d1265c21ee adding avatar support 2016-01-29 19:23:02 -08:00
Gene S 9a855a7288 removing unused icons 2016-01-27 10:50:55 -08:00
Gene S d331367223 a few small fixes 2016-01-27 10:39:24 -08:00
Gene S 156f1f50bc visual improvements and fixes 2016-01-26 19:16:39 -08:00
Gene S 3acd66e5b3 removed bootstrap dependencies 2016-01-26 17:27:29 -08:00
or-else 876a7c1b1f removed bootstrap 2016-01-24 22:23:28 -08:00
or-else 444d7c006d lots of refactoring to remove bootstrap, still unfinished 2016-01-24 22:13:50 -08:00
Gene S 10353c9a1d refactoring message view (incomplete) 2016-01-22 18:00:56 -08:00
Gene S 22e2be2dc8 online presence 2016-01-20 19:07:36 -08:00
Gene S d3e2436527 Merge branch 'master' of https://github.com/tinode/example-react-js 2016-01-20 10:24:30 -08:00
Gene S 984f255d8a debigging 2016-01-20 10:24:24 -08:00
or-else 3f508da8e6 lots of refactoring to support read/received counts 2016-01-18 21:38:53 -08:00
or-else 295ffd640b lots of refactoring to support read/received counts 2016-01-17 15:59:07 -08:00
Gene S b344f9d7e4 Merge branch 'master' of https://github.com/tinode/example-react-js 2016-01-15 16:46:50 -08:00
Gene S ca49c83073 account creation works now 2016-01-15 16:46:24 -08:00
or-else d28d74a77a lass padding in contact list 2016-01-14 20:51:27 -08:00
Gene S 1b52fde005 README update 2016-01-14 19:10:14 -08:00
Gene S 31d5320922 bug fixes and typing notifications 2016-01-14 17:12:03 -08:00
Gene S e871dad863 now fetching and rendering messages 2016-01-13 17:58:41 -08:00
Gene S eee2db628a fetching messages from the server 2016-01-12 18:57:34 -08:00
or-else 4c759913c7 making contact list scrollable 2016-01-11 22:01:28 -08:00
or-else 4442cbae9d making contacts scrollable 2016-01-10 19:46:50 -08:00
or-else 6d0d75ab1d making contacts scrollable 2016-01-10 19:33:19 -08:00
or-else 3f2746cdb7 contacts loaded and shown 2016-01-10 16:01:44 -08:00
or-else d28c696190 continue to hook up server 2016-01-10 14:07:25 -08:00
or-else eba7510be8 adding subscription (incomplete) 2016-01-09 21:59:36 -08:00
Gene S d1442bfc93 hooked up to the server and added login error handling 2016-01-08 18:26:08 -08:00
Gene S 743d941204 hooked up the Tinode bindings, it calls the server now 2016-01-07 18:18:56 -08:00
Gene S f82bd966e0 made demo available online 2016-01-06 10:54:14 -08:00
Gene S aedc9854c1 made demo available online 2016-01-06 10:53:14 -08:00
Gene S 87c5b5bc6b graphic assets 2016-01-05 18:48:40 -08:00
Gene S 9f50eff10a moved all logic to AppView, added Sign Up view 2016-01-05 18:47:37 -08:00
Gene S 3b56e7ca2f moved files around for clarity 2016-01-05 11:07:55 -08:00
Gene S f64c8082ff daily commit 2016-01-04 19:12:31 -08:00
or-else 20be763dc1 daily commit 2016-01-03 20:49:32 -08:00
or-else 391a956af8 daily commit 2016-01-02 20:16:30 -08:00
or-else 2121a6a4f2 daily commit 2016-01-01 21:36:34 -08:00
Gene Sokolov dc8f82961a daily commit 2016-01-01 20:48:38 -08:00
Gene S d9015804c8 current status 2015-12-31 15:10:26 -08:00
Gene S 135bec17a8 Merge branch 'master' of https://github.com/tinode/react-js 2015-12-31 15:08:24 -08:00
Gene S 35624786ab Initial commit 2015-12-31 15:07:38 -08:00
Gene S 0688a360c7 initial pass at a react.js chat 2015-12-31 15:03:22 -08:00
24 changed files with 7516 additions and 139 deletions
-138
View File
@@ -1,138 +0,0 @@
# ---> Node
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# vitepress build output
**/.vitepress/dist
# vitepress cache directory
**/.vitepress/cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
+201
View File
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+36 -1
View File
@@ -1,2 +1,37 @@
# im_webapp
# Single-page chat with Tinode
Single-page web chat application built with [Tinode](https://github.com/tinode/chat/). The app uses
[React](https://facebook.github.io/react/), Google's material design [fonts](https://www.google.com/fonts/)
and [icons](https://google.github.io/material-design-icons/#icon-font-for-the-web). The [Tinode javascript library](https://github.com/tinode/tinode-js/) has no external dependencies. Overall it's a lot like open source WhatsApp or Telegram web apps.
Although the app is generally usable, keep in mind that this is work in progress. Some bugs probably exist. The app was tested in the latest Chrome & Firefox only. NPM [is available](https://www.npmjs.com/package/tinode-webapp).
Try possibly newer or older version live at https://api.tinode.co/. Login as one of `alice`, `bob`, `carol`, `dave`, `frank`. Password is `<login>123`, e.g. password for `alice` is `alice123`. You can discover other users by email or phone by prefixing them with `email:` or `tel:` respectively. Emails are `<login>@example.com`, e.g. `alice@example.com`, phones are `17025550001` through `17025550009`. The demo is reset every night at 2:15am Pacific time.
License: [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
Sample avatar photos from https://www.pexels.com/ under [CC0 license](https://www.pexels.com/photo-license/).
Background pattern from http://subtlepatterns.com/, commercial and non-commercial use allowed with attribution.
## Missing functionality
* Previews not generated for videos, audio, links or docs.
* Browser push notifications are not implemented.
* No end-to-end encryption.
* Editing chat permissions is incomplete.
* Emoji support is weak.
## Responsive design
### Desktop screenshot
<p align="center">
<img src="web-desktop-2.png" alt="Desktop web: full app" width=866 />
</p>
### Mobile screenshots
<p align="center">
<kbd><img src="web-mob-contacts-1.png" alt="Mobile web: contacts" width=323 /></kbd> <kbd><img src="web-mob-chat-1.png" alt="Mobile web: chat" width=323 /></kbd> <kbd><img src="web-mob-info-1.png" alt="Mobile web: topic info" width=323 /></kbd> <kbd><img src="web-mob-new-chat-1.png" alt="Mobile web: start new chat" width=323 /></kbd>
</p>
BIN
View File
Binary file not shown.
+1727
View File
File diff suppressed because it is too large Load Diff
+1
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

+305
View File
@@ -0,0 +1,305 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="192"
height="192"
viewBox="0 0 192 192"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="logo.svg"
inkscape:export-xdpi="120"
inkscape:export-ydpi="120">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient16239">
<stop
style="stop-color:#000000;stop-opacity:0.25098041"
offset="0"
id="stop16241" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop16243" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient16239"
id="linearGradient16249"
x1="102.81445"
y1="97.075966"
x2="219.01871"
y2="170.4807"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.293059,0,0,1.0059594,-43.958501,0.80696392)" />
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter16588">
<feFlood
flood-opacity="0.25098"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood16590" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite16592" />
<feGaussianBlur
in="composite1"
stdDeviation="0"
result="blur"
id="feGaussianBlur16594" />
<feOffset
dx="-0"
dy="-1"
result="offset"
id="feOffset16596" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="fbSourceGraphic"
id="feComposite16598" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix4300" />
<feFlood
id="feFlood4302"
flood-opacity="0.25098"
flood-color="rgb(0,0,0)"
result="flood"
in="fbSourceGraphic" />
<feComposite
id="feComposite4304"
in2="fbSourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur4306"
in="composite1"
stdDeviation="0"
result="blur" />
<feOffset
id="feOffset4308"
dx="0"
dy="-3"
result="offset" />
<feComposite
id="feComposite4310"
in2="offset"
in="fbSourceGraphic"
operator="over"
result="composite2" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter4539">
<feFlood
flood-opacity="0.196078"
flood-color="rgb(255,255,255)"
result="flood"
id="feFlood4541" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="out"
result="composite1"
id="feComposite4543" />
<feGaussianBlur
in="composite1"
stdDeviation="0"
result="blur"
id="feGaussianBlur4545" />
<feOffset
dx="0"
dy="2"
result="offset"
id="feOffset4547" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="atop"
result="composite2"
id="feComposite4549" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter4779">
<feFlood
flood-opacity="0.196078"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood4781" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="out"
result="composite1"
id="feComposite4783" />
<feGaussianBlur
in="composite1"
stdDeviation="0"
result="blur"
id="feGaussianBlur4785" />
<feOffset
dx="0"
dy="-2"
result="offset"
id="feOffset4787" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="atop"
result="composite2"
id="feComposite4789" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter4791">
<feFlood
flood-opacity="0.196078"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood4793" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="out"
result="composite1"
id="feComposite4795" />
<feGaussianBlur
in="composite1"
stdDeviation="0"
result="blur"
id="feGaussianBlur4797" />
<feOffset
dx="0"
dy="-2"
result="offset"
id="feOffset4799" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="atop"
result="composite2"
id="feComposite4801" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="4.1822917"
inkscape:cx="39.691158"
inkscape:cy="95.079953"
inkscape:document-units="px"
inkscape:current-layer="layer6"
showgrid="false"
units="px"
inkscape:window-width="1680"
inkscape:window-height="1005"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
style="display:inline"
inkscape:label="Colors copy"
id="g16151"
inkscape:groupmode="layer">
<path
style="opacity:1;fill:#fc5d3e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4779)"
d="M 14.101562,64 A 87.999993,87.924608 0 0 0 8,95.923828 C 7.98792,140.37931 26.484895,166.06204 9.8632812,175.74609 -2.8697567,183.16463 53.015901,184.00441 80,183.99414 L 80,64 14.101562,64 Z"
id="rect16153"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#45ae49;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4791)"
d="m 80,64 0,119.99414 c 8.240743,-0.003 14.054688,-0.0801 14.054688,-0.0801 L 96,183.84961 A 87.999993,87.924608 0 0 0 184,95.923828 87.999993,87.924608 0 0 0 177.99023,64 L 80,64 Z"
id="rect16157"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#2d526b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4539)"
d="M 96,8 A 87.999993,87.924608 0 0 0 9.5195312,80 L 182.49805,80 A 87.999993,87.924608 0 0 0 96,8 Z"
id="rect16159"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:label="Letter t"
id="g16167"
inkscape:groupmode="layer"
style="display:inline">
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Shadow"
style="display:inline;opacity:0.5">
<path
style="opacity:1;fill:url(#linearGradient16249);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 88.001953,40.974609 79.402344,153.7832 119.19336,180.72266 c 34.16846,-9.36841 59.38095,-38.29738 63.9707,-73.40039 z"
id="rect16225"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
<text
sodipodi:linespacing="125%"
id="text16169"
y="153.19533"
x="53.125"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:160.00001526px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:160.00001526px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1"
y="153.19533"
x="53.125"
id="tspan16171"
sodipodi:role="line">t</tspan></text>
</g>
<g
inkscape:label="Bubble"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-860.36222)"
style="display:none">
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter16588)"
d="M 0,0 0,192 192,192 192,0 0,0 Z m 96,8 a 87.999998,87.924613 0 0 1 88,87.923828 87.999998,87.924613 0 0 1 -88,87.925782 l -1.945312,0.0644 c 0,0 -100.813021,1.51613 -84.1914068,-8.16797 C 26.484896,166.06199 7.98792,140.37931 8,95.923828 A 87.999998,87.924613 0 0 1 96,8 Z"
transform="translate(0,860.36222)"
id="rect16110"
inkscape:connector-curvature="0"
inkscape:export-xdpi="120.00001"
inkscape:export-ydpi="120.00001" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

+44
View File
@@ -0,0 +1,44 @@
<!--
DEVELOPMENT version of the web app.
It links to online babel transformer and non-babelified app script
-->
<!DOCTYPE html>
<html lang="en">
<head>
<title>Tinode</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="application-name" content="Tinode">
<meta name="description" content="Instant messenger">
<meta name="application-url" content="https://api.tinode.co/">
<!-- Browser styling for Chrome, FF, Opera -->
<meta name="theme-color" content="#3949AB">
<!-- Ask Google not to offer page translation -->
<meta name="google" value="notranslate">
<link rel="manifest" href="manifest.json">
<link id="shortcut-icon" rel="shortcut icon" href="img/logo32x32.png" type="image/png" />
<link rel="apple-touch-icon" sizes="192x192" href="img/logo192.png" type="image/png" />
<link rel="canonical" href="https://api.tinode.co/" />
<!-- Google's Roboto font -->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,700&subset=latin,cyrillic"
rel="stylesheet" type="text/css" />
<!-- Google's material design icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<!-- Styles for local elements -->
<link rel="stylesheet" href="css/base.css" />
<!-- ReactJs scripts -->
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script crossorigin src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<!-- core tinode library -->
<script src="tinode.js"></script>
<!-- the application -->
<script type="text/babel" src="index.js"></script>
</head>
<body>
<div id="mountPoint"></div>
</body>
</html>
+37
View File
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Tinode</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="application-name" content="Tinode">
<meta name="description" content="Instant messaging">
<meta name="application-url" content="https://api.tinode.co/">
<!-- Browser styling for Chrome, FF, Opera -->
<meta name="theme-color" content="#3949AB">
<!-- Ask Google not to offer page translation -->
<meta name="google" value="notranslate">
<link rel="manifest" href="manifest.json">
<link id="shortcut-icon" rel="shortcut icon" href="img/logo32x32.png" type="image/png" />
<link rel="apple-touch-icon" sizes="192x192" href="img/logo192.png" type="image/png" />
<link rel="canonical" href="https://api.tinode.co/" />
<!-- Google's Roboto font -->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,700&subset=latin,cyrillic"
rel="stylesheet" type="text/css" />
<!-- Google's material design icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<!-- Styles for local elements -->
<link rel="stylesheet" href="css/base.min.css" />
<!-- ReactJs scripts -->
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<!-- core tinode library -->
<script src="tinode.js"></script>
</head>
<body>
<div id="mountPoint"></div>
<script src="index.min.js"></script>
</body>
</html>
+5073
View File
File diff suppressed because it is too large Load Diff
+1
View File
File diff suppressed because one or more lines are too long
+25
View File
@@ -0,0 +1,25 @@
{
"short_name": "Tinode chat",
"name": "Tinode chat",
"icons": [
{
"src":"img/logo96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src":"img/logo192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "img/logo.svg",
"type": "image/svg+xml",
"sizes": "512x512"
}
],
"start_url": "/x/example-react-js/",
"background_color": "silver",
"theme_color": "#3949AB",
"display": "standalone"
}
+59
View File
@@ -0,0 +1,59 @@
{
"name": "tinode-webapp",
"description": "Tinode Web Client",
"version": "0.15.5-rc2",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-minify": "^0.4.3",
"babel-preset-env": "^1.7.0",
"babel-preset-minify": "^0.4.3",
"babel-preset-react": "^6.24.1",
"cssnano": "^4.0.5"
},
"repository": {
"type": "git",
"url": "https://github.com/tinode/example-react-js.git"
},
"scripts": {
"build": "npm run build:js && npm run build:css",
"build:js": "babel ./index.js --presets react,minify --out-file ./index.min.js",
"build:css": "postcss css/base.css > css/base.min.css",
"babel-version": "babel --version"
},
"files": [
"audio/msg.mp3",
"css/base.css",
"css/base.min.css",
"img/ignasi_pattern_s.png",
"img/logo.svg",
"img/logo32x32.png",
"img/logo32x32a.png",
"img/logo96.png",
"img/logo192.png",
"index-dev.html",
"index.html",
"index.js",
"index.min.js",
"manifest.json",
"web-desktop-2.png",
"web-mob-chat-1.png",
"web-mob-contacts-1.png",
"web-mob-info-1.png",
"web-mob-new-chat-1.png"
],
"keywords": [
"chat",
"instant-messenger",
"message",
"messenger",
"react",
"web"
],
"main": "index.js",
"bugs": {
"url": "https://github.com/tinode/example-react-js/issues"
},
"homepage": "https://github.com/tinode/chat",
"email": "gene@tinode.co",
"license": "Apache-2.0"
}
+7
View File
@@ -0,0 +1,7 @@
module.exports = {
plugins: [
require('cssnano')({
preset: 'default',
}),
],
};
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB