@varlet/ui
Version:
A Vue3 component library based on Material Design 2 and 3, supporting mobile and desktop.
29 lines (28 loc) • 787 B
JavaScript
import { assert } from "@varlet/shared";
import { useChildren, useParent } from "@varlet/use";
import { TABS_ITEMS_BIND_TAB_ITEM_KEY } from "../tabs-items/provide.mjs";
const TAB_ITEM_BIND_LIST_KEY = Symbol("TAB_ITEM_BIND_LIST_KEY");
function useTabsItems() {
const { parentProvider, bindParent, index } = useParent(
TABS_ITEMS_BIND_TAB_ITEM_KEY
);
assert(!!bindParent, "TabItem", "<var-tab-item/> must in <var-tabs-items/>");
return {
index,
tabsItems: parentProvider,
bindTabsItems: bindParent
};
}
function useLists() {
const { childProviders, bindChildren, length } = useChildren(TAB_ITEM_BIND_LIST_KEY);
return {
length,
lists: childProviders,
bindLists: bindChildren
};
}
export {
TAB_ITEM_BIND_LIST_KEY,
useLists,
useTabsItems
};