Commit Graph

574 Commits

Author SHA1 Message Date
Audric Ackermann 9b8ad976e3 remove not used AddServerDialog -> now on chanel section 2020-01-16 11:27:29 +11:00
Audric Ackermann 3dd175fda2 update loading screen logo 2020-01-16 10:52:41 +11:00
Vincent 2b7af04587 Message selection fixed and optimised for speed 2020-01-10 16:25:29 +11:00
Vincent dd421d58f1 Theme switching. Need to update _session*_light 2020-01-09 17:44:34 +11:00
Vincent 505697bbcd App view change working 2020-01-09 11:38:48 +11:00
Audric Ackermann 634aaa36d4 update loading screens with session subtitle 2020-01-03 17:07:41 +11:00
Audric Ackermann 7ba85921b1 replace loki with session on loading screens 2020-01-03 17:06:58 +11:00
Audric Ackermann b09ca5c751 remove not used headerview 2020-01-03 17:03:02 +11:00
Audric Ackermann c883d20bd7 add the left pane sections on main page 2020-01-03 17:03:02 +11:00
Vincent 6ee5d041fb Finishing up some modals 2019-12-30 17:38:28 +11:00
Vincent 2419272608 Updated React dialogs to SessionModals 2019-12-23 09:44:18 +11:00
Vincent 228e4ca81e Adding session settings to utilise toggles 2019-12-20 18:24:21 +11:00
Vincent e9d543fe4a Dropdown generalisation and simplification 2019-12-18 17:14:27 +11:00
Vincent 12011a30d4 Inital dropdown, modal and toggle 2019-12-18 11:50:19 +11:00
Vince 9cd27abf31
Merge branch 'brand-redesign' into brand-redesign 2019-12-17 11:04:15 +11:00
Vincent 4d463c659c Filesize toast amend 2019-12-16 17:38:43 +11:00
Audric Ackermann 4ad62284fa add an animation when showing the sessionID on registration 2019-12-16 09:38:34 +11:00
Audric Ackermann cc97d9284b add first chunck of our SessionRegistrationView 2019-12-16 09:21:20 +11:00
Ryan Tharp 5730a88c18 add/remove moderator modal dialogs 2019-12-10 00:17:45 -08:00
Maxim Shishmarev 5123fa0409
Merge pull request #669 from msgmaxim/restoration
Prompting the user to reset session on invalid ciphertext
2019-12-05 10:06:48 +11:00
Maxim Shishmarev 81bfa90943 Prompting the user to reset session on invalid ciphertext 2019-11-28 14:05:11 +11:00
Audric Ackermann 9992a3da1d Add a showUserDetails modal to display user's details
Relates #655
2019-11-28 10:02:20 +11:00
Maxim Shishmarev 2ab0d084f1
Merge pull request #645 from msgmaxim/group-invites
Public chat invitations
2019-11-25 16:29:02 +11:00
Maxim Shishmarev a5fce17d8c public chat invitations 2019-11-22 16:16:43 +11:00
sachaaaaa 94dd331cb1 Show pubkey QR code in pairing dialog (as primary) 2019-11-22 10:41:57 +11:00
Maxim Shishmarev 4dd314c18f Enable profile pictures 2019-11-18 17:34:41 +11:00
Beaudan Brown 685ada5cc5 Merge branch 'clearnet' into prep-merge 2019-11-15 12:31:40 +11:00
sachaaaaa 86168ef870 lower case variable 2019-11-06 15:41:39 +11:00
sachaaaaa 497f42165a Allow unpairing device 2019-11-06 10:52:34 +11:00
Maxim Shishmarev 8677fb15a0 Select multiple messages and bulk deletion 2019-11-06 10:26:21 +11:00
sachaaaaa 13572c3524
Merge branch 'multi-device' into paired_device_alias 2019-11-06 10:08:59 +11:00
sachaaaaa 46613de846 lint 2019-11-04 09:31:15 +11:00
sachaaaaa b324421534 Allow primary device to assign local aliases to paired devices 2019-11-01 16:18:30 +11:00
Maxim Shishmarev 0d19b708f9 Creating private group chats between friends 2019-11-01 11:57:49 +11:00
sachaaaaa 65361d33f5 New menu item "show pairing words" for secondary devices 2019-10-31 18:18:07 +11:00
Beaudan Brown 0defebc484 Final change 2019-10-28 13:59:33 +11:00
Beaudan Brown d97eced37b Merge branch 'clearnet' into multi-device 2019-10-23 16:34:56 +11:00
Beaudan Brown a3635216db Enable sending audio recordings 2019-10-23 15:00:14 +11:00
Beaudan Brown 22df66c08f Fix missing await, fix undefined bug 2019-10-23 14:55:09 +11:00
Beaudan Brown 3bdbf03658 Enforce display name 2019-10-23 14:55:09 +11:00
Beaudan Brown b66abca17d Disable files for friend requests 2019-10-22 13:52:32 +11:00
Beaudan Brown f0c198c7b7 Split uploadData to public and private 2019-10-22 13:36:30 +11:00
Beaudan Campbell-Brown c9b11814a6
Merge pull request #567 from BeaudanBrown/name-restriction
Display name restrictions 2
2019-10-22 13:35:58 +11:00
Beaudan Campbell-Brown ac80ef0d4e
Merge pull request #557 from BeaudanBrown/add-server
Add server
2019-10-22 13:16:23 +11:00
Beaudan Brown 602ec1ccaf Also block displayname characters in the edit display name menu and change spaces to underscores 2019-10-22 13:15:58 +11:00
Beaudan Brown f538aeea50 Remove old link preview system 2019-10-21 11:39:50 +11:00
Beaudan Brown 4e85435bf7 Update attachment pipeline to upload and download from loki fileserver 2019-10-16 15:58:49 +11:00
Beaudan Brown 39fac5fd02 Add initial add server UI skeleton 2019-10-09 14:06:57 +11:00
Beaudan Brown 8d6fee4aec Merge branch 'clearnet' into multi-device 2019-10-08 09:24:55 +11:00
sachaaaaa c4728cf4f3 Provide a cancel button instead of a timeout for secondary registration 2019-10-02 11:51:20 +10:00
Beaudan Brown 7b0f40535f QoL with auto focus display name box and enter/esc key functionality on profile screen. Restrict display name characters to alphanumeric (easy to work around) 2019-10-02 11:10:01 +10:00
sachaaaaa b63d8ec84f Merge branch 'clearnet' into multi-device
* clearnet: (35 commits)
  yarn lint
  return early if signature is not a string
  lint pass 2
  lint pass 1
  make sure versioning on write can't get out of sync
  Update js/modules/loki_public_chat_api.js
  Handle annotations omit correctly
  fix typo CI found
  refactor
  pollOnceForMessages() move lastGot up, address Sacha's review
  Update js/modules/loki_public_chat_api.js
  address review
  address reviews
  Custom message rendering of mentions
  fix method
  separate out new/open, more lint/cleanup
  separate out note to self
  create window.mixpanel here
  use window.mixpanel, remove eventEmitter
  lint and remove unneeded params
  ...
2019-09-26 11:08:55 +10:00
Maxim Shishmarev 1496a368e9 Add UI elements for searching and selecting members in a group chat 2019-09-18 10:08:16 +10:00
sachaaaaa 8ecf057386 Display list of paired device in modal 2019-09-16 18:15:43 +10:00
sachaaaaa 0426d85e7a Merge branch 'clearnet' into multi-device
* clearnet: (136 commits)
  Fix more check on deletion.
  Only shorten pubkeys if name is present
  Shorten pubkeys in quotations too
  better guard
  pass serverId back to the server
  Bump version.
  Purge cache on failure.
  Fix unnecessary link preview fetches.
  Review changes. Increase mod time to 30 seconds.
  Undo defaultPublicChatServer change,
  Modified colour of dark mod badge
  Linting.
  Updated design
  Show crown icon for moderators
  Fix last hash all being NULL in database
  Poll for moderators, store them on the conversation and use the list to determine our own mod status
  Make sure we are always updating the last deleted id
  Update ts/components/conversation/FriendRequest.md
  Fix #355 Display timestamp for friend requests
  Fix duplicate detection for sent messages in public chat
  ...

# Conflicts:
#	app/sql.js
#	js/background.js
#	js/models/messages.js
#	js/views/app_view.js
#	libloki/crypto.js
#	libtextsecure/message_receiver.js
2019-09-16 15:59:40 +10:00
Beaudan Brown a2cda31f1a Remove delete option from more info 2019-09-02 16:56:34 +10:00
sachaaaaa e50a29ffa5 Show 3 last mnemonic representation of public key instead of public key during pairing 2019-09-02 16:33:19 +10:00
Beaudan Campbell-Brown 48b6bf54c1
Merge pull request #461 from Mikunj/qr-code
Pubkey QR code
2019-09-02 15:52:39 +10:00
Mikunj 831ae09576 Cherry pick "profile simplification" from Mik 2019-09-02 14:16:23 +10:00
Mikunj 3380500a2d Added QR code viewing. 2019-09-02 11:31:07 +10:00
sachaaaaa 3a78f47cd7 Secondary device registration: UX changes (show countdown, disable button, etc.) 2019-08-30 11:53:45 +10:00
sachaaaaa 06d60fd68e
Merge pull request #431 from sachaaaaa/secondary_device_registration_view
[multi-device] Secondary device registration UI
2019-08-26 16:51:06 +10:00
sachaaaaa ac4038e86a Dialogs for device pairing requests - Primary device side 2019-08-26 10:33:21 +10:00
sachaaaaa 632e35c8a5 Secondary device registration UI 2019-08-23 16:41:16 +10:00
sachaaaaa 1f3f63dcc6 Report mnemonic error in a toast instead of silently fail 2019-08-09 16:08:22 +10:00
sachaaaaa 5cb7703ae5 Add one-time disclaimer at startup for beta release 2019-07-26 16:02:57 +10:00
Mikunj b8ef6c2cc6 Loki changes
Added friends section in search.

This is because contacts is now used in signal for something else and we don't want to clash meanings.

Styling fixes

Add dropdown options into mainheader

Updated styling

Restore StartNewConversation to the old ui style of loki messenger.

Fix friend search display.

Fix header expand animation.

Hooked up menu actions.

Linting.

More styling changes.

Fix tests.

Added back in the loki logo below the gutter.

Fix toast positioning.

Fix context menu showing incorrectly on virtual lists.

Added tabs.

Linting
2019-04-24 13:25:20 +10:00
Mikunj 8808100796 Merge signal-1.24.0
# Conflicts:
#	.github/PULL_REQUEST_TEMPLATE.md
#	background.html
#	config/default.json
#	config/production.json
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_view.js
#	js/views/inbox_view.js
#	js/views/settings_view.js
#	main.js
#	package.json
#	test/index.html
#	ts/components/conversation/ContactName.tsx
#	yarn.lock
2019-04-18 12:45:19 +10:00
Mikunj 3a8111020e Merge v1.23.0
# Conflicts:
#	background.html
#	package.json
#	yarn.lock
2019-04-18 11:12:02 +10:00
Mikunj 5d916748ae Fix styling 2019-04-18 11:05:01 +10:00
Mikunj 12ce0140de Left pane changes.
Merge commit 'b3ac1373fa64117fe2a9ccfddf3712f1826c06d9' into signal-1.23

# Conflicts:
#	_locales/en/messages.json
#	background.html
#	js/background.js
#	js/conversation_controller.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_list_item_view.js
#	js/views/conversation_list_view.js
#	js/views/conversation_search_view.js
#	js/views/inbox_view.js
#	libtextsecure/account_manager.js
#	package.json
#	stylesheets/_global.scss
#	stylesheets/_index.scss
#	stylesheets/_modules.scss
#	test/_test.js
#	test/index.html
#	test/models/conversations_test.js
#	test/views/conversation_search_view_test.js
#	ts/components/ConversationListItem.tsx
#	ts/components/MainHeader.tsx
#	ts/components/conversation/ConversationHeader.tsx
#	ts/components/conversation/ResetSessionNotification.tsx
2019-04-17 16:42:09 +10:00
Mikunj e343a04eea Merge commit '18b5b7c046436f2defab2e20407e22da180bf97b' into signal-1.22
# Conflicts:
#	app/sql.js
#	background.html
#	config/default.json
#	js/background.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/modules/data.js
#	js/signal_protocol_store.js
#	js/views/conversation_search_view.js
#	libtextsecure/message_receiver.js
#	libtextsecure/sendmessage.js
#	main.js
#	package.json
#	preload.js
#	test/index.html
#	ts/components/Avatar.tsx
#	ts/components/conversation/ConversationHeader.md
#	ts/components/conversation/ConversationHeader.tsx
2019-04-17 11:59:54 +10:00
Beaudan Campbell-Brown cab389fe2e
Merge pull request #267 from BeaudanBrown/move-filtering
Persistent last hash
2019-04-17 09:37:33 +10:00
Beaudan 960bd3fff2 Move JobQueue to be a module so that we can use it in preload 2019-04-15 15:26:48 +10:00
Mikunj b2ecb87462 Review fixes 2019-04-15 10:31:19 +10:00
Mikunj c7130a3bbb Added password confirmation dialog before showing seeds. 2019-04-12 14:48:15 +10:00
Scott Nonnenberg 74cb808763 New MessageController as the single place for in-memory messages 2019-04-04 17:17:19 -07:00
Mikunj ae8b3899ad Changed registration to be a 2 step process. 2019-04-04 11:09:50 +11:00
Scott Nonnenberg 8c4d90df07 Send long text as an attachment instead of inline
Remove Android length warning

Handle incoming long message attachments

Show long download pending status in message bubble

Fix the width of the smallest spinner

Remove Android length warning from HTML templates
2019-03-14 17:30:46 -07:00
Scott Nonnenberg b3ac1373fa Move left pane entirely to React 2019-03-12 17:44:14 -07:00
Scott Nonnenberg 5b54c9554e Remove groups table, conversation is single source of truth 2019-02-13 16:04:58 -08:00
Mikunj 8f8e25bb3e Added local link preview 2019-02-08 12:22:00 +11: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
Mikunj 926362f88a Rename queue_manager to job_queue 2019-02-05 10:45:46 +11:00
Beaudan fac8e72861 Added queue manager to properly fix the race condition bug and reset the changes I made in other commit 2019-02-04 11:14:31 +11:00
Mikunj 1a15ec9c15 Merge commit signal/master into signal-1.20 2019-01-22 13:54:03 +11:00
Scott Nonnenberg 0ba25ff8d5 Multiple images can now be selected in file chooser and drag/drop 2019-01-17 10:17:10 -08:00
Scott Nonnenberg 1e4b562922 Multiple images can now be selected in file chooser and drag/drop 2019-01-16 10:32:57 -08:00
Mikunj 4d1f4fcb4f Moved loki_protocol_store.js into libloki/storage.js 2019-01-10 11:53:12 +11:00
Scott Nonnenberg 985b1d6aa6 New staged attachments UI, multiple image attachments per message 2019-01-04 12:21:26 -08:00
Mikunj a0b814bf7c limit max message length to 2000 characters.
Set task time limit to 3 minutes.
2018-12-19 14:05:57 +11:00
Mikunj 654b0dac84 Merge signal-master. 2018-12-17 12:56:04 +11:00
Mikunj f92cc6cbd4 Added menu option to view seed. 2018-12-12 11:27:47 +11:00
Mikunj 0491ceacf1 Added seed dialog.
Fixed issue where incorrect language was used to generate seed.
2018-12-12 11:27:41 +11:00
sachaaaaa a1255dd31e
Merge pull request #77 from Mikunj/password-protection
Password protection
2018-12-10 16:28:10 +11:00
Mikunj 0cfabb5ffa Added unread indicator in conversations sections. 2018-12-10 12:41:22 +11:00
Mikunj 0b87f13699 Added password dialog view. 2018-12-07 15:34:16 +11:00
Mikunj f53bec38a5 Added password inputs on registration screen.
Fix case where db is deleted but password hash still remains which causes user to never register.
Allow password to have symbols and other characters.
Added more tests.

Moved passHash from config into the sqlite db.
We can do this because we assume if sql failed to initialise then the key provided was wrong and thus we can show the user the password page.
2018-12-06 15:47:37 +11:00
Mikunj 6620244d03 Show main window on correct password; 2018-12-06 15:39:17 +11:00
Beaudan 1e3886cca8 More consistent naming of key storage functions, moved some loki messenger only functions into new file 2018-12-06 12:28:00 +11:00
Mikunj 62c802445b Allow generating mnemonic for different languages. 2018-12-05 12:03:40 +11:00
Mikunj cea78d1f98 Updated styling.
Reworded descriptions and titles.
2018-12-05 10:05:40 +11:00
Mikunj 53194e057a Added mnemonic warning. 2018-12-04 15:31:59 +11:00
Mikunj 8c78a78b41 Converted to dark theme. 2018-12-04 15:31:59 +11:00
Mikunj 85298012e4 Added generation of seed in registration. 2018-12-04 15:31:59 +11:00
Mikunj 89a19fd09b Added accordian style to registration view 2018-12-04 15:31:59 +11:00
Mikunj 1cb09cad2a Add header options. 2018-12-04 08:47:09 +11:00
Mikunj 14ecbc3f35 Moved MainHeader into its own Backbone View. 2018-12-04 08:47:09 +11:00
Mikunj cb3599eea8 Removed IdentityKeyHeader. 2018-12-04 08:47:09 +11:00
Mikunj 06f79eb3fd Allow user to set display name when registering. 2018-12-03 08:55:43 +11:00
Mikunj d6d71cb51e Show all contacts. 2018-11-29 16:02:02 +11:00
Mikunj 3eb193cca2 Added accordian 2018-11-29 16:02:02 +11:00
Mikunj fbc3832cfb Show friends in inbox. 2018-11-29 16:02:02 +11:00
Mikunj d1d906cfc0 Updated conversation textarea styling. 2018-11-29 16:02:02 +11:00
Mikunj 62135a1810 Added a section below conversation list.
Fixed scrolling on conversations.
2018-11-29 16:02:02 +11:00
Mikunj ac4e04912c Minor language fixes. 2018-11-28 10:44:44 +11:00
Mikunj 98c4b5d77b Added editing own nickname.
Fix dark theme support.
Fix notification titles.
2018-11-28 10:31:11 +11:00
Mikunj 6ce9d6a08c Added nickname dialog. 2018-11-28 10:31:11 +11:00
Mikunj 774c52a407 Added dynamic profile fetching in conversation.
Added setting profile when sending DataMessage.
2018-11-28 10:31:11 +11:00
Scott Nonnenberg 79a861a870 Typing Indicators 2018-11-26 15:26:04 -08:00
Mikunj 8cc9b7b54b Added blocked number model and collection.
Added blocked number controller.
Hooked up BlockedNumberController loading.
2018-11-16 15:31:00 +11:00
Mikunj f589fdac5c Merge signal changes into branch. 2018-11-07 15:26:37 +11:00
Scott Nonnenberg 1755e0adfd Move all remaining stores to SQLCipher 2018-10-31 17:36:51 -07:00
sachaaaaa 7b1fbe362e Allow choosing language for mnemonic seed 2018-10-31 15:18:48 +11:00
sachaaaaa bbabeb34b8
Merge pull request #18 from sachaaaaa/mnemonic
Allow registering using a mnemonic word list
2018-10-31 13:56:16 +11:00
sachaaaaa e1ffe582c3 Prompt user when an incoming friend request is received 2018-10-25 15:18:32 +11:00
sachaaaaa 143b1e883d
Merge pull request #17 from sachaaaaa/lock_input_friend_request
Lock input after friend request is sent
2018-10-25 10:47:38 +11:00
sachaaaaa a418a9d23b allow registering using a mnemonic word list (seed used as privKey for now) 2018-10-24 10:13:54 +11:00
sachaaaaa 9370e2b74a Merge branch 'master' of https://github.com/signalapp/Signal-Desktop into development
* 'master' of https://github.com/signalapp/Signal-Desktop: (38 commits)
  v1.17.0
  v1.17.0-beta.4
  Ensure that blue group avatars are preserved in dark theme
  Android theme: Incoming quotes take color from containing message
  Conversations have blue avatar backgrounds if no image provided
  Fix lint errors
  Add ca language
  inboxView: Ensure Conversation exists for our own number
  Ensure that file is not attached if we've filtered it
  v1.17.0-beta.3
  Localization updates
  v1.16.3
  Lint fixes
  Lint fixes
  Better handle large numbers of messages in cache on startup
  Keep object stores after conversations migrate to SQLCipher
  Longer timeout for orphaned file cleanup
  Tests and increase consistency for isFileDangerous calls
  Longer timeout for orphaned file cleanup
  v1.17.0-beta.2
  ...

# Conflicts:
#	background.html
#	package.json
2018-10-23 13:32:08 +11:00
sachaaaaa d4d0d05adf Lock text input while waiting for friend request reply 2018-10-18 13:42:06 +11:00
sachaaaaa 04b45f6aa1 Decrypt friend-request messages (the ones using fallback encryption). Moved logic into a new file libloki-protocol.js and concat loki code into js/libloki.js 2018-10-08 15:04:14 +11:00
Scott Nonnenberg a8e12d0771 Add user's avatar to the top left of the screen 2018-10-01 18:18:37 -07:00
jcktm 09a0c46637 added identity key above the conversation box 2018-08-18 21:48:38 +10:00
sachaaaaa 692362d290 Small rebranding 2018-08-17 16:34:42 +10:00
sachaaaaa 9638639045 Bypass SMS verification 2018-08-16 13:49:48 +10: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 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 01be58acc2 Remove formatting in importError localization string 2018-05-23 16:26:48 -07:00
Scott Nonnenberg 503884dbb6 Remove unused app-migration-screen template 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 a5416e42c4 Refactor all emoji utility methods into window.Signal.Emoji 2018-05-23 16:26:47 -07:00
Scott Nonnenberg 32e2c6dcb5 Add form-action: 'self' to CSP for defense in depth 2018-05-23 16:26:47 -07:00
Scott Nonnenberg a4bc460d4c Fix malformed CSP 2018-05-14 16:45:04 -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 3a8582ee16 Re-enable media gallery access 2018-04-27 16:31:42 -04:00
Scott Nonnenberg ac0b50d20f
Generate thumbnails for new video attachments, video quotes 2018-04-25 18:32:46 -07:00
Daniel Gasienica c8e51f1d06 Disable media gallery access until feature is complete 2018-04-25 15:25:12 -04:00
Daniel Gasienica 9abf1f0fcd Use `dash-case` for CSS class names 2018-04-25 15:24:52 -04:00
Daniel Gasienica 4a5a2cb5c1 Replace Backbone with React lightbox 2018-04-25 15:24:51 -04:00