This repository has been archived on 2022-08-19. You can view files and clone it, but cannot push or open issues or pull requests.
hydrogen-web/src/domain/SessionPickerViewModel.js

30 lines
763 B
JavaScript
Raw Normal View History

import {SortedArray} from "../observable/index.js";
export default class SessionPickerViewModel {
constructor({sessionStore, sessionCallback}) {
this._sessionStore = sessionStore;
this._sessionCallback = sessionCallback;
this._sessions = new SortedArray((s1, s2) => (s1.lastUsed || 0) - (s2.lastUsed || 0));
}
async load() {
const sessions = await this._sessionStore.getAll();
this._sessions.setManyUnsorted(sessions);
}
pick(id) {
const session = this._sessions.array.find(s => s.id === id);
if (session) {
this._sessionCallback(session);
}
}
get sessions() {
return this._sessions;
}
cancel() {
this._sessionCallback();
}
}