初始化奇妙小屏幕控制器项目
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
export function createLatchedDraftState(allowedKeys) {
|
||||
const allowed = new Set(allowedKeys);
|
||||
const modified = new Set();
|
||||
|
||||
return Object.freeze({
|
||||
mark(key) {
|
||||
if (!allowed.has(key)) throw new Error(`Unknown draft field: ${key}`);
|
||||
const wasModified = modified.has(key);
|
||||
modified.add(key);
|
||||
return !wasModified;
|
||||
},
|
||||
clear() {
|
||||
modified.clear();
|
||||
},
|
||||
has(key) {
|
||||
return modified.has(key);
|
||||
},
|
||||
get dirty() {
|
||||
return modified.size > 0;
|
||||
},
|
||||
keys() {
|
||||
return [...modified];
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user