Support global marks which select a tab
This commit is contained in:
parent
6e6e306275
commit
003742ec51
11 changed files with 179 additions and 4 deletions
33
src/background/repositories/mark.js
Normal file
33
src/background/repositories/mark.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
import MemoryStorage from '../infrastructures/memory-storage';
|
||||
import GlobalMark from 'background/domains/global-mark';
|
||||
|
||||
const MARK_KEY = 'mark';
|
||||
|
||||
export default class MarkRepository {
|
||||
constructor() {
|
||||
this.cache = new MemoryStorage();
|
||||
}
|
||||
|
||||
getMark(key) {
|
||||
let marks = this.getOrEmptyMarks();
|
||||
let data = marks[key];
|
||||
if (!data) {
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
let mark = new GlobalMark(data.tabId, data.x, data.y);
|
||||
return Promise.resolve(mark);
|
||||
}
|
||||
|
||||
setMark(key, mark) {
|
||||
let marks = this.getOrEmptyMarks();
|
||||
marks[key] = { tabId: mark.tabId, x: mark.x, y: mark.y };
|
||||
this.cache.set(MARK_KEY, marks);
|
||||
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
getOrEmptyMarks() {
|
||||
return this.cache.get(MARK_KEY) || {};
|
||||
}
|
||||
}
|
||||
|
Reference in a new issue