Commit Graph

172 Commits

Author SHA1 Message Date
Mihai Uscat 5f5468995f feat(chat): Make chat push content to the side in large view 2020-07-17 10:04:56 +03:00
Saúl Ibarra Corretgé 6e679f952f redux: refactor loading of middlewares and reducers
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.

This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.

This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
  respectively.

Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.
2020-06-16 11:24:15 +02:00
Bettenbuk Zoltan 0598e7369b ref: eslint-config-jitsi@1.0.3 2020-05-20 17:14:29 +02:00
Saúl Ibarra Corretgé e5b563ba46 rn,flags: add more feature flags to toggle specific behavior
- Invite funcionality (altogether)
- Recording
- Live streaming
- Meeting name
- Meeting password
2020-04-29 10:19:17 +02:00
Bettenbuk Zoltan cd1862a2d3 fix: private message open 2020-04-22 12:09:07 +02:00
Bettenbuk Zoltan b706972acb fix: re-add android only chat input padding 2020-04-07 11:18:50 +02:00
Bettenbuk Zoltan 678ed605d7 ref: change JitsiModal to better fit to needs 2020-04-07 11:18:50 +02:00
Bettenbuk Zoltan 3a2081ffed ref: change Chat to JitsiModal 2020-04-02 12:40:12 +02:00
Bettenbuk Zoltan feb8fe9e34 api: add private message flag to outgoingMessage 2020-04-01 11:58:48 +02:00
Bettenbuk Zoltan b64294af6d fix: emoji in links 2019-11-29 14:36:42 +01:00
Bettenbuk Zoltan 6121e9fc65 feat: improve chat UX 2019-11-21 18:11:58 +01:00
Bettenbuk Zoltan 9265e1ffec ui: web chat facelift 2019-10-22 13:16:00 +02:00
Bettenbuk Zoltan a35099f949 feat: add chat color scheming 2019-10-16 10:38:28 +02:00
Bettenbuk Zoltan 6e10ca5dd2 fix: chat error message 2019-10-09 18:35:09 +02:00
Bettenbuk Zoltan 42271b1b89 feat: private messages 2019-10-08 18:22:45 +02:00
Bettenbuk Zoltan f270b50972 fix: remove unnecessary escaping 2019-10-08 18:22:45 +02:00
Leonard Kim 1b43c22940 fix(chat): update thumbs emoji strings
react-emoji-renderer 1.0.0 removed the
thumbsup and thumbsdown aliases.
2019-09-16 09:55:36 -07:00
Bettenbuk Zoltan 8a3ddd8596 feat: SVG icons 2019-09-13 14:07:53 +02:00
Bettenbuk Zoltan 1941275f93 feat: mobile chat emojis 2019-08-26 15:37:58 +02:00
Bettenbuk Zoltan cfc7210ac8 feat: add send message button 2019-08-22 12:03:39 +02:00
Bettenbuk Zoltan bed3f62536 feat: make links in chat clickable 2019-08-06 08:48:37 +02:00
Bettenbuk Zoltan e7144eb674 Get chat message display name from backend 2019-07-31 10:48:22 +02:00
Дамян Минков 9f4da84701
I18next update (#4456)
* Removes unused translations.

* Fixes using translated strings.

* Moves using latest i18next versions and stop using compatibility modes.

* Sorts i18next options.

* Fixes defaultNS used by i18next.

This is used when translating html tags with data-i18n keys as attributes, used by jQuery-Impromptu.
2019-07-22 11:10:25 +01:00
Leonard Kim 130ab886ee fix(chat): show toolbar on open 2019-07-18 06:08:27 -07:00
Leonard Kim c0e9f2b95a fix(chat): workaround for chat scroll causing layout misalignment 2019-07-18 06:08:27 -07:00
Bettenbuk Zoltan 0a76eebca7 feat: central back button registry 2019-07-11 16:14:08 +02:00
Bettenbuk Zoltan 72137a2811 feat: initial based avatars 2019-07-01 23:59:16 +02:00
Leonard Kim 2f7f9f24c4 fix(display-name): dismiss prompt if name gets set 2019-06-17 15:10:53 +01:00
Leonard Kim d86b60ea72 fix(chat): maintain bottom scroll on input resize 2019-05-15 08:06:35 -07:00
Leonard Kim dfe5fbb702 ref(chat): change initial input size to 1 line 2019-05-15 08:06:35 -07:00
Leonard Kim 09f881c0f5 ref(chat): bring in package for text area auto-resizing 2019-05-15 08:06:35 -07:00
Leonard Kim f1546008f9 ref(chat): removed unused getChatInputRef callback for input 2019-05-15 08:06:35 -07:00
Leonard Kim d8df7fde84 ref(chat): clean up public blur/focus methods on input
Method blur is not called. Method blur is called
internally only.
2019-05-15 08:06:35 -07:00
Leonard Kim 5a53d7f32a fix(chat): re-fix letting long messages wrap 2019-05-14 09:20:25 -07:00
Leonard Kim 4eec13da1c ref(chat): de-parameterize AbstractMessageContainer 2019-05-14 09:20:25 -07:00
Leonard Kim cb8282dfe5 ref(chat): remove unused method 2019-05-14 09:20:25 -07:00
Leonard Kim 5cd0b1a9be fix(chat): fix auto-scrolling to bottom
Empower the parent.
2019-05-14 09:20:25 -07:00
Leonard Kim 504fadaf71 ref(chat): on web, move timestamp to chat message 2019-05-14 09:20:25 -07:00
Leonard Kim 7187e540a8 ref(chat): on native, show messages as grouped by sender 2019-05-14 09:20:25 -07:00
Leonard Kim 34dffbfc5e ref(chat): on native, group messages by sender (no styling) 2019-05-14 09:20:25 -07:00
Leonard Kim a9637f93c3 ref(chat): create AbstractMessageContainer
So mobile and web can share logic for grouping chat
messages by sender.
2019-05-14 09:20:25 -07:00
Leonard Kim 0e8b0a9c5c ref(chat): create web MessageContainer component 2019-05-14 09:20:25 -07:00
Leonard Kim a114d55fac fix(chat): ensure really long words can trigger wrapping 2019-05-09 08:25:47 -07:00
Leonard Kim afde717ca4 ref(chat): use message type as classname 2019-05-09 07:06:27 -07:00
Leonard Kim fb5a45f714 feat(chat): on web, group messages by sender 2019-05-09 07:06:27 -07:00
Leonard Kim a49f62238b ref(chat): clean up extra dom 2019-05-08 08:57:00 -07:00
Leonard Kim 01458eeff9 ref(chat): add a header for holding the close button 2019-05-08 08:57:00 -07:00
Leonard Kim 4d04141f24 ref(chat): change input placeholder 2019-05-08 08:57:00 -07:00
Leonard Kim 2a4bac7a27 ref(chat): remove chat bubble arrow 2019-05-08 08:57:00 -07:00
Bettenbuk Zoltan 3eca67e1ad rn: add HeaderWithNavigation component 2019-05-07 18:02:14 +02:00
damencho c09eee0985 Disables chat when we are in recorder mode. 2019-04-29 14:36:22 +00:00
Bettenbuk Zoltan b886f8d72d rn: specify chat text field font color 2019-04-26 21:33:11 +02:00
Bettenbuk Zoltan 0b6c51f666 rn: replace 3rd party chat library with custom implementation 2019-04-26 15:17:36 +02:00
virtuacoplenny ca38bd53fe
fix(chat): use css for arrow (#4097) 2019-04-12 13:59:03 -07:00
Bettenbuk Zoltan 13212a5980 [RN] Replace chat modal with SlidingView 2019-03-25 14:52:43 +01:00
Bettenbuk Zoltan 2a5adfc601 Remove some Flow annotations 2019-03-25 13:53:08 +01:00
Saúl Ibarra Corretgé c025c7e132 flow: tame the beast
🔥🔥🔥
2019-03-21 14:47:55 +01:00
Saúl Ibarra Corretgé 0e92e73789 chore: use strings as action types
Using anything non-serializable for action types is discouraged:
https://redux.js.org/faq/actions#actions

In fact, this is the Flow definition for dispatching actions:

declare export type DispatchAPI<A> = (action: A) => A;
declare export type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>;

Note how the `type` field is defined as a subtype of string, which Symbol isn’t.
2019-03-21 14:47:55 +01:00
Leonard Kim 81d4f694b7 fix(chat): prevent empty messages 2019-03-09 12:09:29 +01:00
Bettenbuk Zoltan 230b2b02fa Chat render improbement 2019-01-15 13:38:26 +01:00
Bettenbuk Zoltan 8a241ba2b7 [RN] Add chat functionality
Co-authored-by: DimaG <dgeorgiev06@gmail.com>
2019-01-15 11:33:12 +01:00
Bettenbuk Zoltan 82f714b608 Move display name handling into redux 2019-01-15 10:15:02 +01:00
Leonard Kim 14cc4ea54a ref(hangup): clean up some UI state on hangup
- Reset some state on the singletons conference
  and VideoLayout.
- Add a way for LocalVideo to clean itself up
  by sharing logic with the other SmallVideos.
- Add clearing of chat messages so they don't
  linger.
- Remove some UI event listeners.
2019-01-02 09:54:05 -08:00
Дамян Минков f11b6cbb1e
Replaces smileys and the logic of replacing links/emails. (#3560)
* Replaces smileys and the logic of replacing links/emails.

Now using react-emoji-render and react-linkify.

* Fixes heart emoji.

It is known that current implementation doesn't work with ascii emojis that contain < or >, like >:( >:-( </3 <\3 <3. Making those work may bring some xss issues.

* Adds '_blank' and 'noopener noreferrer' to the replaced links.

* Fixes package-lock links (http vs https).

* Fixes comments.
2018-12-03 18:01:40 +00:00
damencho cd77a9176c Make sure we do only one replacement, not one over another for messages. 2018-10-18 23:37:07 +02:00
damencho df55448a2c Fixes chat image links to reflect html base. 2018-10-03 14:44:33 -05:00
Pratik Shah b7b43e8d9c feat(chat): convert to use React
- Change "features/chat" to support listening for new chat messages
  and storing them, removing that logic from conference.js.
- Combine chat.scss and side_toolbar_container.css, and remove unused
  scss files. Chat is the only side panel so the two concepts have
  been merged.
- Remove direct access to the chat feature from non-react and non-redux
  flows.
- Modify the i18n translate function to take in an options object.
  By default the option "wait" is set to true, but that causes
  components to mount after the parent has been notified of
  an update, which means autoscrolling down to the latest rendered
  messages does not work. With "wait" set to false, the children
  will mount and then the parent will trigger componentDidUpdate.
- Create react components for chat. Chat is the side panel
  plus the entiren chat feature. ChatInput is a child of Chat and
  is used for composing messages. ChatMessage displays one message
  and extends PureComponent to limit re-renders.
- Fix a bug where the toolbar was not showing automatically when
  chat is closed and a new message is received.
- Import react-transition-group to time the animation of the
  side panel showing/hiding and unmounting the Chat component.
  This gets around the issue of having to control autofocus if the
  component were always mounted and visibility toggled, but
  introduces not being able to store previous scroll state
  (without additional work or re-work).
2018-09-26 14:48:10 -05:00
Saúl Ibarra Corretgé dc246960df feat(App): refactor App and split it into BaseApp and App
BaseApp does all the heavy-lifting related to creating the redux store,
navigation, and so on.

App currently handles URL props and actually triggering navigation based on
them.
2018-07-12 11:28:19 -05:00
paweldomas 8b2ce21e1a fix(RN): bundle sound files in release build
On Android the files will be copied to the assets/sounds directory of
the SDK bundle on build time. To play the "asset:/" prefix has to be
used to locate the files correctly.

On iOS each sound file must be added to the SDK's Xcode project in order
to be bundled correctly. To playback we need to know the path of the SDK
bundle which is now exposed by the AppInfo iOS module.
2018-04-10 10:59:52 +02:00
Leonard Kim d93782af8a feat(new-toolbars): initial implementation 2018-03-27 00:54:30 -05:00
paweldomas 4dbcaf851f flow(AbstractAudio): specific function types 2018-03-13 16:57:29 -05:00
paweldomas 26cd2f17f6 ref(chat): port incoming chat msg sound to react 2018-03-13 16:57:28 -05:00