From a26cfceaf4cc857f77f638397ffcca8e7f29fb0f Mon Sep 17 00:00:00 2001 From: polv Date: Sun, 22 Mar 2026 02:00:52 +0700 Subject: [PATCH] fix css preserve color images --- src-react/src/App.css | 6 ++- src-react/src/components/LoadingDialog.tsx | 59 +++++++++++----------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/src-react/src/App.css b/src-react/src/App.css index 141354c..e1238dd 100644 --- a/src-react/src/App.css +++ b/src-react/src/App.css @@ -50,7 +50,11 @@ html.dark .glossaries { word-break: keep-all; } - img { + img[src$=".svg"] { filter: invert(1) hue-rotate(180deg); } + + rt { + font-size: 50%; + } } \ No newline at end of file diff --git a/src-react/src/components/LoadingDialog.tsx b/src-react/src/components/LoadingDialog.tsx index 94973b6..e2069a0 100644 --- a/src-react/src/components/LoadingDialog.tsx +++ b/src-react/src/components/LoadingDialog.tsx @@ -128,29 +128,29 @@ function LoadingDialog() { } } - const { VITE_STORAGE_WORKER_URL, VITE_STORAGE_WORKER_TOKEN } = - import.meta.env; + const LAST_API_CALL_KEY = "LAST_API_CALL_KEY_storageWorkerURL"; + const LAST_API_JSON_KEY = "LAST_API_JSON_KEY_storageWorkerURL"; + + let entries: YomitanStorageWorkerDictEntry[] = []; + + const lastCall = localStorage.getItem(LAST_API_CALL_KEY); + const lastJSON = localStorage.getItem(LAST_API_JSON_KEY); + + if (lastJSON && lastCall) { + const d = new Date(lastCall); + d.setDate(d.getDate() + 1); + if (d > new Date()) { + entries = JSON.parse(lastJSON); + } + } + + const prefix = `${lang}/`; try { - const prefix = `${lang}/`; - - let entries: YomitanStorageWorkerDictEntry[] = []; - - const LAST_API_CALL_KEY = "LAST_API_CALL_KEY_storageWorkerURL"; - const LAST_API_JSON_KEY = "LAST_API_JSON_KEY_storageWorkerURL"; - - const lastCall = localStorage.getItem(LAST_API_CALL_KEY); - const lastJSON = localStorage.getItem(LAST_API_JSON_KEY); - - if (lastJSON && lastCall) { - const d = new Date(lastCall); - d.setDate(d.getDate() + 1); - if (d > new Date()) { - entries = JSON.parse(lastJSON); - } - } if (!entries.length) { - console.log(`visiting ${VITE_STORAGE_WORKER_URL}`); + const { VITE_STORAGE_WORKER_URL, VITE_STORAGE_WORKER_TOKEN } = + import.meta.env; + console.log(`accessing ${VITE_STORAGE_WORKER_URL}`); entries = await fetch(VITE_STORAGE_WORKER_URL + "/files", { headers: { @@ -161,18 +161,19 @@ function LoadingDialog() { localStorage.setItem(LAST_API_CALL_KEY, new Date().toISOString()); localStorage.setItem(LAST_API_JSON_KEY, JSON.stringify(entries)); } - - dicts.push( - ...entries - .filter((o) => o.key.startsWith(prefix)) - .map((o) => ({ - filepath: `yomitan/${lang}/${o.key.substring(prefix.length)}`, - url: o.url, - })), - ); } catch (e) { console.error(e); + entries = JSON.parse(lastJSON || "[]"); } + + dicts.push( + ...entries + .filter((o) => o.key.startsWith(prefix)) + .map((o) => ({ + filepath: `yomitan/${lang}/${o.key.substring(prefix.length)}`, + url: o.url, + })), + ); } await invoke("init_yomitan", { dicts, lang });