1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-21 14:19:39 +02:00

Preserve transaction filters and transaction focus across page visits (#1733)

* Preserve transaction filters across page visits

* Preserve params when per_page is updated

* Autofocus selected transactions

* Lint fixes

* Fix syntax error

* Fix filter clearing

* Update e2e tests for new UI

* Consolidate focus behavior into concern

* Lint fixes
This commit is contained in:
Zach Gollwitzer 2025-01-30 14:12:01 -05:00 committed by GitHub
parent 0b17976256
commit 282c05345d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 310 additions and 243 deletions

View file

@ -0,0 +1,21 @@
import { Controller } from "@hotwired/stimulus";
// Connects to data-controller="focus-record"
export default class extends Controller {
static values = {
id: String,
};
connect() {
const element = document.getElementById(this.idValue);
if (element) {
element.scrollIntoView({ behavior: "smooth" });
// Remove the focused_record_id parameter from URL
const url = new URL(window.location);
url.searchParams.delete("focused_record_id");
window.history.replaceState({}, "", url);
}
}
}

View file

@ -0,0 +1,20 @@
import { Controller } from "@hotwired/stimulus";
// Connects to data-controller="selectable-link"
export default class extends Controller {
connect() {
this.element.addEventListener("change", this.handleChange.bind(this));
}
disconnect() {
this.element.removeEventListener("change", this.handleChange.bind(this));
}
handleChange(event) {
const paramName = this.element.name;
const currentUrl = new URL(window.location.href);
currentUrl.searchParams.set(paramName, event.target.value);
Turbo.visit(currentUrl.toString());
}
}