locize
Version:
This package adds the incontext editor to your i18next setup.
56 lines (44 loc) • 898 B
JavaScript
import { resetHighlight } from './ui/highlightNode.js'
const data = {}
function clean () {
Object.values(data).forEach(item => {
if (!document.body.contains(item.node)) {
resetHighlight(item.id, item.node)
delete data[item.id]
}
})
}
function save (id, type, node, txt) {
if (!id || !type || !node) return
if (!data[id]) {
data[id] = {
id,
node
}
}
data[id].keys = {
...data[id].keys,
[`${type}`]: { value: txt, eleUniqueID: id, textType: type }
}
}
function remove (id, node) {
resetHighlight(id, node)
delete data[id]
}
function removeKey (id, key, node) {
const item = get(id)
if (!item) return
delete item.keys[`${key}`]
if (!Object.keys(item.keys).length) remove(id, node)
}
function get (id) {
return data[id]
}
export const uninstrumentedStore = {
save,
remove,
removeKey,
clean,
get,
data
}