Commit Graph

179 Commits

Author SHA1 Message Date
Evan Hahn b7682d2c79 Fix line-height on install screen 2021-11-04 13:34:19 -07:00
Evan Hahn 35a54cdc02 Introduce a new design for the left pane 2021-10-12 16:59:08 -07:00
Josh Perez 5fdfa1c632 ConversationView in React 2021-10-05 09:47:06 -07:00
Evan Hahn 2d3b1918b3 Decrease GPU usage when window is invisible 2021-07-30 13:35:43 -05:00
Josh Perez 173771d34b New top-level React root: <App /> 2021-06-14 12:01:00 -07:00
Josh Perez 28f016ce48 Conversation Colors 2021-05-28 09:15:17 -07:00
Evan Hahn ed68c34ee2 Don't let users select loading message text 2021-04-29 14:27:35 -07:00
Evan Hahn 729d808f62 macOS: make conversation and main header draggable 2021-03-19 16:57:35 -04:00
Evan Hahn ee97d1a0e0 Fix horizontal jitter on loading screen 2021-02-10 14:47:56 -08:00
Evan Hahn ddebbf8121 Hide title bar on macOS 2021-02-01 12:01:25 -08:00
Josh Perez 258bd55dd2 Show about info from contact profiles 2021-01-25 18:29:01 -08:00
Evan Hahn 8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Josh Perez b50b14a825 Increase contrast of icons in composition area 2020-11-04 13:00:40 -06:00
Ken Powers 750e50812c Introduce dialog for long database migrations 2020-03-25 16:47:42 -07:00
Josh Perez d7b64cd986 Deprecate remaining color-signal-blue 2020-03-24 17:03:22 -07:00
Josh Perez 12457d47a3 Move to new logo and primary blue color 2020-03-24 17:01:51 -07:00
Scott Nonnenberg 455c7449e3 Restore cursor styling to the default; i-bars for text, etc. 2020-02-24 17:06:00 -08:00
Josh Perez 18fd44f504 Move all status/alert dialogs into the Left Pane 2020-02-12 13:30:58 -08:00
Ken Powers fba401aee8 Add sanitize.css to all windows and styleguide 2020-02-07 12:19:35 -08:00
Scott Nonnenberg 2a0a73cfc1 Keyboard/mouse mode and keyboard support bugfixes 2019-11-21 14:16:06 -05:00
Scott Nonnenberg 20a892247f Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
Scott Nonnenberg dd1f9b055f New AvatarPopup component 2019-10-17 14:22:07 -04:00
Scott Nonnenberg c81c25bb85 Update colors, icons, and fonts 2019-10-10 14:56:14 -07:00
Ken Powers 79bba52cfb Large Message Composition 2019-08-21 14:52:30 -07:00
Scott Nonnenberg 3d06a815c9 Re-add light border around scrollbar thumb in light theme 2019-05-30 12:43:18 -07:00
Ken Powers 0e9d549cf3 Fuzzy-Searchable Emoji Picker 2019-05-24 17:03:13 -07:00
Ken Powers 29de50c12a Stickers
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-16 16:10:37 -07:00
Scott Nonnenberg b3ac1373fa Move left pane entirely to React 2019-03-12 17:44:14 -07:00
Scott Nonnenberg 1d6f1cbcca Fix width of audio player when window is very narrow 2019-02-05 13:55:55 -08:00
Vanja Cosic b26f6231d8 Get rid of the white flash when the app starts up (#3083)
* Prevent FOUC on startup, use Signal Blue instead

Instead of flashing a white background on startup, the app will show a blue background while everything is loading.

* Make sure tests are rendered on white background

* Use `icon_250.png` as the loading image

* Remove hardcoded 'Loading...' text from template
2019-02-05 09:25:05 -08:00
Vanja Cosic 993c85b88c Make non-message components of UI non-selectable (#3078)
* Make sidebar non-selectable
* Prevent selection of avatar and context menu text in conversation view
* Make loading view and conversation placeholder view non-selectable
* Make settings view contents non-selectable
2019-01-22 14:08:00 -08:00
Scott Nonnenberg 0de54e125c Improve caption editor usability, new 'add attachment' affordance 2019-01-15 10:51:49 -08:00
Scott Nonnenberg aab2a57b48 Some style and interaction fine-tuning 2019-01-14 17:40:31 -08:00
Scott Nonnenberg a8e12d0771 Add user's avatar to the top left of the screen 2018-10-01 18:18:37 -07:00
Scott Nonnenberg 04e8ebb270 Style scrollbar 2018-08-09 10:11:12 -07:00
Scott Nonnenberg bf63c7cc13 Ensure that safety number change banner is on top of messages 2018-08-07 17:43:48 -07:00
Scott Nonnenberg 6b78f2582b Fix styling of the 'Start conversation...' search result item 2018-08-02 17:19:56 -07:00
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 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 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 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 4e5c8965ff Move to react for newlines, emoji, and links in message body 2018-05-14 16:09:37 -07:00
Daniel Gasienica 9a74addc61 Prepend comments for infix comments in argument list 2018-05-04 17:22:00 -04:00
Daniel Gasienica 557693e14c Prettier: Format all stylesheets 2018-05-04 16:32:08 -04:00
Scott Nonnenberg a824e2b42d Start moving towards semantic CSS class names 2018-03-14 14:42:14 -07:00
Scott Nonnenberg 383e02edc4 New section in settings screen, full-screen 'are you sure?' 2018-03-14 14:42:13 -07:00
Scott Nonnenberg 59bee6690d Choose device name screen: Finish by pressing enter (#2085) 2018-03-02 15:34:51 -08:00
Scott Nonnenberg c87a035f1a Show View -> Debug on OSX, ensure Debug Log is visible (#2089)
* Ensure debug log is visible during registration/import

* Restore the proper View menu on MacOSX
2018-03-01 12:04:13 -08:00
Scott Nonnenberg 426dab85a2 New design for import/install, 'light' import (#2053)
- A new design for the import flow. It features:
  - Icons at the top of every screen
  - Gray background, blue buttons, thinner text
  - Simpler copy
- A new design for the install flow. It features:
  - Immediate entry into the QR code screen
  - Animated dots to show that we're loading the QR code from the server
  - Fewer screens: 1) QR 2) device name 3) sync-in-progress
- When not set up, the app opens directly into the install screen, which has been streamlined. The `--import` command-line argument will cause the app to open directly into the import flow.
- Support for two different flavors of builds - the normal build will open into the standard registration flow, and the import flavor will be exactly the same except during setup it will open directly into the import flow.
- A new design for the (dev-only) standalone registration view
- When these install sequences are active, the OS File menu has entries to allow you to switch the method of setup you'd like to use. These go away as soon as the first step is taken in any of these flows.
- The device name (chosen on initial setup) is now shown in the settings panel
- At the end of a light import, we hand off to the normal device link screen, starting at the QR code. On a full import, we remove the sensitive encryption information in the export to prevent conflicts on multiple imports.
- `Whisper.Backup.exportToDirectory()` takes an options object so you can tell it to do a light export.
- `Whisper.Backup.importFromDirectory()` takes an options object so you can force it to load only the light components found on disk. It also returns an object so you can tell whether a given import was a full import or light import.
- On start of import, we build a list of all the ids present in the messages, conversations, and groups stores in IndexedDB. This can take some time if a lot of data is in the database already, but it makes the subsequent deduplicated import very fast.
- Disappearing messages are now excluded when exporting
- Remove some TODOs in the tests
2018-02-22 10:40:32 -08:00