summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkFolder.vue
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2024-10-19 18:02:09 +0900
committerGitHub <noreply@github.com>2024-10-19 18:02:09 +0900
commit2250e521e4bcfa1b162cd46091da1bead5abcac0 (patch)
tree908aac984abb83e32dee350e5b06b74a9f8fbb0f /packages/frontend/src/components/MkFolder.vue
parentenhance(frontend): Bull Dashboard に relationship queue を追加 (#14777) (diff)
downloadsharkey-2250e521e4bcfa1b162cd46091da1bead5abcac0.tar.gz
sharkey-2250e521e4bcfa1b162cd46091da1bead5abcac0.tar.bz2
sharkey-2250e521e4bcfa1b162cd46091da1bead5abcac0.zip
refactor(frontend): getBgColorを共通化 (#14782)
* refactor: getBgColor関数の切り出し + fix types (taiyme#291) * move thing * revert unnecesary changes --------- Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/components/MkFolder.vue')
-rw-r--r--packages/frontend/src/components/MkFolder.vue38
1 files changed, 17 insertions, 21 deletions
diff --git a/packages/frontend/src/components/MkFolder.vue b/packages/frontend/src/components/MkFolder.vue
index 5f9500d923..7bdc06a8b4 100644
--- a/packages/frontend/src/components/MkFolder.vue
+++ b/packages/frontend/src/components/MkFolder.vue
@@ -56,8 +56,9 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<script lang="ts" setup>
-import { nextTick, onMounted, shallowRef, ref } from 'vue';
+import { nextTick, onMounted, ref, shallowRef } from 'vue';
import { defaultStore } from '@/store.js';
+import { getBgColor } from '@/scripts/get-bg-color.js';
const props = withDefaults(defineProps<{
defaultOpen?: boolean;
@@ -69,40 +70,35 @@ const props = withDefaults(defineProps<{
withSpacer: true,
});
-const getBgColor = (el: HTMLElement) => {
- const style = window.getComputedStyle(el);
- if (style.backgroundColor && !['rgba(0, 0, 0, 0)', 'rgba(0,0,0,0)', 'transparent'].includes(style.backgroundColor)) {
- return style.backgroundColor;
- } else {
- return el.parentElement ? getBgColor(el.parentElement) : 'transparent';
- }
-};
-
const rootEl = shallowRef<HTMLElement>();
const bgSame = ref(false);
const opened = ref(props.defaultOpen);
const openedAtLeastOnce = ref(props.defaultOpen);
-function enter(el) {
+function enter(el: Element) {
+ if (!(el instanceof HTMLElement)) return;
const elementHeight = el.getBoundingClientRect().height;
- el.style.height = 0;
+ el.style.height = '0';
el.offsetHeight; // reflow
- el.style.height = Math.min(elementHeight, props.maxHeight ?? Infinity) + 'px';
+ el.style.height = `${Math.min(elementHeight, props.maxHeight ?? Infinity)}px`;
}
-function afterEnter(el) {
- el.style.height = null;
+function afterEnter(el: Element) {
+ if (!(el instanceof HTMLElement)) return;
+ el.style.height = '';
}
-function leave(el) {
+function leave(el: Element) {
+ if (!(el instanceof HTMLElement)) return;
const elementHeight = el.getBoundingClientRect().height;
- el.style.height = elementHeight + 'px';
+ el.style.height = `${elementHeight}px`;
el.offsetHeight; // reflow
- el.style.height = 0;
+ el.style.height = '0';
}
-function afterLeave(el) {
- el.style.height = null;
+function afterLeave(el: Element) {
+ if (!(el instanceof HTMLElement)) return;
+ el.style.height = '';
}
function toggle() {
@@ -117,7 +113,7 @@ function toggle() {
onMounted(() => {
const computedStyle = getComputedStyle(document.documentElement);
- const parentBg = getBgColor(rootEl.value!.parentElement!);
+ const parentBg = getBgColor(rootEl.value?.parentElement) ?? 'transparent';
const myBg = computedStyle.getPropertyValue('--MI_THEME-panel');
bgSame.value = parentBg === myBg;
});