Commit Graph
3174 Commits
Author SHA1 Message Date
Scott Nonnenberg 675e34fc8d New React component: ConversationListItem, installed in left pane
When collecting a conversation's last message, we grab that message's
status as well (if outgoing) and show it.
2018-07-17 20:25:55 -07:00
Scott Nonnenberg 3c69886320 Finish new Message component, integrate into application
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
  to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
2018-07-17 15:58:07 -07:00
Scott Nonnenberg 43a44793c5 Remove jshint - move everything over to eslint
Also removed all hints of previous linters
2018-07-17 15:54:32 -07:00
Scott Nonnenberg dc11db92f9 New React component: Message
Also: Use react to render contects on the 'show group members' screen
2018-07-17 15:53:33 -07:00
Scott Nonnenberg fc5c52fbdf Remove iOS theme in favor of plain light/dark themes 2018-07-17 15:45:40 -07:00
Scott Nonnenberg 5823ae3951 Ensure disabled timer notification is 'to off' not 'to seconds' 2018-07-13 09:55:12 -07:00
Scott Nonnenberg f5852bb357 Be resilient to null thrown errors so we can surface to user 2018-07-13 08:59:18 -07:00
Scott Nonnenberg c54ba8d1fa Ensure that notifications and auto-hide window settings are saved 2018-07-13 08:58:35 -07:00
Scott Nonnenberg d8e5e5fcf2 Open separate windows with theme, update settings theme on change 2018-07-13 08:57:30 -07:00
Scott Nonnenberg 61d8a694b7 Remove temporary test logging 2018-07-12 14:20:49 -07:00
Scott Nonnenberg 212ec8bb73 Whenever user opens conversation, update its last message 2018-07-12 11:33:59 -07:00
Matthias Beaupère 6a611cbecf Auto-scroll to selected conversation when reordering them (#2498)
When conversations are reordered (last message time has changed), this commit leads to scrolling the shortest distance to the conversation.
2018-07-05 09:52:24 -07:00
Scott Nonnenberg e30b34f424 Add 'newmessage' event handler to Conversation for reliablity 2018-07-05 09:32:14 -07:00
Scott Nonnenberg ad4387803b New media permission, show dialog when not enabled for voice msg
UI now in separate renderer:
  - the permissions popup
  - settings dialog
  - debug log dialog
  - about window

Couple bug fixes:
  - About Window: Fix 'escape' to close window
  - Remove outdated dist/copy tasks from Gruntfile

Eslintified settings_view.js
2018-07-03 16:04:21 -07:00
Scott Nonnenberg 9d9a797bda Handle timer updates along with group updates 2018-07-03 16:04:21 -07:00
Scott Nonnenberg 67464774c3 eslintify expiring_messages.js 2018-07-03 16:04:21 -07:00
Scott Nonnenberg 12b5547e72 Update contents of conversation even when view not hydrated
Also ensure that we update the last message in a conversation after
expire, after the mesage is really deleted from the database.
2018-07-03 16:04:21 -07:00
Scott Nonnenberg a40a39314a Disable notifications on new 'reconnect' event for laptop resume 2018-07-03 15:06:58 -07:00
Scott Nonnenberg 125c3fafa8 Idle detector: Fix bug preventing it from ever turning off (#2487) 2018-07-03 15:02:58 -07:00
Scott Nonnenberg 0abdd5ead1 Add missing await for thumbnail creation in makeQuote() 2018-06-21 15:19:55 -07:00
Scott Nonnenberg b113cd0ad2 Expire timer updates: don't send if updated via remote message (#2473)
A recent change removed the type property to make markRead() behave
properly, but that broke our check 'should we send an update?' logic. So
instead of using `isIncoming()` we now use the thing we previously used
to determine whether a message was incoming: `receivedAt`.
2018-06-21 12:01:56 -07:00
Scott Nonnenberg a4603807e1 Send/reply: Be resilient to errors making attachment thumbnail (#2468)
* Show generic file icon if we fail to make attachment thumbnail

* Be resilient to thumbnail creation errors when creating quote
2018-06-21 12:01:11 -07:00
Scott Nonnenberg 8eeaad8e18 Remove unused export/import functionality 2018-06-21 11:54:01 -07:00
Scott Nonnenberg 1c23c6a9d7 Remove window.config in favor of window.getXXX() accessors 2018-06-14 17:03:53 -07:00
Scott Nonnenberg 5fca44d1b1 Send message: Pull expireTimer, recipients, dest before queueJob 2018-06-14 15:33:56 -07:00
Scott Nonnenberg dfa1f0797c Ensure timer updates show in convo before initiating message 2018-06-14 15:30:26 -07:00
Scott Nonnenberg 71d873ccfe Ensure message expire timer start times are never in the future 2018-05-31 13:25:45 -07:00
Scott Nonnenberg f3bd0cf903 Refactor api.js into web_api, which encapsulates all web access 2018-05-31 13:25:45 -07:00
Scott Nonnenberg 8c85f6e3a6 When marking message read, ensure that peers have same read_at
When we mark a message as read, we go to the database to ensure that
older messages in this conversation are marked read as well. That
optimization was missing the read_at value provided to the starting
message, so now it is piped along to all of them.
2018-05-24 18:54:06 -07:00
Scott Nonnenberg 9400d1a538 eslintify background.js 2018-05-24 18:50:49 -07:00
Scott Nonnenberg 34f423b52c Remove unused code; move signal.js to js/modules for eslint
(noticed as I was doing this that signal.js doesn't get eslint coverage)
2018-05-23 16:26:48 -07:00
Scott Nonnenberg ec3e36824c Remove jscs from the project 2018-05-23 16:26:48 -07:00
Scott Nonnenberg cfe0bd0e79 Move to npm for several dependencies
mustache
jQuery
underscore
backbone
mocha
chai
intl-tel-input
2018-05-23 16:26:48 -07:00
Scott Nonnenberg 01be58acc2 Remove formatting in importError localization string 2018-05-23 16:26:48 -07:00
Scott Nonnenberg 548c8e69cf Emojification now all done with react via a few new components
Three locations were changed:
  1. a group update, which lists a set of contacts
  2. the contact name in the left pane
  3. the conversation title

Three new components were added to window.Signal.Components to support
these scenarios, respectively:
  1. Emojify
  2. ContactName
  3. ConversationTitle

Note that there are a number of other places in the app that should be
emojified, but never have been before. Essentially any place that a
contact name might be shown. A non-exhaustive list:
  - Show group members
  - Show safety number
  - Verified change notification
  - Disappearing timer change notification
  - Contact verification notification
  - Quote contact name
2018-05-23 16:26:47 -07:00
Scott Nonnenberg a5416e42c4 Refactor all emoji utility methods into window.Signal.Emoji 2018-05-23 16:26:47 -07:00
Scott Nonnenberg e2d044e02b Filter file scheme; disable http, https and ftp entirely 2018-05-23 16:26:40 -07:00
Scott Nonnenberg e02887565b Update to electron v2.0.1 (#2401)
* Remove extra parenthesis causing warnings on latest chromium

* Update to electron 2.0.1

* Move all @types dependencies to devDependencies

* Update electron-builder/electron-updater

* Update to Node.js 8.9.3 to match Electron 2.0.1
2018-05-23 12:17:58 -07:00
Scott Nonnenberg d54aedcefa A few fixes for the contact detail screen (#2374)
* Only show 'send message' on contact detail when user has account

* Make contact detail headers visible in dark mode

* Fix vertical scrolling for very large contact in detail pane

* Fix a couple comment typos
2018-05-23 12:15:46 -07:00
Scott Nonnenberg 4e5c8965ff Move to react for newlines, emoji, and links in message body 2018-05-14 16:09:37 -07:00
Scott Nonnenberg c00c939148 Update link handling 2018-05-11 13:49:06 -07:00
Scott Nonnenberg b1a54c416f Notifications: All calls are debounced except for shutdown clear 2018-05-10 17:27:22 -07:00
Scott Nonnenberg 18a76ffb49 Debounce notifications so we don't orphan them
Creating/destroying notifications too quickly in testing on macOS would
result in them sticking around forever, requiring manual user dismissal.
We want to dismiss them for the user when we close or our window is
activated. So now we debounce() calls to our notifications code.
2018-05-10 17:07:42 -07:00
Daniel Gasienica 24002149f6 Log read sync reception and remove notification 2018-05-10 17:06:11 -04:00
Daniel Gasienica d434262540 Remove last notification before creating new one 2018-05-10 17:06:11 -04:00
Scott Nonnenberg 80b069e9b6 Move phone number format/parse into ts/types/PhoneNumber 2018-05-10 11:54:58 -07:00
Scott Nonnenberg 93d3abbf8d Use contact name when updating last message for a conversation 2018-05-10 11:54:58 -07:00
Scott Nonnenberg aa13a2c6f7 Parse phone numbers into e164 as part of schema upgrade 2018-05-10 11:54:58 -07:00
Scott Nonnenberg d2293d9592 parseAndWriteAvatar: Do shallow copy before omit() call
Otherwise, we get all prototype props/functions, which we can't save in IndexedDB
2018-05-10 11:54:58 -07:00
Daniel Gasienica 3bf8a8966a Notification improvements
- Remove on read, on focus, and on exit.
- Show multi-message notifications like '5 new messages'.
2018-05-10 14:45:56 -04:00