Unverified Commit 9df14c60 authored by Sendya's avatar Sendya

feat: add disable collapsedButtonRender props

parent 2e9ef838
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
v-model:openKeys="baseState.openKeys" v-model:openKeys="baseState.openKeys"
v-bind="state" v-bind="state"
> >
<template #collapsedButtonRender>
<a-button>abc</a-button>
</template>
<!-- custom right-content --> <!-- custom right-content -->
<template #rightContentRender> <template #rightContentRender>
<span style="color: #0f0">right</span> <span style="color: #0f0">right</span>
......
{ {
"name": "@ant-design-vue/pro-layout", "name": "@ant-design-vue/pro-layout",
"version": "3.1.0-alpha.0", "version": "3.1.0-alpha.1",
"license": "MIT", "license": "MIT",
"files": [ "files": [
"dist", "dist",
......
...@@ -47,6 +47,10 @@ export const basicLayoutProps = { ...@@ -47,6 +47,10 @@ export const basicLayoutProps = {
type: [Object, Function] as PropType<BreadcrumbProps>, type: [Object, Function] as PropType<BreadcrumbProps>,
default: () => null, default: () => null,
}, },
collapsedButtonRender: {
type: [Function, Object, Boolean] as PropType<WithFalse<(collapsed?: boolean) => CustomRender>>,
default: () => undefined,
},
breadcrumbRender: { breadcrumbRender: {
type: [Object, Function, Boolean] as PropType<WithFalse<BreadcrumbProps['itemRender']>>, type: [Object, Function, Boolean] as PropType<WithFalse<BreadcrumbProps['itemRender']>>,
default: () => {}, default: () => {},
...@@ -154,6 +158,8 @@ const ProLayout = defineComponent({ ...@@ -154,6 +158,8 @@ const ProLayout = defineComponent({
} }
return <Header {...p} matchMenuKeys={matchMenuKeys || []} />; return <Header {...p} matchMenuKeys={matchMenuKeys || []} />;
}; };
const collapsedButtonRender = getPropsSlot(slots, props, 'collapsedButtonRender');
const rightContentRender = getPropsSlot(slots, props, 'rightContentRender'); const rightContentRender = getPropsSlot(slots, props, 'rightContentRender');
const customHeaderRender = getPropsSlot(slots, props, 'headerRender'); const customHeaderRender = getPropsSlot(slots, props, 'headerRender');
const menuHeaderRender = getPropsSlot(slots, props, 'menuHeaderRender'); const menuHeaderRender = getPropsSlot(slots, props, 'menuHeaderRender');
...@@ -161,6 +167,8 @@ const ProLayout = defineComponent({ ...@@ -161,6 +167,8 @@ const ProLayout = defineComponent({
// const menuRender = getPropsSlot(slots, props, 'menuRender'); // const menuRender = getPropsSlot(slots, props, 'menuRender');
const breadcrumbRender = getPropsSlot(slots, props, 'breadcrumbRender'); const breadcrumbRender = getPropsSlot(slots, props, 'breadcrumbRender');
console.log('collapsedButtonRender', collapsedButtonRender);
console.log('rightContentRender', rightContentRender);
const headerDom = computed(() => const headerDom = computed(() =>
headerRender( headerRender(
{ {
...@@ -222,6 +230,7 @@ const ProLayout = defineComponent({ ...@@ -222,6 +230,7 @@ const ProLayout = defineComponent({
{...restProps.value} {...restProps.value}
isMobile={isMobile.value} isMobile={isMobile.value}
menuHeaderRender={menuHeaderRender} menuHeaderRender={menuHeaderRender}
collapsedButtonRender={collapsedButtonRender}
onCollapse={onCollapse} onCollapse={onCollapse}
onSelect={onSelect} onSelect={onSelect}
onOpenKeys={onOpenKeys} onOpenKeys={onOpenKeys}
......
...@@ -59,7 +59,7 @@ export const siderMenuProps = { ...@@ -59,7 +59,7 @@ export const siderMenuProps = {
default: () => undefined, default: () => undefined,
}, },
collapsedButtonRender: { collapsedButtonRender: {
type: [Function, Object] as PropType<WithFalse<(collapsed?: boolean) => CustomRender>>, type: [Function, Object, Boolean] as PropType<WithFalse<(collapsed?: boolean) => CustomRender>>,
default: () => undefined, default: () => undefined,
}, },
breakpoint: { breakpoint: {
...@@ -258,28 +258,32 @@ const SiderMenu: FC<SiderMenuProps> = (props: SiderMenuProps) => { ...@@ -258,28 +258,32 @@ const SiderMenu: FC<SiderMenuProps> = (props: SiderMenuProps) => {
{(menuContentRender && menuContentRender(props, defaultMenuDom)) || defaultMenuDom} {(menuContentRender && menuContentRender(props, defaultMenuDom)) || defaultMenuDom}
</div> </div>
<div class={`${baseClassName}-links`}> <div class={`${baseClassName}-links`}>
<Menu {collapsedButtonRender !== false ? (
class={`${baseClassName}-link-menu`} <Menu
inlineIndent={16} class={`${baseClassName}-link-menu`}
theme={sTheme.value as 'light' | 'dark'} inlineIndent={16}
selectedKeys={[]} theme={sTheme.value as 'light' | 'dark'}
openKeys={[]} selectedKeys={[]}
mode="inline" openKeys={[]}
// @ts-ignore mode="inline"
onClick={() => { // @ts-ignore
if (onCollapse) { onClick={() => {
onCollapse(!props.collapsed); if (onCollapse) {
} onCollapse(!props.collapsed);
}} }
> }}
<Menu.Item
key={'collapsed-button'}
class={`${baseClassName}-collapsed-button`}
title={false}
> >
{collapsedButtonRender && collapsedButtonRender(collapsed)} <Menu.Item
</Menu.Item> key={'collapsed-button'}
</Menu> class={`${baseClassName}-collapsed-button`}
title={false}
>
{collapsedButtonRender && typeof collapsedButtonRender === 'function'
? collapsedButtonRender(collapsed)
: collapsedButtonRender}
</Menu.Item>
</Menu>
) : null}
</div> </div>
{menuFooterRender && <div class={`${baseClassName}-footer`}>{menuFooterRender(props)}</div>} {menuFooterRender && <div class={`${baseClassName}-footer`}>{menuFooterRender(props)}</div>}
</Sider> </Sider>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment