Commit graph

358 commits

Author SHA1 Message Date
Evan Hahn
36d8ef9678
Remove lineNumber from lint exceptions 2021-05-04 09:41:59 -07:00
Evan Hahn
736075322c
Render disappearing message timers generically 2021-05-03 16:24:40 -07:00
Evan Hahn
fe772af251
Show "no groups in common" warning for relevant message requests 2021-04-30 15:58:57 -07:00
Evan Hahn
05703c2719
Blur avatars of unapproved conversations 2021-04-30 14:40:25 -05:00
Fedor Indutny
caf1d4c4da GIF attachments 2021-04-29 14:27:37 -07:00
Evan Hahn
5f17d01f49 Take an author object in <Message> 2021-04-29 14:27:37 -07:00
Evan Hahn
a5a64f354f Upgrade Prettier from v2.1.2 to v2.2.1 2021-04-29 14:27:36 -07:00
Evan Hahn
e7ef3de6d0 Profile name spoofing dialog 2021-04-29 14:27:35 -07:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Evan Hahn
885ff5fe42 Show common groups in contact modal 2021-04-29 14:27:35 -07:00
Josh Perez
d203f125c6
Adds message forwarding 2021-04-27 18:35:35 -04:00
Josh Perez
e75bba1c52
Replaces ConfirmationModal with ConfirmationDialog 2021-04-27 15:29:59 -04:00
Josh Perez
5e2d48cc2f
Do not populate left pane on initial link 2021-04-20 19:16:49 -04:00
Fedor Indutny
0b969f3f42
Improve MessageAudio peaks computation
There are two parts to this change:

1. The computation of peaks is moved from `MessageAudio` to the
   `GlobalAudioContext` and thus we can limit the concurrency of the
   computations (`p-queue`!) and de-duplicate the computations as well
2. While the peaks are computed the component has to display spinning
   animation instead of empty waveform and unclickable UI.
2021-04-15 14:02:24 -07:00
Evan Hahn
31a777a130 Merge branch 'WhyNotHugo-python3' into next-beta 2021-04-14 14:15:24 -07:00
Fedor Indutny
25458be515
upgrade electron-builder to 22.10.5 2021-04-13 18:27:43 -07:00
Josh Perez
ef781af0ce
Updates a11y dev deps 2021-04-13 17:33:24 -04:00
Evan Hahn
62f1a42c25
Add reusable <Modal> component, use with <Alert> 2021-04-13 09:20:02 -05:00
Hugo Osvaldo Barrera
207c533de1 Use a node-gyp version which supports Python3
The currently pinned version of `node-gyp` requires Python 2.  Python 2
has reached its EOL a long time ago and is unsupported by upstream.

The requirement on Python 2 is also an unnecessary barrier for new
developers to contribute to Signal.

This changeset updates the required version of node-gyp to one
compatible with Python 3.

`CONTRIBUTING.md` remains unchanged, since this dependency was not
previously mentioned anyway.

Supersedes #4407
Fixes #4783
2021-04-09 22:13:11 +02:00
Evan Hahn
23b3d34eef Upgrade Sharp to v0.28.1 2021-04-09 15:01:25 -04:00
Scott Nonnenberg
e0415de893 Don't always show an error on manual contact sync 2021-04-09 00:06:46 -04:00
Evan Hahn
a82fa86176 Fetch sender certificates on-demand 2021-04-09 00:06:46 -04:00
Fedor Indutny
4fd3ed7242 Bundle preload.js 2021-04-09 00:06:14 -04:00
Fedor Indutny
c609389aaf Update to Webpack 5 2021-04-09 00:05:41 -04:00
Fedor Indutny
37c8c1727f Types, better-sqlite3, and worker_threads for our sqlite 2021-04-08 23:53:18 -04:00
Fedor Indutny
a97abf718d Sort lint exceptions 2021-04-08 23:51:54 -04:00
Fedor Indutny
6e41009d74 Update zkgroup to the latest 2021-04-08 23:51:54 -04:00
Josh Perez
d6bb8ae35e
Adds axe-storybook-testing 2021-04-06 16:12:33 -04:00
Evan Hahn
d81aaf654f Improve left pane UI when loading search results 2021-04-05 18:08:50 -04:00
Evan Hahn
eb97c1194a Add Zod for runtime and compile-time type checking, use it in logging code 2021-04-05 18:08:50 -04:00
Evan Hahn
c711fbe0c0 In conversation hero, show “No group in common” if you have no common groups and no phone number 2021-04-05 18:08:50 -04:00
Fedor Indutny
990e501850
First pass on CI support 2021-03-25 19:02:53 -07:00
Evan Hahn
afe135df0c
Hide long message attachments in quotes 2021-03-25 11:36:50 -07:00
Fedor Indutny
7a9a4a1404
Clicking first bars of the waveform should rewind
It is practically impossible to rewind audio prior to this commit. With
this commit - clicking first two bars will rewind the audio to its very
start instead of updating its current play time to a specific non-zero v
alue.
2021-03-24 16:08:57 -07:00
Evan Hahn
77c306843d
Fix error on message details screen with audio messages 2021-03-24 15:06:12 -07:00
Fedor Indutny
a75402d290
Add timestamp utilities with helpful names 2021-03-22 16:08:52 -05:00
Fedor Indutny
9fa3359477
Mark attachment as corrupted if audio load failed
Sending corrupted audio should not leave user with non-functional
UI. Mark attachment as corrupted and show generic attachment UI for it
instead.
2021-03-22 11:51:53 -07:00
Evan Hahn
c97bb0feee Auto-scroll the left pane less frequently 2021-03-19 16:57:36 -04:00
Fedor Indutny
05f59f3db1 Add download button and pending spinner for audio messages 2021-03-19 16:57:36 -04:00
Fedor Indutny
f98c3cba8c Preliminary support for better performance testing 2021-03-19 16:57:36 -04:00
Fedor Indutny
b93164a8c0 Reduce size of asar file and unpacked asar folder 2021-03-19 16:57:35 -04:00
Evan Hahn
b81a52bbdd New Group administration: Add users 2021-03-19 16:57:35 -04:00
Fedor Indutny
8c9e556a22 Don't use useMemo() for AudioContext/Audio/Cache
`useMemo()` doesn't guarantee that the value won't be recomputed during
re-renders. Unfortunately, every time `AudioContext` is instantiated -
there is an audible click. This click happens during the change between
conversations and is very annoying.

Move both `AudioContext` instance to the
GlobalAudioContext's top-level declarations, and `Audio`/`WaveformCache`
to `useRef()`s.
2021-03-19 16:57:35 -04:00
Josh Perez
d85a43fe93 Replace bunyan with pino 2021-03-19 16:57:35 -04:00
Fedor Indutny
12d7f24d0f New UI for audio playback and global audio player
Introduce new UI and behavior for playing audio attachments in
conversations. Previously, playback stopped unexpectedly during window
resizes and scrolling through the messages due to the row height
recomputation in `react-virtualized`.

With this commit we introduce `<GlobalAudioContext/>` instance that
wraps whole conversation and provides an `<audio/>` element that
doesn't get re-rendered (or destroyed) whenever `react-virtualized`
recomputes messages. The audio players (with a freshly designed UI) now
share this global `<audio/>` instance and manage access to it using
`audioPlayer.owner` state from the redux.

New UI computes on the fly, caches, and displays waveforms for each
audio attachment. Storybook had to be slightly modified to accomodate
testing of Android bubbles by introducing the new knob for
`authorColor`.
2021-03-19 16:57:35 -04:00
Evan Hahn
9f5335b854 New Group administration: update title and avatar 2021-03-19 16:57:35 -04:00
Evan Hahn
ecc04d36de Disallow group names longer than 32 extended graphemes 2021-03-19 16:57:35 -04:00
Evan Hahn
934e0fa415 In <ContactPills>, use new "scrollToBottom" helper 2021-03-19 16:57:35 -04:00
Josh Perez
d82ce07942 Improve cold start performance 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
c73e35b1b6 Support for translating Desktop sessions to libsignal-client sessions 2021-03-19 16:57:35 -04:00