diff --git a/pages/search/modules/labels.js b/pages/search/modules/labels.js index bcdcee7..782ab70 100644 --- a/pages/search/modules/labels.js +++ b/pages/search/modules/labels.js @@ -1,38 +1,9 @@ -const labels = { - /* tabId: label, */ -} - -const lettersOrder = 'lkjhyuionm' - -/* */ - -const digits2label = (digits) => [...digits] - .map((digit) => lettersOrder[digit]) - .join('') - -export const id2label = (id, tabs) => { - if (!labels[id]) { - const label = Object.keys(labels).length - labels[id] = String(label) - } - - const keyLength = String(tabs?.length).length - const digits = String(labels[id]).padStart(keyLength, 0) - return digits2label(digits) -} - -/* */ - -const label2digits = (label) => [...label] - .map((letter) => [...lettersOrder].findIndex((x) => x === letter)) - .join('') - -export const label2id = (label) => { - const paddedDigits = label2digits(label) - const digits = String(parseInt(paddedDigits)) - - const [key] = Object.entries(labels) - .find(([_, value]) => value === digits) - - return parseInt(key) +const letterOrder = 'lkjhyuionm' + +export const fromNumber = (number, length) => { + const labelLength = String(length).length + const digits = String(number).padStart(labelLength, 0) + return [...digits] + .map((digit) => letterOrder[digit]) + .join('') } diff --git a/pages/search/modules/store.js b/pages/search/modules/store.js index 4dd1e81..23d3f50 100644 --- a/pages/search/modules/store.js +++ b/pages/search/modules/store.js @@ -14,8 +14,8 @@ export const init = ({ /* */ - const addLabel = (tabs) => (tab) => ({ - label: labels.id2label(tab.id, tabs), + const addLabel = (tab, i, tabs) => ({ + label: labels.fromNumber(i, tabs.length), ...tab, }) @@ -28,13 +28,13 @@ export const init = ({ ].reduce((acc, x) => (acc[x] = tab[x], acc), {}) const shapeTabs = (tabs) => tabs - .map(addLabel(tabs)) + .map(addLabel) .map(pickFields) + .reverse() const fetchTabs = () => browserTabs.query({ currentWindow: true, active: false }) .then(shapeTabs) - .then((tabs) => tabs.reverse()) .then((tabs) => void (state.tabs = tabs)) /* */