Add: fetch style object from DB directly in the editor (#507)

This commit is contained in:
eight 2018-10-02 20:22:18 +08:00 committed by GitHub
parent 2fd531e253
commit 5cbe8a8d78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View File

@ -14,6 +14,9 @@ window.API_METHODS = Object.assign(window.API_METHODS || {}, {
saveStyle,
deleteStyle,
getStyleFromDB: id =>
dbExec('get', id).then(event => event.target.result),
download(msg) {
delete msg.method;
return download(msg.url, msg);

View File

@ -226,7 +226,7 @@ function isUsercss(style) {
function initStyleData() {
// TODO: remove .replace(/^\?/, '') when minimum_chrome_version >= 52 (https://crbug.com/601425)
const params = new URLSearchParams(location.search.replace(/^\?/, ''));
const id = params.get('id');
const id = Number(params.get('id'));
const createEmptyStyle = () => ({
id: null,
name: params.get('domain') ||
@ -242,8 +242,8 @@ function initStyleData() {
)
],
});
return API.getStyles({id: id || -1})
.then(([style = createEmptyStyle()]) => {
return fetchStyle()
.then(style => {
styleId = style.id;
if (styleId) sessionStorage.justEditedStyleId = styleId;
// we set "usercss" class on <html> when <body> is empty
@ -257,6 +257,13 @@ function initStyleData() {
}
return style;
});
function fetchStyle() {
if (id) {
return API.getStyleFromDB(id);
}
return Promise.resolve(createEmptyStyle());
}
}
function initHooks() {