Files
VRCX/src/composables/useMainLayoutResizable.js
2026-02-01 23:33:23 +09:00

44 lines
1.2 KiB
JavaScript

import { computed, ref } from 'vue';
import { storeToRefs } from 'pinia';
import { useAppearanceSettingsStore } from '../stores';
export function useMainLayoutResizable() {
const appearanceStore = useAppearanceSettingsStore();
const { isSideBarTabShow } = storeToRefs(appearanceStore);
const asideDefaultSize = 25;
const mainDefaultSize = 75;
const asideMinSize = 12;
const asideMaxPx = 700;
const isAsideCollapsed = (layout) =>
Array.isArray(layout) &&
layout.length >= 2 &&
layout[layout.length - 1] <= 1;
const isAsideCollapsedState = ref(false);
const handleLayout = (sizes) => {
if (!Array.isArray(sizes) || sizes.length < 2) {
isAsideCollapsedState.value = false;
return;
}
isAsideCollapsedState.value = isAsideCollapsed(sizes);
};
const isAsideCollapsedStatic = computed(
() => !isSideBarTabShow.value || isAsideCollapsedState.value
);
return {
asideDefaultSize,
asideMinSize,
asideMaxPx,
mainDefaultSize,
handleLayout,
isAsideCollapsed,
isAsideCollapsedStatic,
isSideBarTabShow
};
}