summaryrefslogtreecommitdiff
path: root/ui/routes/(app)
Commit message (Collapse)AuthorAge
* 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.
* Retire use of $page store in favour of Sv5 page stateOwen Jacobson2025-02-21
|
* Add missing awaits on goto() callsOwen Jacobson2025-02-21
|
* Split "set up the event source" and "apply events to state" from one another.Owen Jacobson2025-02-21
|
* 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.
* npm run formatOwen Jacobson2025-01-11
|
* Handle no-channel-selected betterKit La Touche2025-01-05
|
* Stylize more betterKit La Touche2025-01-05
|
* Style /me routeKit La Touche2025-01-04
|
* Just oh so many stylesKit La Touche2025-01-01
|
* Strip out Tailwind etcKit La Touche2024-12-30
|
* Merge branch 'main' into wip/stylizeKit La Touche2024-12-03
|\
| * Set last-read on a channel on some eventsKit La Touche2024-11-29
| | | | | | | | | | | | | | Esc key, 2 second wait after scroll, and whenever the messages inChannel change. Kinda gross set of things, but, so it goes. This does offer us the option of extending this to include "when you click 'unread from here' on a message" in future.
| * Enrich channels with hasUnread attributeKit La Touche2024-11-29
| | | | | | | | | | | | | | | | | | | | | | | | This requires both the channels and messages stores to be available, so we do it in the page file where we've got those stores handy. It's a bit inefficient (it recreates the entire enrichedChannels array every time one of them changes), but it'll do for now. There's also a TODO hinting that we might want an idea of unread-count. I think that would require a distinct idea of mentions, because we just want "fact of unread" for general-availability channels, not "this many messages since you were last here".
* | Merge branch 'main' into wip/stylizeKit La Touche2024-11-28
|\|
| * Don't sink the top bar so far down into the page.Owen Jacobson2024-11-26
| |
| * HTML-level styling inside non-top-level elements is not actually appliedOwen Jacobson2024-11-26
| |
| * Use store.set where appropriateKit La Touche2024-11-22
| | | | | | | | If you're setting it to a static value, use set.
| * Patch out --host again; npm run formatOwen Jacobson2024-11-19
| |
| * Add Tinygesture for swipe eventsKit La Touche2024-11-18
| | | | | | | | | | Hide and show channel menu thus. It doesn't gradually pull it out, which is less than ideal, but it's good enough for now.
| * Merge branch 'main' into wip/touch-eventsKit La Touche2024-11-09
| |\
| * \ Merge branch 'main' into wip/touch-eventsKit La Touche2024-11-06
| |\ \
| * | | Set up framework for testing touch eventsKit La Touche2024-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes a change to tools/run that exposes the dev server on my local network. This change should not make it into the final form of this branch. This is so I can use actual for real touch events on my actual for real phone, hooked up for remote debugging to my computer so I can see console events etc.
* | | | Style sidebar and message inputKit La Touche2024-11-11
| | | |
* | | | Clean up event stream on window closeKit La Touche2024-11-11
| |_|/ |/| |
* | | Rename the project to `pilcrow`.Owen Jacobson2024-11-08
| | |
* | | Better choices of margins and capsOwen Jacobson2024-11-07
| | |
* | | Factor out the elements of the `/me` page, and style them a little.Owen Jacobson2024-11-07
| | |
* | | Be more consistent around margins and padding for the "main" paneOwen Jacobson2024-11-07
| | |
* | | Split message runs after ten minutes' silence.Owen Jacobson2024-11-06
| |/ |/| | | | | I've also refactored how runs are processed, to avoid re-splitting runs every time the channel view is rendered. They're generated when messages are ingested into the `$messages` store, instead.
* | Move the logout button into `/me`. Make the self link a little more prominent.Owen Jacobson2024-11-06
| |
* | Move `showMenu` out of globals and into page state.Owen Jacobson2024-11-05
|/ | | | | | I generally don't love globals, and the scope of this global is pretty narrow. Let's use the context hierarchy for this, instead. (Kit mentioned that it might be possible to use CSS variables for this.)
* Retire use of <slot />Owen Jacobson2024-11-04
|
* Run spaces-style prettier formattingKit La Touche2024-11-03
|
* Svelte 5: go through and use runes in components, pages, and layouts.Owen Jacobson2024-11-03
| | | | Does not use runes in stores (yet).
* Stop showing the text input area on the /me pageOwen Jacobson2024-11-02
|
* Address outstanding lint issues.Owen Jacobson2024-11-02
|
* Run prettier, make lint part of pre-commitOwen Jacobson2024-11-02
|
* Remove frame around chat messagesOwen Jacobson2024-11-02
|
* Remove unused `x` widgetOwen Jacobson2024-11-02
|
* Make the channel menu more consistent with the density of the rest of the UIOwen Jacobson2024-11-02
|
* Specify overflow behaviour more loosely.Owen Jacobson2024-11-02
| | | | On Safari, `overflow: scroll` forces scrollbars even where not required, leading to a really janky display studded with stray scrollbars.
* Rearrange DOM because Owen asked me toKit La Touche2024-10-31
|
* Futz with layout a bitKit La Touche2024-10-31
|
* Merge branch 'main' into wip/mobileKit La Touche2024-10-30
|\
| * Don't leave field binding vars uninitialized.Owen Jacobson2024-10-30
| | | | | | | | | | | | This was causing problems for changing passwords: if the user didn't type anything in the "original password" field, the code path to sending that field to the server was just straight-up omitting the field from the message, rather than setting it to empty string, causing a 422 Unprocessable Entity. On investigation we had latent bugs related to this in a bunch of spots.
* | Merge branch 'main' into wip/mobileKit La Touche2024-10-30
|\|
| * Incrementally less jank invite listing.Owen Jacobson2024-10-29
| |
| * Add `change password` UI + API.Owen Jacobson2024-10-29
| | | | | | | | The protocol here re-checks the caller's password, as a "I left myself logged in" anti-pranking check.