Daniel Gasienica
e5d90775d0
Add MapAsync
type definition
2018-04-25 15:24:51 -04:00
Daniel Gasienica
648a7ab1bb
Autoformat using Prettier
2018-04-25 15:24:51 -04:00
Daniel Gasienica
e07458d886
Add basic Backbone type definitions
2018-04-25 15:24:51 -04:00
Daniel Gasienica
9d84b2f420
Index messages with attachments using a boolean
...
When indexing message attachment metadata using numeric indexes such as:
```javascript
{
conversationId: '+12223334455',
received_at: 123,
attachments: […],
numAttachments: 2,
},
{
conversationId: '+12223334455',
received_at: 456,
attachments: [],
numAttachments: 0,
}
{
conversationId: '+12223334455',
received_at: 789,
attachments: [],
numAttachments: 1,
}
```
It creates an index as follows:
```
[conversationId, received_at, numAttachments]
['+12223334455', 123, 2]
['+12223334455', 456, 0]
['+12223334455', 789, 1]
```
This means a query such as…
```
lowerBound: ['+12223334455', 0, 1 ]
upperBound: ['+12223334455', Number.MAX_VALUE, Number.MAX_VALUE]
```
…will return all three original entries because they span the `received_at`
from `0` through `Number.MAX_VALUE`. One workaround is to index booleans using
`1 | undefined` where `1` is included in the index and `undefined` is not, but
that way we lose the ability to query for the `false` value. Instead, we flip
adjust the index to `[conversationId, hasAttachments, received_at]` and can
then query messages with attachments using
```
[conversationId, 1 /* hasAttachments */, 0 /* received_at */]
[conversationId, 1 /* hasAttachments */, Number.MAX_VALUE /* received_at */]
```
2018-04-25 15:24:51 -04:00
Daniel Gasienica
c46e1a1519
Move top-level functions to Signal.Util
2018-04-25 15:24:51 -04:00
Daniel Gasienica
a609c31a57
Style attachment section headers
2018-04-25 15:24:51 -04:00
Daniel Gasienica
ae4c74dd5b
Skip metadata initialization for verified-change
messages
2018-04-25 15:24:51 -04:00
Daniel Gasienica
b0fefdbb98
Implementing grouping messages by date
2018-04-25 15:24:51 -04:00
Daniel Gasienica
424965f876
🎨 Autoformat code
2018-04-25 15:24:51 -04:00
Daniel Gasienica
f367a9b059
Move private
method below public
ones
2018-04-25 15:24:51 -04:00
Daniel Gasienica
3d70e46aea
Calculate dates in UTC
2018-04-25 15:24:51 -04:00
Daniel Gasienica
d7b21ef5dc
Render attachments grouped by date
2018-04-25 15:24:51 -04:00
Daniel Gasienica
e34347f290
Add groupMessagesByDate
2018-04-25 15:24:51 -04:00
Daniel Gasienica
9053b6acfc
Remove unused style
2018-04-25 15:24:51 -04:00
Daniel Gasienica
66516fd36a
Use short format for dates
2018-04-25 15:24:51 -04:00
Daniel Gasienica
923d5ff088
Add missingCaseError
function
2018-04-25 15:24:51 -04:00
Daniel Gasienica
fc1c3aabf5
Add scaffolding for media gallery
2018-04-25 15:24:51 -04:00
Daniel Gasienica
a8be4f2d8d
Expose Lodash in style guide
2018-04-25 15:24:51 -04:00
Daniel Gasienica
94ef3bab80
Move test file
2018-04-25 15:24:50 -04:00
Daniel Gasienica
32a3ef518b
Render media gallery placeholder panel
2018-04-25 15:24:50 -04:00
Daniel Gasienica
f9e4613395
Move TS test for message migration
2018-04-25 15:24:50 -04:00
Daniel Gasienica
867bece952
Add Message.initializeAttachmentMetadata
2018-04-25 15:24:50 -04:00
Daniel Gasienica
c5352cf26c
Separate required from optional Message
keys
2018-04-25 15:24:50 -04:00
Daniel Gasienica
fc12353bb8
Add Attachment.isVisualMedia
2018-04-25 15:24:50 -04:00
Daniel Gasienica
47cc701e72
Add GoogleChrome
module
...
Helps us determine which media we can natively display / play back in Electron.
2018-04-25 15:24:50 -04:00
Daniel Gasienica
6ff82adf0a
Add MIME.isImage
and MIME.isVideo
2018-04-25 15:24:50 -04:00
Daniel Gasienica
df2e6e7864
Port MIME
module to TypeScript
2018-04-25 15:24:50 -04:00
Scott Nonnenberg
ef1d568a80
Restore rendering of group update and end session messages
...
The previous work to refactor bubbles broke rendering for these message
types. :0/
2018-04-23 19:16:00 -07:00
Scott Nonnenberg
fdc13d0af3
Fix some tslint errors
...
I really need to get it running in my editor!
2018-04-20 16:19:53 -07:00
Scott Nonnenberg
bd88407b78
iOS theme: Permanant background to attachment part of bubble
...
(this is to handle a quote making bubble wider, but a narrow image)
2018-04-20 16:02:33 -07:00
Scott Nonnenberg
21713cbce7
Update quotes to render emoji just like normal messages
2018-04-20 15:24:05 -07:00
Scott Nonnenberg
37cac717cb
Use fit: cover for non-square thumbnails, better movie icon
...
Also: Match Android's X button in the quote composition area
2018-04-20 15:23:55 -07:00
Scott Nonnenberg
12257e1560
MessageView: Show menu w/ 'reply to message' on triple-dot click
2018-04-20 15:23:55 -07:00
Scott Nonnenberg
f4d9ab8ba0
Put quote preview in text box for Android, above it in iOS
2018-04-20 15:23:54 -07:00
Scott Nonnenberg
c71dcf0139
Show current quoted message above composition field
...
Note that substantial changes will be required for the updated Android
mockups, putting the quotation into the text box next to the attachment
preview.
2018-04-20 15:23:51 -07:00
Scott Nonnenberg
d29162f3b6
CSS Refactor: Pull quote CSS out from parent classes
...
This is to prepare for it to be shown in the message composition area.
2018-04-20 15:23:50 -07:00
Scott Nonnenberg
26e4e97592
Tighten up CSS
...
- Remove extra padding at top of Android bubbles, via sibling selector
- Don't include .attachments, .quote-wrapper, .content in bubble unless
we actually need them. This allows for sibling selectors.
- This is a different technique for adding the ReactWrapperView for
quotes - it is now appended to the DOM instead of attaching to
something already in the DOM. This allows us to use .remove(), so it's
a bit cleaner.
- Users of ReactWrapperView can now specify tagName and className
2018-04-20 15:23:47 -07:00
Scott Nonnenberg
a563dc8b37
Style Guide: Additional message examples, a few fixes to enable
2018-04-20 15:23:47 -07:00
Scott Nonnenberg
5af5bbdb0f
Add style guide examples for portrait/landscape images
2018-04-20 15:23:46 -07:00
Scott Nonnenberg
e3d15d80f6
Quote.md: Fix image example, add examples for attachment + reply
2018-04-16 13:02:51 -07:00
Scott Nonnenberg
7bd747a796
ConversationContext: conversationType => type
...
And a group conversation example to messages.md
2018-04-13 18:10:52 -07:00
Scott Nonnenberg
3bbbf65a6b
Fix iOS: tail, blue partial border, extra attachment space
...
Turns out that display: inline on the img tag resulted in a mysterious
3px of space added below it.
2018-04-13 18:10:52 -07:00
Scott Nonnenberg
c283ba1a12
Remove pointer cursor when clicking on quote won't do anything
2018-04-13 18:10:51 -07:00
Scott Nonnenberg
fce9bb7342
Move to central MIME functions, remove some console.log
...
And generally address PR feedback.
2018-04-13 18:10:51 -07:00
Scott Nonnenberg
d91f40177e
Quote.tsx: Fix tslint errors
...
I really need to get tslint editor integration in place.
2018-04-13 18:10:50 -07:00
Scott Nonnenberg
a0b1dea693
Introduce a bit of color to the message/attachment style guide
2018-04-13 18:10:50 -07:00
Scott Nonnenberg
b458c7d449
android-dark: Constrain light play icon to with peer image
2018-04-13 18:10:49 -07:00
Scott Nonnenberg
bdaebc24ae
A few tweaks for the android-dark theme
2018-04-13 18:10:49 -07:00
Scott Nonnenberg
087dd0f758
Support for iOS theme
2018-04-13 18:10:49 -07:00
Scott Nonnenberg
644bc9e6fb
Fix problem of squished quote icons and images
2018-04-13 18:10:49 -07:00
Scott Nonnenberg
2243e348f1
Wire up fake window.Signal.HTML because it's captured on load
2018-04-13 18:10:48 -07:00
Scott Nonnenberg
0f8dd7e2db
Fix a number of lint failures
2018-04-13 18:10:48 -07:00
Scott Nonnenberg
1cc0633786
Full support for quotations in Android theme
2018-04-13 18:10:48 -07:00
Scott Nonnenberg
21bf02c94d
Fixed examples in Quote.md, rough Android visuals
2018-04-13 18:05:44 -07:00
Scott Nonnenberg
6653123671
Move quote-related examples from Message.md to Quote.md
2018-04-13 18:05:44 -07:00
Scott Nonnenberg
b4ce79cac0
Reply -> Quote
2018-04-13 18:05:43 -07:00
Scott Nonnenberg
09c3fbc5e2
Style guide: All permutations of text reply to diff. quote types
2018-04-13 18:05:43 -07:00
Scott Nonnenberg
ae043bf239
In iOS theme, join attachment bubble with caption bubble
2018-04-13 18:05:42 -07:00
Scott Nonnenberg
3a76c3c86e
Styleguide: Incoming/outgoing attachments of all types
2018-04-13 18:05:42 -07:00
Daniel Gasienica
44debd123d
Add basic implementation of Conversation.updateFromLastMessage
2018-04-11 19:34:21 -04:00
Daniel Gasienica
cca5db3237
Remove unused import
2018-04-11 19:25:38 -04:00
Daniel Gasienica
1659354f51
Expand Message
type definitions
2018-04-11 19:25:38 -04:00
Daniel Gasienica
b50c55172d
Add MIME
type
2018-04-11 19:25:38 -04:00
Daniel Gasienica
65bf34d1b8
Add basic Attachment
type definition
2018-04-11 19:25:38 -04:00
Daniel Gasienica
f25a579f32
Add basic Message
type definition
2018-04-11 19:25:38 -04:00
Daniel Gasienica
bcd3e26377
Fix TS warning about appendChild
2018-04-11 19:25:30 -04:00
Daniel Gasienica
55fc21505e
Rename ts/test
to ts/styleguide
2018-04-11 16:36:42 -04:00
Daniel Gasienica
9d41b86162
Remove escaping from linkText
...
We leverage jQuery’s HTML escaping in `$.html(…)`.
2018-04-11 16:36:42 -04:00
Daniel Gasienica
f04c65088b
Fork link-text
module
2018-04-11 16:36:42 -04:00
Daniel Gasienica
144cb58a47
Add HTML
module for rendering messages
2018-04-11 16:36:42 -04:00
Daniel Gasienica
f38370f40e
Add custom type definition for link-text
2018-04-11 16:36:42 -04:00
Scott Nonnenberg
96bd90a4e0
Simplify assignment; add warning to preload.js about Style Guide
2018-04-05 17:16:15 -07:00
Scott Nonnenberg
05303233fb
window.Signal.React -> window.Signal.Components
2018-04-05 16:10:59 -07:00
Scott Nonnenberg
23537546fe
Big refactor: ts/ directory for all typescript, including react
...
Split out test-specific and general utility react components too.
And moved our test/legacy* files for the Style Guide into a styleguide/
subdirectory of test/.
I think we'll be able to live in this directory structure for a while.
2018-04-05 15:30:40 -07:00