fix[Menu]: fix `menu-item-group` not rendering in SSR (#7349)

* docs: updating the `dropdownRender` description and jumps in the FAQ for Select

* fix: `menu-item-group` rendered in ssr
pull/7514/head
Carl Chen 2024-04-19 19:18:30 +08:00 committed by GitHub
parent c25736d57d
commit a8c72fc5e7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 5 deletions

View File

@ -439,15 +439,17 @@ export default defineComponent({
forceSubMenuRender: computed(() => props.forceSubMenuRender),
rootClassName: hashId,
});
const getChildrenList = () => itemsNodes.value || flattenChildren(slots.default?.());
return () => {
const childList = itemsNodes.value || flattenChildren(slots.default?.());
const childList = getChildrenList();
const allVisible =
lastVisibleIndex.value >= childList.length - 1 ||
mergedMode.value !== 'horizontal' ||
props.disabledOverflow;
// >>>>> Children
const wrappedChildList =
mergedMode.value !== 'horizontal' || props.disabledOverflow
const getWrapperList = childList => {
return mergedMode.value !== 'horizontal' || props.disabledOverflow
? childList
: // Need wrap for overflow dropdown that do not response for open
childList.map((child, index) => (
@ -458,6 +460,7 @@ export default defineComponent({
v-slots={{ default: () => child }}
></MenuContextProvider>
));
};
const overflowedIndicator = slots.overflowedIndicator?.() || <EllipsisOutlined />;
return wrapSSR(
@ -470,7 +473,7 @@ export default defineComponent({
class={[className.value, attrs.class, hashId.value]}
role="menu"
id={props.id}
data={wrappedChildList}
data={getWrapperList(childList)}
renderRawItem={node => node}
renderRawRest={omitItems => {
// We use origin list since wrapped list use context to prevent open
@ -514,7 +517,7 @@ export default defineComponent({
>
<Teleport to="body">
<div style={{ display: 'none' }} aria-hidden>
<PathContext>{wrappedChildList}</PathContext>
<PathContext>{getWrapperList(getChildrenList())}</PathContext>
</div>
</Teleport>
</Overflow>,