Nathan Sobo
a1f0693599
Specify full TextStyles in EditorStyle
2021-09-16 14:12:38 -06:00
Nathan Sobo
606aa148a6
Require a build_style callback to be passed to Editor on construction
...
We're going to use this to control the text style, so it really doesn't make sense to allow an editor to be constructed without it.
2021-09-16 13:20:12 -06:00
Antonio Scandurra
79fb3aa8af
Add migration to add a nonce
column to channel_messages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-16 17:43:43 +02:00
Antonio Scandurra
8973e250ca
Re-send pending messages after reconnecting
2021-09-16 16:23:43 +02:00
Max Brunsfeld
caf0f0e428
Fix duplicated results in get_users_by_ids
2021-09-15 16:45:41 -07:00
Max Brunsfeld
31b5602dc1
Get server integration tests passing again
...
* Set up UserStore to have the current user, so that
channel messages can be sent. This is needed now that
pending messages are represented more similarly to
regular messages.
* Drop buffer inside of an `AppContext.update` block, so that
the Buffer's release hook is called in time.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-15 16:17:07 -07:00
Antonio Scandurra
f6bf0792ce
Merge branch 'render-images'
2021-09-15 12:11:08 +02:00
Nathan Sobo
7e4d5b7d04
Clear cached credentials when establishing a websocket connection with an invalid token
2021-09-14 20:36:03 -06:00
Nathan Sobo
4a9918979e
WIP: Clear cached credentials if authentication fails
...
Still need to actually handle an HTTP response from the server indicating there was an invalid token.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 19:19:11 -06:00
Nathan Sobo
44a457e8b6
Cache credentials in memory separately from connection status
...
This prevents us from re-prompting for keychain access when we retry connections after the connection is lost.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 18:21:46 -06:00
Max Brunsfeld
aa7c1bfa2d
Fix type errors in server tests
2021-09-14 17:15:17 -07:00
Nathan Sobo
e0e0bdbc3a
Synthesize GitHub avatar URL and follow redirects when fetching it
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 16:28:26 -06:00
Max Brunsfeld
84d4bb6186
Introduce HttpClient trait, use it to fetch avatars in UserStore
...
* Add a FakeHttpClient for tests
2021-09-14 13:42:44 -07:00
Nathan Sobo
4be17b7a9b
Fix signups query
2021-09-14 13:23:35 -06:00
Nathan Sobo
f0019e3725
WIP
2021-09-14 12:29:56 -06:00
Nathan Sobo
c14ebb264f
Make release notes look better with more than 1 release
2021-09-13 13:23:06 -06:00
Max Brunsfeld
c58e335b87
Make UpdateBuffer
a request, store unsent operations on worktree
2021-09-09 11:26:06 -07:00
Max Brunsfeld
38bfaba135
Add a generic Ack
message, use it instead of Pong
...
Remove the `id` field from `Ping`, because it isn't used.
There is already an id on the message envelope.
2021-09-09 11:24:16 -07:00
Antonio Scandurra
3c61a3e826
Ensure client A and B can communicate after reconnection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-09 15:40:35 +02:00
Antonio Scandurra
156fd4ba57
Add integration test simulating killing a connection while chatting
2021-09-09 13:27:44 +02:00
Antonio Scandurra
34d8f99714
Respond to RPC pings in the server
2021-09-09 11:08:41 +02:00
Antonio Scandurra
ad7631de9f
Refactor and write a simple unit test to verify reconnection logic
2021-09-09 11:00:43 +02:00
Max Brunsfeld
b6eac57f63
Introduce a concrete Conn
type for peer's websocket connection
...
This is mostly to set us up to test the rpc::Client's reconnect
logic.
There are multiple ways that the `rpc::Client` may establish
its websocket connection: (SSL in production, plain TCP during
local development, and using an in-memory connection for tests).
Now we can represent all of those connections using a common type.
Also, several long methods no longer need to be generic, which
is good for compile time.
2021-09-08 18:14:47 -07:00
Antonio Scandurra
900010160f
WIP
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-08 18:58:59 +02:00
Antonio Scandurra
af6e931da7
Start on a Client::status
method that can be observed
2021-09-08 15:58:16 +02:00
Antonio Scandurra
058691d2b2
Focus chat input editor after signing in
2021-09-07 13:57:30 +02:00
Antonio Scandurra
00f6bdcb24
Bundle and use Inconsolata v2.012
...
There's a newer version of the font available but ligatures seem
broken googlefonts/Inconsolata#58 and googlefonts/Inconsolata#52 .
As part of this commit I also upgraded rust-embed to use the new
exclusion feature, which allows us to skip embedding OS files like
`.DS_Store`.
2021-09-04 17:02:20 +02:00
Antonio Scandurra
6fec9e1f70
Include sanitized message in SendChannelMessageResponse
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-02 18:31:24 +02:00
Antonio Scandurra
a27a17b8e2
Make scrolling up in chat panel smoother
...
This increases the threshold at which we start loading new messages
as well as the amount of messages we get back from the server every
time we fetch.
Also, we restructured the seed binary to use the methods in `Db` to
generate seed data and added random chat messages.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 16:05:34 +02:00
Antonio Scandurra
ef89ceae4d
Take &mut self in View::render
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-30 17:51:26 +02:00
Max Brunsfeld
18d175a240
Don't allow empty chat messages
2021-08-27 17:21:53 -07:00
Max Brunsfeld
a98d293f54
Trim whitespace from chat messages and limit their length
...
Add a way for the server to respond to any request with an error
2021-08-27 17:21:35 -07:00
Max Brunsfeld
b3d5f01ba8
Drop the word 'recent' from get_channel_messages db method name
2021-08-27 15:50:45 -07:00
Max Brunsfeld
bc63fca8d7
Fetch older messages when scrolling up in the chat message list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 14:58:28 -07:00
Antonio Scandurra
53dc08dfc5
Remove lock from element states
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 18:04:21 +02:00
Max Brunsfeld
3bb5610ad1
Overhaul handling of font families
...
* Specify font families in the theme.
* Load fonts eagerly when loading themes, instead of loading
them lazily when rendering.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-26 15:06:00 -07:00
Antonio Scandurra
c865f8ad1a
Fix retrieving recent channel messages
2021-08-26 14:14:22 +02:00
Antonio Scandurra
d77211c6b1
Extract a TestDb
to setup and tear down a database instance
2021-08-26 12:51:48 +02:00
Nathan Sobo
8f86fa1ccd
Associate messages with their sender, fetching senders if necessary
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-25 14:20:03 -06:00
Antonio Scandurra
405ff1d9db
Render chat messages in ChatPanel
2021-08-24 12:23:50 +02:00
Max Brunsfeld
5ecedd894d
Add ChannelList to AppState
2021-08-23 15:03:45 -07:00
Nathan Sobo
86effd64a2
Get project compiling with type-safe actions
2021-08-22 21:02:48 -06:00
Antonio Scandurra
f463b2ed50
Forbid parking earlier in server integration tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 16:41:10 +02:00
Antonio Scandurra
98f691d16d
Make database interactions deterministic in test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 16:24:33 +02:00
Antonio Scandurra
3ba530bca1
💄
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 15:00:08 +02:00
Antonio Scandurra
b13da81a84
Extract a Db::close
method and remove deref to PgPool
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 14:58:14 +02:00
Antonio Scandurra
5f3e6f35d4
Implement and test channel cleanup as clients leave
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 14:32:53 +02:00
Antonio Scandurra
9ed4176e4d
Save messages received from the server
2021-08-20 11:16:59 +02:00
Max Brunsfeld
10868cf0ea
Start work on sending channel messages
2021-08-19 18:04:49 -07:00
Nathan Sobo
a4882169c2
Fetch messages when joining a channel
2021-08-19 15:25:20 -06:00