mirror of
https://github.com/sissbruecker/linkding
synced 2024-11-25 12:50:23 +00:00
ffaaf0521d
* return updated HTML from bookmark actions * open details through URL * fix details update * improve modal behavior * use a frame * make behaviors properly destroy themselves * remove page and details params from tag urls * use separate behavior for details and tags * remove separate details view * make it work with other views * add asset actions * remove asset refresh for now * remove details partial * fix tests * remove old partials * update tests * cache and reuse tags * extract search autocomplete behavior * remove details param from pagination * fix tests * only return details modal when navigating in frame * fix link target * remove unused behaviors * use auto submit behavior for user select * fix import
35 lines
745 B
JavaScript
35 lines
745 B
JavaScript
import { api } from "./api.js";
|
|
|
|
class Cache {
|
|
constructor(api) {
|
|
this.api = api;
|
|
|
|
// Reset cached tags after a form submission
|
|
document.addEventListener("turbo:submit-end", () => {
|
|
this.tagsPromise = null;
|
|
});
|
|
}
|
|
|
|
getTags() {
|
|
if (!this.tagsPromise) {
|
|
this.tagsPromise = this.api
|
|
.getTags({
|
|
limit: 5000,
|
|
offset: 0,
|
|
})
|
|
.then((tags) =>
|
|
tags.sort((left, right) =>
|
|
left.name.toLowerCase().localeCompare(right.name.toLowerCase()),
|
|
),
|
|
)
|
|
.catch((e) => {
|
|
console.warn("Cache: Error loading tags", e);
|
|
return [];
|
|
});
|
|
}
|
|
|
|
return this.tagsPromise;
|
|
}
|
|
}
|
|
|
|
export const cache = new Cache(api);
|