lost-sia
Version:
Single Image Annotation Tool
58 lines (48 loc) • 1.37 kB
JavaScript
export const SIA_INITIAL_UI_CONFIG = {
nodeRadius: 4,
strokeWidth: 4,
annoDetails: {
visible: false,
},
labelInfo: {
visible: false,
},
annoStats: {
visible: false,
},
};
// read sia-ui-config from localStorage
const iniFromStorage = localStorage.getItem("sia-ui-config")
? JSON.parse(localStorage.getItem("sia-ui-config"))
: SIA_INITIAL_UI_CONFIG;
// collect object keys and its type in order to describe the object
const collectDescription = (obj, array) => {
Object.keys(obj).forEach((key) => {
const description = {
key: key,
type: typeof obj[key],
};
array.push(description);
if (typeof obj[key] === "object") {
collectDescription(obj[key], array);
}
});
};
// collect object description for ini and storage ui-config
let iniObjectDescriptor = [];
let storageObjectDescriptor = [];
collectDescription(SIA_INITIAL_UI_CONFIG, iniObjectDescriptor);
collectDescription(iniFromStorage, storageObjectDescriptor);
// compare both object descriptions
const getUiConfig = () => {
if (
JSON.stringify(iniObjectDescriptor) ===
JSON.stringify(storageObjectDescriptor)
) {
return iniFromStorage;
} else {
// ini description dif from storage: send ini ui-config and store it to local storage
return SIA_INITIAL_UI_CONFIG;
}
};
export const uiConfig = getUiConfig();