feat: sidebar scrolling works on mobile

This commit is contained in:
Robert Perce 2026-04-08 11:38:05 -05:00
parent 18de4c5895
commit a178bc1cc0
7 changed files with 35 additions and 7 deletions

View file

@ -1,3 +1,30 @@
## [0.2.0] - 2026-04-08
### Features
- Scroll to current contact in sidebar by default
- Clicking off sidebar on small windows closes it
- Sort contacts sidebar ignoring case
- Report version information
### Refactor
- Cloak input elements while alpine.js loads
### Performance
- *(test)* Test performance improvements
- Large cache time on immutable hashed statics
### Testing
- Deflake by waiting for Save response
- Open sidebar on mobile
### ⚙️ Miscellaneous Tasks
- Prepare for tagged releases
## [0.1.0] - 2026-04-05 ## [0.1.0] - 2026-04-05
# Features # Features

2
Cargo.lock generated
View file

@ -1560,7 +1560,7 @@ dependencies = [
[[package]] [[package]]
name = "mascarpone" name = "mascarpone"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"axum", "axum",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "mascarpone" name = "mascarpone"
version = "0.1.0" version = "0.2.0"
edition = "2024" edition = "2024"
[profile.release] [profile.release]

View file

@ -48,7 +48,7 @@ release() {
set -euo pipefail set -euo pipefail
bash e2e/Taskfile playwright:ci bash e2e/Taskfile playwright:ci
_cargo test _cargo test
new_tag=$(git-cliff --bumped-version) new_tag=$(git-cliff --unreleased --bumped-version)
git tag -m "$new_tag" "$new_tag" git tag -m "$new_tag" "$new_tag"
cargo set-version "${new_tag#v}" cargo set-version "${new_tag#v}"
mv CHANGELOG.md CHANGELOG.old mv CHANGELOG.md CHANGELOG.old

View file

@ -96,13 +96,13 @@ mod get {
} }
body hx-ext="response-targets" { body hx-ext="response-targets" {
h1 { "Mascarpone" } h1 { "Mascarpone" }
form hx-post=(post_url) hx-target-error="#error" x-data="{ user: '', pass: '' }" { form hx-post=(post_url) hx-target-error="#error" x-data="{ user: '', pass: '', htmx: false }" "x-on:htmx:load.document"="htmx = true" {
label for="username" { "Username" } label for="username" { "Username" }
input name="username" #username autofocus x-model="user" x-cloak; input name="username" #username autofocus x-model="user" x-cloak;
label for="password" { "Password" } label for="password" { "Password" }
input name="password" #password type="password" x-model="pass" x-cloak; input name="password" #password type="password" x-model="pass" x-cloak;
input type="submit" value="login" x-bind:disabled="!(user.length && pass.length)"; input type="submit" value="login" x-bind:disabled="!(user.length && pass.length && htmx)" hx-disabled-elt;
#error {} #error {}
} }
} }

View file

@ -70,7 +70,7 @@ mod get {
?.top;\ ?.top;\
top&&document\ top&&document\
.getElementById('contacts-sidebar')\ .getElementById('contacts-sidebar')\
.scrollTo({{top:top+window.innerHeight/2,left:0,behavior:'instant'}});", .scrollTo({{top:top-window.innerHeight/2,left:0,behavior:'instant'}});",
id id
) )
} }

View file

@ -57,7 +57,8 @@ section#content {
height: 100%; height: 100%;
&.hide { &.hide {
display: none; left: -200%;
visibility: hidden;
} }
} }