Commit Graph
75 Commits
Author SHA1 Message Date
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 ScandurraandNathan Sobo 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 BrunsfeldandNathan Sobo 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 SoboandMax Brunsfeld 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 SoboandMax Brunsfeld 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 SoboandMax Brunsfeld 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 ScandurraandNathan Sobo 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 ScandurraandMax Brunsfeld 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
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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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 BrunsfeldandNathan Sobo 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 ScandurraandNathan Sobo 53dc08dfc5 Remove lock from element states
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 18:04:21 +02:00
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 SoboandMax Brunsfeld 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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 98f691d16d Make database interactions deterministic in test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 16:24:33 +02:00
Antonio ScandurraandNathan Sobo 3ba530bca1 💄
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-20 15:00:08 +02:00
Antonio ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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