Commit Graph

19 Commits

Author SHA1 Message Date
Scott Nonnenberg 924c271b13
Convert js/modules/types/message to Typescript 2022-06-09 18:10:20 -07:00
Josh Perez 2f44e33c9c
Move link notification to the conversation hero 2022-04-25 14:03:24 -07:00
Evan Hahn 5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Evan Hahn 74fde10ff5
Prefer `import type` when importing types 2021-10-26 14:15:33 -05:00
Fedor Indutny c3bdf3d411
Show lightbox for GIFs 2021-07-14 16:39:52 -07:00
Evan Hahn 8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Scott Nonnenberg d75eee015f Show notifications when a user's profile name changes 2020-07-30 13:27:44 -07:00
Josh Perez 4830213a12 Sort by inbox position to match phone after link 2020-03-24 17:02:01 -07:00
Scott Nonnenberg d42eb2126e Changes to View Once 2019-08-05 16:23:47 -07:00
Scott Nonnenberg e62a1a7812 Receive support for View Once photos 2019-07-17 11:29:51 -07:00
Scott Nonnenberg 3feb0037e5 Ensure that long message attachments don't show in media gallery 2019-06-21 16:13:42 -07:00
Daniel Gasienica 16bc1d34c6 Message schema 6: Change classification of media and documents
For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
2018-05-08 16:41:07 -04:00
Daniel Gasienica 87d374ea78 Remove `@prettier` pragmas 2018-04-30 16:53:34 -04:00
Daniel Gasienica f36f206a01 Use `IndexablePresence` for `hasFileAttachments` and `hasVisualMediaAttachments`
Reduces index size, makes it easier to debug using IndexedDB inspector, and
hopefully improves lookup performance.
2018-04-25 15:25:12 -04:00
Daniel Gasienica 648a7ab1bb Autoformat using Prettier 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 ae4c74dd5b Skip metadata initialization for `verified-change` messages 2018-04-25 15:24:51 -04:00
Daniel Gasienica 424965f876 🎨 Autoformat code 2018-04-25 15:24:51 -04:00
Daniel Gasienica 867bece952 Add `Message.initializeAttachmentMetadata` 2018-04-25 15:24:50 -04:00