Commit Graph

4062 Commits (47adbe4358e67856cbc7f3d50cb85bafc63fc39e)
 

Author SHA1 Message Date
Daniel Gasienica 320a8d31c1 TSLint: Allow multiline JS in JSX for CSS-in-JS 7 years ago
Daniel Gasienica cd2a02a626 Add TSLint Prettier overrides 7 years ago
Daniel Gasienica 082ef98a56 Add type definition for `deferredToPromise` 7 years ago
Daniel Gasienica e07458d886 Add basic Backbone type definitions 7 years ago
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 */]
```
7 years ago
Daniel Gasienica c46e1a1519 Move top-level functions to `Signal.Util` 7 years ago
Daniel Gasienica 5ec8b1c6e1 Add `@types/jquery` 7 years ago
Daniel Gasienica a609c31a57 Style attachment section headers 7 years ago
Daniel Gasienica ae4c74dd5b Skip metadata initialization for `verified-change` messages 7 years ago
Daniel Gasienica b0fefdbb98 Implementing grouping messages by date 7 years ago
Daniel Gasienica dea56c0008 Autoformat TSX files 7 years ago
Daniel Gasienica 424965f876 🎨 Autoformat code 7 years ago
Daniel Gasienica 2fae89f0e8 Add trailing commas to autoformatted code 7 years ago
Daniel Gasienica 347fc8287a Add `yarn format` to autoformat code
Uses Prettier under the hood. Requires opt-in via `@prettier` pragma:
https://prettier.io/docs/en/options.html#require-pragma
7 years ago
Daniel Gasienica 56a5006392 Remove duplicate `@types/lodash` dependency 7 years ago
Daniel Gasienica 8edbd06e43 TSLint: Enforce UNIX line breaks 7 years ago
Daniel Gasienica a8bca9b8eb TSLint: Enforce indentation with 2 spaces
Not sure if this rule actually works.
7 years ago
Daniel Gasienica 04acdebe48 TSLint: Align various syntax elements 7 years ago
Daniel Gasienica 9858e0e680 Fix translation description 7 years ago
Daniel Gasienica 39d5f3c413 Enable strict type checking features 7 years ago
Daniel Gasienica 99921ed848 Enable strict `null` checks 7 years ago
Daniel Gasienica 3a8c3ccdab Add `prettier` 7 years ago
Daniel Gasienica f367a9b059 Move `private` method below `public` ones 7 years ago
Daniel Gasienica 832b6309a2 Limit line length 7 years ago
Daniel Gasienica cf1d621bce Allow line breaks in long `import` statements 7 years ago
Daniel Gasienica 3d70e46aea Calculate dates in UTC 7 years ago
Daniel Gasienica d7b21ef5dc Render attachments grouped by date 7 years ago
Daniel Gasienica e34347f290 Add `groupMessagesByDate` 7 years ago
Daniel Gasienica 9053b6acfc Remove unused style 7 years ago
Daniel Gasienica ae419764bf Use arrow function over `.bind` 7 years ago
Daniel Gasienica a86a596f34 Add translations for section headers in media gallery 7 years ago
Daniel Gasienica 66516fd36a Use short format for dates 7 years ago
Daniel Gasienica 923d5ff088 Add `missingCaseError` function 7 years ago
Daniel Gasienica fc1c3aabf5 Add scaffolding for media gallery 7 years ago
Daniel Gasienica a8be4f2d8d Expose Lodash in style guide 7 years ago
Daniel Gasienica 8ef04cb1fd Move `@types/*` dependencies to `devDependencies` 7 years ago
Daniel Gasienica 10bede85c9 Add `filesize` dependency 7 years ago
Daniel Gasienica 94ef3bab80 Move test file 7 years ago
Daniel Gasienica 272c49c5bf Use existing `ReactWrapper` 7 years ago
Daniel Gasienica 32a3ef518b Render media gallery placeholder panel 7 years ago
Daniel Gasienica f9e4613395 Move TS test for message migration 7 years ago
Daniel Gasienica 5f220a7b2c Add migration for media gallery indices 7 years ago
Daniel Gasienica 273248d3fd Wire up ‘View All Media’ menu item 7 years ago
Daniel Gasienica d14761087a Add schema version 4: Attachment metadata 7 years ago
Scott Nonnenberg 7d11efc50b ConversationView: Add 'View All Media' menu item 7 years ago
Daniel Gasienica 867bece952 Add `Message.initializeAttachmentMetadata` 7 years ago
Daniel Gasienica c5352cf26c Separate required from optional `Message` keys 7 years ago
Daniel Gasienica fc12353bb8 Add `Attachment.isVisualMedia` 7 years ago
Daniel Gasienica 47cc701e72 Add `GoogleChrome` module
Helps us determine which media we can natively display / play back in Electron.
7 years ago
Daniel Gasienica 9533c09707 Add `@types/lodash` 7 years ago