import { computed, type ComputedRef } from 'vue'; import { useDisplay } from 'vuetify'; export type LayoutTier = 'phone' | 'tablet' | 'desktop'; /** * Единый источник «яруса» экрана для адаптива портала. * phone < 600px (нижнее меню-вкладки) * tablet 600..1279px (узкая колонка-иконки / rail) * desktop >= 1280px (полный сайдбар 232px, как сейчас) */ export function useLayoutTier(): { tier: ComputedRef; isPhone: ComputedRef; isTablet: ComputedRef; isDesktop: ComputedRef; } { const display = useDisplay(); const tier = computed(() => { const w = display.width.value; if (w < 600) return 'phone'; if (w < 1280) return 'tablet'; return 'desktop'; }); return { tier, isPhone: computed(() => tier.value === 'phone'), isTablet: computed(() => tier.value === 'tablet'), isDesktop: computed(() => tier.value === 'desktop'), }; }