diff --git a/client/character.js b/client/character.js index cce5778f..a209d53e 100644 --- a/client/character.js +++ b/client/character.js @@ -76,20 +76,8 @@ const refreshMetadata = (row) => { } const updateCharacter = () => { - const value = character.get(); - if (value == null) { - return; - } - const part = Math.floor(value.charCodeAt(0) / 256); - $.get(`characters/part-${part}.txt`, (response, code) => { - if (code !== 'success') throw new Error(code); - const data = JSON.parse(response); - for (let row of data) { - if (row.character === character.get()) { - refreshMetadata(row); - } - } - }); + makemeahanzi.lookupCharacter(character.get(), (row) => { + if (row.character === character.get()) refreshMetadata(row); }); } // Methods for running the stroke-order animation. diff --git a/lib/character.js b/lib/character.js new file mode 100644 index 00000000..e2f9005d --- /dev/null +++ b/lib/character.js @@ -0,0 +1,13 @@ +this.makemeahanzi.lookupCharacter = (character, callback) => { + if (!character) return; + const part = Math.floor(character.charCodeAt(0) / 256); + $.get(`characters/part-${part}.txt`, (response, code) => { + if (code !== 'success') throw new Error(code); + const data = JSON.parse(response); + for (let row of data) { + if (row.character === character) { + callback(row); + } + } + }); +}