mirror of
https://github.com/chinchang/web-maker.git
synced 2025-07-18 12:31:12 +02:00
itemservice: fix promise returning in setItem.
This commit is contained in:
@@ -89,16 +89,14 @@ export const itemService = {
|
|||||||
|
|
||||||
async setItem(id, item) {
|
async setItem(id, item) {
|
||||||
const d = deferred();
|
const d = deferred();
|
||||||
var remotePromise;
|
log(`Starting to save item ${id}`);
|
||||||
|
|
||||||
// Always persist in `code` key for `preserveLastOpenItem` setting.
|
// Always persist in `code` key for `preserveLastOpenItem` setting.
|
||||||
// This key is used to retrieve content of last open item.
|
// This key is used to retrieve content of last open item.
|
||||||
db.local.set({ code: item }, () => {});
|
db.local.set({ code: item }, () => {});
|
||||||
|
|
||||||
// NOT LOGGED IN
|
// NOT LOGGED IN
|
||||||
// If `id` is `code`, this is a call on unloadbefore to save the last open thing,
|
if (!window.user) {
|
||||||
// which needs to be persisted locally only.
|
|
||||||
if (!window.user || id === 'code') {
|
|
||||||
const obj = {
|
const obj = {
|
||||||
[id]: item
|
[id]: item
|
||||||
};
|
};
|
||||||
@@ -108,28 +106,25 @@ export const itemService = {
|
|||||||
return d.promise;
|
return d.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.user) {
|
var remoteDb = await window.db.getDb();
|
||||||
var remoteDb = await window.db.getDb();
|
item.createdBy = window.user.uid;
|
||||||
log(`Starting to save item ${id}`);
|
remoteDb
|
||||||
item.createdBy = window.user.uid;
|
.collection('items')
|
||||||
remotePromise = remoteDb
|
.doc(id)
|
||||||
.collection('items')
|
.set(item, {
|
||||||
.doc(id)
|
merge: true
|
||||||
.set(item, {
|
})
|
||||||
merge: true
|
.then(arg => {
|
||||||
})
|
log('Document written', arg);
|
||||||
.then(arg => {
|
d.resolve();
|
||||||
log('Document written', arg);
|
})
|
||||||
d.resolve();
|
.catch(d.reject);
|
||||||
})
|
|
||||||
.catch(d.reject);
|
|
||||||
|
|
||||||
// logged in but offline, we resolve immediately so
|
// logged in but offline, we resolve immediately so
|
||||||
// that you see the feedback msg immediately and not wait for
|
// that you see the feedback msg immediately and not wait for
|
||||||
// later sync.
|
// later sync.
|
||||||
if (!navigator.onLine) return Promise.resolve();
|
if (!navigator.onLine) return Promise.resolve();
|
||||||
return remotePromise;
|
return d.promise;
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user