summaryrefslogtreecommitdiff
path: root/packages/frontend/src/directives
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-03-10 10:05:50 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-03-10 10:05:50 +0900
commit4df9083bf04b72f59b9cb09334c89412e8cb296c (patch)
treeb9f4de12587e97d1d6080e672af37eae4d04d99e /packages/frontend/src/directives
parentfix(frontend, dev): storybookのビルドエラー修正のため、as構文... (diff)
downloadmisskey-4df9083bf04b72f59b9cb09334c89412e8cb296c.tar.gz
misskey-4df9083bf04b72f59b9cb09334c89412e8cb296c.tar.bz2
misskey-4df9083bf04b72f59b9cb09334c89412e8cb296c.zip
fix(frontend): テーマ切り替え時に一部の色が変わらない問題を修正
Diffstat (limited to 'packages/frontend/src/directives')
-rw-r--r--packages/frontend/src/directives/adaptive-border.ts27
1 files changed, 21 insertions, 6 deletions
diff --git a/packages/frontend/src/directives/adaptive-border.ts b/packages/frontend/src/directives/adaptive-border.ts
index af7deb5960..8072a1ffd9 100644
--- a/packages/frontend/src/directives/adaptive-border.ts
+++ b/packages/frontend/src/directives/adaptive-border.ts
@@ -5,17 +5,32 @@
import type { Directive } from 'vue';
import { getBgColor } from '@/utility/get-bg-color.js';
+import { globalEvents } from '@/events.js';
+
+const handlerMap = new WeakMap<any, any>();
export default {
mounted(src, binding, vn) {
- const parentBg = getBgColor(src.parentElement) ?? 'transparent';
+ function calc() {
+ const parentBg = getBgColor(src.parentElement) ?? 'transparent';
- const myBg = window.getComputedStyle(src).backgroundColor;
+ const myBg = window.getComputedStyle(src).backgroundColor;
- if (parentBg === myBg) {
- src.style.borderColor = 'var(--MI_THEME-divider)';
- } else {
- src.style.borderColor = myBg;
+ if (parentBg === myBg) {
+ src.style.borderColor = 'var(--MI_THEME-divider)';
+ } else {
+ src.style.borderColor = myBg;
+ }
}
+
+ handlerMap.set(src, calc);
+
+ calc();
+
+ globalEvents.on('themeChanged', calc);
+ },
+
+ unmounted(src, binding, vn) {
+ globalEvents.off('themeChanged', handlerMap.get(src));
},
} as Directive;