mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-20 15:23:50 +02:00
44 lines
1.2 KiB
JavaScript
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
|
|
};
|
|
}
|