You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.5 KiB
TypeScript

import { MenuModeEnum } from '~/constants'
export function useHeaderSetting() {
const { getFullContent } = useFullContent()
const appConfig = useAppConfig()
const {
getMenuMode,
getSplit,
getShowHeaderTrigger,
getIsSidebarType,
getIsMixSidebar,
getIsTopMenu,
} = useMenuSetting()
const { getShowBreadCrumb, getShowLogo } = useRootSetting()
const getShowDoc = computed(() => appConfig.header.value.showDoc)
const getHeaderTheme = computed(() => appConfig.header.value.theme)
const getShowHeader = computed(() => appConfig.header.value.show)
const getFixed = computed(() => appConfig.header.value.fixed)
const getShowSearch = computed(() => appConfig.header.value.showSearch)
const getUseLockPage = computed(() => false)
const getShowFullScreen = computed(() => appConfig.header.value.showFullScreen)
const getShowLocalePicker = computed(() => appConfig.header.value.showLocalePicker)
const getShowNotice = computed(() => appConfig.header.value.showNotice)
const getShowBread = computed(() => {
return (
unref(getMenuMode) !== MenuModeEnum.HORIZONTAL
&& unref(getShowBreadCrumb)
&& !unref(getSplit)
)
})
const getShowHeaderLogo = computed(() => {
return (
unref(getShowLogo) && !unref(getIsSidebarType) && !unref(getIsMixSidebar)
)
})
const getShowContent = computed(() => {
return unref(getShowBread) || unref(getShowHeaderTrigger)
})
const getShowFullHeaderRef = computed(() => {
return !unref(getFullContent) && unref(getShowHeader)
})
const getUnFixedAndFull = computed(
() => !unref(getFixed) && !unref(getShowFullHeaderRef),
)
const getShowMixHeaderRef = computed(() => !unref(getIsSidebarType) && unref(getShowHeader))
const getShowInsetHeaderRef = computed(() => {
const need = !unref(getFullContent) && unref(getShowHeader)
return (
(need && !unref(getShowMixHeaderRef))
|| (need && unref(getIsTopMenu))
|| (need && unref(getIsMixSidebar))
)
})
// Set header configuration
function setHeaderSetting(headerSetting: Partial<HeaderSetting>) {
appConfig.setAppConfig({ header: headerSetting })
}
return {
setHeaderSetting,
getShowDoc,
getShowSearch,
getHeaderTheme,
getUseLockPage,
getShowFullScreen,
getShowNotice,
getShowBread,
getShowContent,
getShowHeaderLogo,
getShowHeader,
getFixed,
getShowMixHeaderRef,
getShowFullHeaderRef,
getShowInsetHeaderRef,
getUnFixedAndFull,
getShowLocalePicker,
}
}