* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
import type { ITabItemRenderlessParams } from '@/types'
export const computedIsClosable =
({ rootTabs, props }: Pick<ITabItemRenderlessParams, 'rootTabs' | 'props'>) =>
(): boolean =>
props.withClose || rootTabs.withClose
export const computedActive =
({ nextTick, props, state }: Pick<ITabItemRenderlessParams, 'nextTick' | 'props' | 'state'>) =>
(): boolean => {
const active = state.rootTabs.state.currentName === (props.name || state.index)
if (active) {
state.loaded = true
nextTick(() => {
state.animateShow = true
})
} else {
state.animateShow = false
}
return active
}
export const computedPaneName =
({ props, state }: Pick<ITabItemRenderlessParams, 'props' | 'state'>) =>
(): string | null =>
props.name || state.index
export const watchTitle = (parent: ITabItemRenderlessParams['parent']) => () => parent.$emit('tab-nav-update')