Commit graph

264 commits

Author SHA1 Message Date
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
445839770b
Fix width of message detail screen (#2478) 2018-06-21 12:02:50 -07:00
Scott Nonnenberg
951ae6d52c Disable inline rendering of SVG attachments
Like TIFF, they are now treated as binary files.
2018-06-15 17:49:35 -07:00
Scott Nonnenberg
925e02e397 Fix lint error in OS.ts 2018-05-23 16:26:48 -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
9dedda84e2 Add style guide examples for ContactName and ConversationTitle 2018-05-23 16:26:47 -07:00
Scott Nonnenberg
2988da0981 Turn on all of Microsoft's recommend lint rules
Biggest changes forced by this: alt tags for all images, resulting in
new strings added to messages.json, and a new i18n paramter/prop added
in a plot of places.

Another change of note is that there are two new tslint.json files under
ts/test and ts/styleguide to relax our rules a bit there. This required
a change to our package.json script, as manually specifying the config
file there made it ignore our tslint.json files in subdirectories
2018-05-23 16:26:47 -07:00
Scott Nonnenberg
23586be6b0 Add emojification to contact names shown in quotes 2018-05-23 16:26:47 -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
d9e5338dff Refactor link/emoji/newline components for composability 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
a328a70ba2
Update React-based emoji handling to fix skin tone modifiers (#2399) 2018-05-23 12:17:25 -07:00
jython234
84759d813e Modify OS.isWindows to check platform before version (#2407)
* Modify OS.isWindows to check if OS is Windows first before checking version.

Previously OS.isWindows checked if the windows version matched the one required. This worked fine, except for the fact that it would end up comparing a linux kernel version to a windows version as it didn't check if the platform was Windows in the first place before.

This caused issues as it would throw an error when comparing with non-semver linux kernels (such as Fedora). Now it checks if the current platform is Windows first, and if not, immediately returns false.

Resolves: #2396

* Fix formatting for OS.ts
2018-05-20 14:02:29 -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
8f934251ae Fix a few types: relax contact, Email->Phone 2018-05-10 11:54:58 -07:00
Scott Nonnenberg
80b069e9b6 Move phone number format/parse into ts/types/PhoneNumber 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
8cb1f1f532 Fall back on givenName/familyName if no displayName/organization 2018-05-10 11:54:58 -07:00
Scott Nonnenberg
eafa038ba4 Use backup labels if custom contact type labels are missing 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
Daniel Gasienica
d349dd903d Add AttachmentSection to style guide 2018-05-08 16:52:01 -04:00
Daniel Gasienica
121bb0ecef Style guide: Fix empty state 2018-05-08 16:52:01 -04:00
Daniel Gasienica
f19e6ea93d Wrap JSX siblings in container 2018-05-08 16:52:01 -04:00
Daniel Gasienica
a8cd0b782e Rename DocumentListItem::isLast to shouldShowSeparator 2018-05-08 16:52:01 -04:00
Daniel Gasienica
05f67dc04a Hide separator for last document list entry 2018-05-08 16:41:07 -04:00
Daniel Gasienica
fd883b2896 Fix LightboxGallery style guide entry 2018-05-08 16:41:07 -04:00
Daniel Gasienica
bfe7eb7d5e Consolidate styles 2018-05-08 16:41:07 -04:00
Daniel Gasienica
90329a2764 Display icon for unsupported file formats
Still allows users to download media.
2018-05-08 16:41:07 -04:00
Daniel Gasienica
623bdd9284 Port colorSVG from Sass to TypeScript (React) 2018-05-08 16:41:07 -04:00
Daniel Gasienica
16bc1d34c6 Message schema 6: Change classification of media and documents
For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
2018-05-08 16:41:07 -04:00
Daniel Gasienica
f4a5bc9907 Add new MIME types 2018-05-08 16:41:06 -04:00
Daniel Gasienica
63bd9dcc61 Add tests for Attachment.isVisualMedia 2018-05-08 16:41:06 -04:00
Daniel Gasienica
53918d68de Add Attachment.isFile definition 2018-05-08 16:41:06 -04:00
Daniel Gasienica
20246c4d07 Classify all images and videos as visual media
Even if we can’t play it back. Handle that in the lightbox.

Also: Exclude voice messages.
2018-05-08 16:41:06 -04:00
Scott Nonnenberg
0282635142 Remove Object.assign still hanging around in typescript 2018-05-08 09:57:51 -07:00
Scott Nonnenberg
1918a88722 Drop ifTruthy suffix 2018-05-08 09:54:28 -07:00
Scott Nonnenberg
1fd487be3f Refactor to remove duplicated code, lint/prettier fixes 2018-05-07 19:30:50 -07:00
Scott Nonnenberg
f628df1035 Eliminate arrows in the standalone Lightbox component examples 2018-05-07 19:30:50 -07:00
Scott Nonnenberg
8beeef4d10 Show contact name when you reply to message with a contact 2018-05-07 19:30:50 -07:00
Scott Nonnenberg
9d1847a7e5 Pull all setup in preload.js into signal.js. goal: webpackable 2018-05-07 19:30:49 -07:00
Scott Nonnenberg
30cb673405 Fix style guide for LightboxGallery component 2018-05-07 19:11:37 -07:00
Scott Nonnenberg
37821e5a1b Wire up all contact behaviors, refactor Contact type/selector 2018-05-07 19:11:35 -07:00
Scott Nonnenberg
41be7f126b Visuals for embedded contacts as well as contact detail screen 2018-05-07 19:09:55 -07:00
Daniel Gasienica
daa4a3d63f Compile all protocol buffers 2018-05-07 21:53:40 -04:00
Daniel Gasienica
15759f0db5 Normalize package naming 2018-05-07 21:53:40 -04:00
Daniel Gasienica
f88ebdf8b7 Compile protocol buffers as part of yarn grunt dev 2018-05-07 21:53:40 -04:00
Daniel Gasienica
38f3ad6518 Use SignalService vs textsecure for protobuf 2018-05-07 21:53:39 -04:00
Daniel Gasienica
6589247750 Expose SignalService to style guide 2018-05-07 21:53:39 -04:00
Daniel Gasienica
86346ee239 Expose Signal.Types.Attachment to style guide 2018-05-07 21:53:39 -04:00
Daniel Gasienica
5789b3eb75 Add Attachment.isVoiceMessage 2018-05-07 21:53:39 -04:00
Daniel Gasienica
fa4c3fda2b Extract common MIME types 2018-05-07 21:53:39 -04:00
Daniel Gasienica
8a4f062120 Add MIME.APPLICATION_OCTET_STREAM 2018-05-07 21:53:39 -04:00
Daniel Gasienica
5d230d3778 Add Settings.isNotificationGroupingSupported
See: https://github.com/electron/electron/issues/11189
2018-05-04 15:37:46 -04:00
Daniel Gasienica
ecf23b6b2e Disable audio notifications on Windows 7 and lower 2018-05-02 20:01:57 -04:00
Daniel Gasienica
a102016ed8 Port Settings and OS to TypeScript 2018-05-02 20:01:57 -04:00
Daniel Gasienica
c591c3ca55 Use native notifications on all platforms 2018-05-02 19:58:33 -04:00
Daniel Gasienica
4e6a03a91c Log whether OS supports native notifications 2018-05-02 19:18:34 -04:00
Daniel Gasienica
d5b391757d Add Notifications.getStatus 2018-05-02 19:18:33 -04:00
Scott Nonnenberg
322d307655 Turn on prettier support for markdown files, update all files 2018-05-01 16:06:57 -07:00
Daniel Gasienica
87d374ea78 Remove @prettier pragmas 2018-04-30 16:53:34 -04:00
Daniel Gasienica
1dd87ad197 Format all source code using Prettier 2018-04-30 16:53:34 -04:00
Scott Nonnenberg
82e2fe93a5
Show 'You' in Android theme quotes instead of contact name (#2312)
Show 'You' in Android theme quotes instead of contact name
2018-04-30 13:49:19 -07:00
Scott Nonnenberg
c5935eef5d Show 'You' in Android theme quotes instead of contact name 2018-04-30 12:33:16 -07:00
Daniel Gasienica
fccbf70d57 Pre-process media for LightboxGallery 2018-04-30 11:59:26 -04:00
Daniel Gasienica
110b58230b Only revoke object URLs we created 2018-04-30 11:01:57 -04:00
Daniel Gasienica
c6599d2e14 Add another permutation of EmptyState 2018-04-30 11:01:00 -04:00
Daniel Gasienica
9ca6fd6498 Center lightbox navigation controls 2018-04-27 16:31:43 -04:00
Daniel Gasienica
fa45656e8e Wire up media gallery empty state 2018-04-27 16:31:43 -04:00
Daniel Gasienica
4d01264c09 Fix layout of media gallery 2018-04-27 16:31:43 -04:00
Daniel Gasienica
78f15b654d Add EmptyState component 2018-04-27 16:31:43 -04:00
Daniel Gasienica
ea49f7a3b6 Implement keyboard navigation for Lightbox 2018-04-27 16:31:43 -04:00
Daniel Gasienica
e1b620602d Display attachments from disk 2018-04-27 16:31:43 -04:00
Daniel Gasienica
407c77395b Add explicit boolean 2018-04-27 16:31:43 -04:00
Daniel Gasienica
9451dc5e41 Define AttachmentSchemaVersion3 2018-04-27 16:31:43 -04:00
Daniel Gasienica
21db2e7182 Use saveURLAsFile 2018-04-27 16:31:43 -04:00
Daniel Gasienica
307ab0d3a5 Extract saveURLAsFile 2018-04-27 16:31:43 -04:00
Daniel Gasienica
4c0c55082f Move navigation controls to the bottom 2018-04-27 16:31:43 -04:00
Daniel Gasienica
fb8d4e2421 Implement basic lightbox with gallery support 2018-04-27 16:31:42 -04:00
Daniel Gasienica
43e19f3b06 Prevent default event on icon button clicks 2018-04-27 16:31:42 -04:00
Daniel Gasienica
b3d0438537 Show hand cursor on media grid items 2018-04-27 16:31:42 -04:00
Daniel Gasienica
45d6c7a5a8 Implement video support in lightbox 2018-04-27 16:31:42 -04:00
Daniel Gasienica
ac04f0648a Load more documents than media 2018-04-27 16:31:42 -04:00
Daniel Gasienica
6ee56b8445 Remove newlines 2018-04-27 16:31:42 -04:00
Daniel Gasienica
b74b761255 Implement click to save for document list 2018-04-27 16:31:42 -04:00
Daniel Gasienica
8ca5a391af arrayBufferToObjectURL: Ensure data is ArrayBuffer 2018-04-27 16:31:42 -04:00
Daniel Gasienica
b27fdd1559 Use pointer cursor for DocumentListItem 2018-04-27 16:31:42 -04:00
Daniel Gasienica
4a5e61eaf4 Implement Attachment.save 2018-04-27 16:31:42 -04:00
Daniel Gasienica
f8119be97b Include videos in media gallery 2018-04-27 16:31:42 -04:00
Daniel Gasienica
37d73accde Show ‘Documents’ tab 2018-04-27 16:31:42 -04:00
Daniel Gasienica
96c44094e3 Implement Conversation.fetchFileAttachments 2018-04-27 16:31:42 -04:00
Scott Nonnenberg
ccf14710a3 styleguide: Make filesize and Signal.Util.GoogleChrome available 2018-04-27 08:51:46 -07:00
Daniel Gasienica
f36f206a01 Use IndexablePresence for hasFileAttachments and hasVisualMediaAttachments
Reduces index size, makes it easier to debug using IndexedDB inspector, and
hopefully improves lookup performance.
2018-04-25 15:25:12 -04:00
Daniel Gasienica
b65370c8d7 Prefer GoogleChrome.is* over MIME.is* 2018-04-25 15:25:12 -04:00
Daniel Gasienica
64c3d604aa Fix type errors 2018-04-25 15:24:52 -04:00
Daniel Gasienica
cd6912f0dd 🎨 Autoformat code 2018-04-25 15:24:52 -04:00
Daniel Gasienica
823a58f98a Prevent NPE 2018-04-25 15:24:52 -04:00
Daniel Gasienica
96be0df8c7 Show lightbox controls based on presence of handlers 2018-04-25 15:24:52 -04:00
Daniel Gasienica
59650035ec Use 🇺🇸 spelling 2018-04-25 15:24:52 -04:00
Daniel Gasienica
feff820cd4 Prefer custom styles over strong 2018-04-25 15:24:52 -04:00