summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Merge branch 'prop/preserve-state'Owen Jacobson2025-02-24
|\
| * npm run fmtOwen Jacobson2025-02-24
| |
| * Move constant closer to usageOwen Jacobson2025-02-24
| |
| * Only redirect to last active channel off of /Kit La Touche2025-02-21
| |
| * Merge branch 'main' into prop/preserve-stateKit La Touche2025-02-21
| |\
| * | Only check for message visibility while a channel is actually attached to ↵Owen Jacobson2025-02-20
| | | | | | | | | | | | | | | | | | the DOM. Prevents this from breaking during DOM unmounting, when leaving a channel.
| * | Remove explanatory commentKit La Touche2025-02-20
| | | | | | | | | | | | That no longer vitally pertains.
| * | Remember last active channel and navigate there on root loadKit La Touche2025-02-20
| | | | | | | | | | | | To facilitate PWA behaviour.
| * | Separate channel metadata out into its own storeKit La Touche2025-02-20
| | | | | | | | | | | | | | | | | | | | | | | | This is stored locally, and, while parallel to channel info, is not the same as. Eventually, this may hold info about moot/decayed channels, and grow unbounded. That'll need to be addressed.
| * | Merge local channel data and remote to maintain stateKit La Touche2025-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | When we hit the boot endpoint, we get the server's view of things. If we just setChannels with that, we overwrite all our locally-stored info in on things like lastReadAt. So we need to merge data. Eventually, this might militate for a `meta` key containing an object of locally stored data, rather than having to handle each key specially.
* | | Merge branch 'prop/global-state-at-top-level'Owen Jacobson2025-02-24
|\ \ \ | |_|/ |/| |
| * | Hoist global state access out of individual components.Owen Jacobson2025-02-21
|/ / | | | | | | | | | | | | | | Access to "global" (maybe "external?") state is now handled at the top level of the component hierarchy, in `+page.svelte`, `+layout.svelte`, and their associated scripts. State is otherwise passed down through props, and changes are passed up through callbacks. This is - hopefully - groundwork for refactoring state management a bit. I wanted to move access to state out to a smaller number of places, so that I have fewer places to update to implement reconnect logic. My broader goal is to make it easier to refactor these kinds of external side effects, as well, though no such changes are in this branch. This change also makes testing a mile easier, since tests can interact with props and callbacks instead of emulating the whole HTTP request stack and the Pilcrow API. This change removes do-very-little tests.
* | Ensure `must_use` warnings fire even after results are unwrapped.Owen Jacobson2025-02-21
| |
* | Remove stray importsOwen Jacobson2025-02-21
| |
* | Retire use of $page store in favour of Sv5 page stateOwen Jacobson2025-02-21
| |
* | Be a little more pedantic about constant str ref lifetimesOwen Jacobson2025-02-21
| |
* | Reorder impl to match traitOwen Jacobson2025-02-21
| |
* | Add missing awaits on goto() callsOwen Jacobson2025-02-21
| |
* | Fix invalid JSONOwen Jacobson2025-02-21
| |
* | Be a bit more careful with the nesting of anchors and list items.Owen Jacobson2025-02-21
| | | | | | | | Browsers cope with weird nestings mostly fine, but there's no upside for us in testing that.
* | Remove unused type attribute on textareaOwen Jacobson2025-02-21
| |
* | Remove duplicate `content` hack from reset.Owen Jacobson2025-02-21
| | | | | | | | | | | | According to <https://stackoverflow.com/a/6803278>, this was needed for old versions of Safari. However, since at least 2022, Safari has supported `content: none` just fine. Related Safari bug (still open as of this writing, comments relevnat): <https://bugs.webkit.org/show_bug.cgi?id=20032>
* | Provide fallback generic fonts for our custom fontsOwen Jacobson2025-02-21
| |
* | Remove nonexistent CSS variableOwen Jacobson2025-02-21
| |
* | Remove references to nonexistent italic variants of FiraCodeOwen Jacobson2025-02-21
| |
* | Write down a brief mission blurb.Owen Jacobson2025-02-21
| |
* | Split "set up the event source" and "apply events to state" from one another.Owen Jacobson2025-02-21
| |
* | Upgrade to Rust 1.85 and Rust 2024 edition.Owen Jacobson2025-02-20
| | | | | | | | | | | | | | | | There are a couple of migration suggestions from `cargo fix --edition` that I have deliberately skipped, which are intended to make sure that the changes to `if let` scoping don't bite us. They don't, I'm pretty sure, and if I turn out to be wrong, I'd rather fix the scoping issues (as they arise) than use `match` (`cargo fix --edition`'s suggestion). This change also includes a bulk reformat and a clippy cleanup. NOTA BENE: As this requires a new Rust toolchain, you'll need to update Rust (`rustup update`, normally) or the server won't build. This also applies to the Debian builder Docker image; it'll need to be rebuilt (from scratch, pulling its base image again) as well.
* | Use axios to compute event stream URL, why not.Owen Jacobson2025-02-20
| | | | | | | | It's amazing what you can learn by skimming the docs.
* | We no longer need async-trait.Owen Jacobson2025-02-20
| | | | | | | | It was here to support axum 0.7.x.
* | Remove the last lingering Svelte4-style event bindings.Owen Jacobson2025-02-20
| |
* | Let Svelte's `$derived` handling figure out update ordering for the channels ↵Owen Jacobson2025-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | list. This fixes a bug. To reproduce: 1. Open the client and log in. 2. Create a new channel using the `create channel` UI. The expected result - and the behaviour after this commit - is that the newly-created channel will be shown in the sidebar immediately. The buggy behaviour is that it was not, but would appear in the sidebar once the client is reloaded. The channel would also not appear for other clients until they reloaded. I'm not actually completely sure of _why_ this fixes the bug, but it does.
* | Upgrade to latest thiserrorOwen Jacobson2025-02-19
| |
* | Upgrade Axum to 0.8.1.Owen Jacobson2025-02-19
|/
* Upgrade sqlx to latest.Owen Jacobson2025-02-18
| | | | | | | | | | | | | | | | | | | | We can't quite update rusqlite to latest as well, as it uses a slightly newer libsqlite3-sys crate. I made sure this pair of versions is valid: % cargo tree --invert libsqlite3-sys libsqlite3-sys v0.30.1 ├── rusqlite v0.32.1 │ └── pilcrow v0.1.0 (/Users/owen/Projects/grimoire.ca/pilcrow) └── sqlx-sqlite v0.8.3 └── sqlx v0.8.3 └── pilcrow v0.1.0 (/Users/owen/Projects/grimoire.ca/pilcrow) libsqlite3-sys v0.30.1 └── sqlx-sqlite v0.8.3 └── sqlx-macros-core v0.8.3 └── sqlx-macros v0.8.3 (proc-macro) └── sqlx v0.8.3 (*) As both sqlx and rusqlite resolve to use the same version of libsqlite3-sys, we're fine.
* Mass-upgrade Rust dependenciesOwen Jacobson2025-02-18
|
* Mass update JS dependencies.Owen Jacobson2025-02-18
| | | | I hit an actual Svelte bug (it was misattributing which component state changes originated in) that's fixed in newer Svelte 5, so I might as well hit 'em all.
* npm formatOwen Jacobson2025-02-15
|
* Merge remote-tracking branch 'origin/prop/fonts'Owen Jacobson2025-02-11
|\
| * Change default body font to RobotoKit La Touche2025-02-08
| | | | | | | | Let's try this.
| * Style form placeholders and buttonsKit La Touche2025-01-19
| |
| * Fix bold and italic font considerationsKit La Touche2025-01-19
| |
| * Add placeholder to message inputKit La Touche2025-01-19
| |
| * Make small tweaks for mobile devicesKit La Touche2025-01-19
| |
| * Make mobile UI look a little betterKit La Touche2025-01-17
| | | | | | | | The rounded corners on an iPhone shouldn't be cut off now.
| * Make handle text light, so it's legibleKit La Touche2025-01-14
| |
| * Merge branch 'main' into wip/fontsKit La Touche2025-01-13
| |\
| * | Add initial fontsKit La Touche2025-01-13
| | | | | | | | | | | | | | | We're not using Overlock currently, but I think it'll be good on headers and stuff?
* | | Better match theme colour (for browser chrome) to top bar colour (in-app ↵Owen Jacobson2025-01-28
| | | | | | | | | | | | chrome).
* | | Make mobile UI look a little betterKit La Touche2025-01-28
| | | | | | | | | | | | The rounded corners on an iPhone shouldn't be cut off now.