From bba986d2c823c536b89cf8f7e26f23f54b7a2d92 Mon Sep 17 00:00:00 2001 From: jahnli Date: Sun, 14 May 2023 09:54:40 +0800 Subject: [PATCH 1/4] feat(n-tree): adds option prop to the render-switcher-icon --- src/tree/src/TreeNode.tsx | 1 + src/tree/src/TreeNodeSwitcher.tsx | 11 ++++++++--- src/tree/src/interface.ts | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/tree/src/TreeNode.tsx b/src/tree/src/TreeNode.tsx index 2dbf3fdca0a..1b349fb45b9 100644 --- a/src/tree/src/TreeNode.tsx +++ b/src/tree/src/TreeNode.tsx @@ -371,6 +371,7 @@ const TreeNode = defineComponent({ expanded={this.expanded} selected={selected} loading={this.loading} + tmNode={this.tmNode} hide={tmNode.isLeaf} onClick={this.handleSwitcherClick} /> diff --git a/src/tree/src/TreeNodeSwitcher.tsx b/src/tree/src/TreeNodeSwitcher.tsx index 75306149679..aa3204bd4a6 100644 --- a/src/tree/src/TreeNodeSwitcher.tsx +++ b/src/tree/src/TreeNodeSwitcher.tsx @@ -1,7 +1,7 @@ import { h, defineComponent, type PropType, inject } from 'vue' import { SwitcherIcon } from '../../_internal/icons' import { NIconSwitchTransition, NBaseLoading, NBaseIcon } from '../../_internal' -import { treeInjectionKey } from './interface' +import { type TmNode, treeInjectionKey } from './interface' export default defineComponent({ name: 'NTreeSwitcher', @@ -14,7 +14,11 @@ export default defineComponent({ selected: Boolean, hide: Boolean, loading: Boolean, - onClick: Function as PropType<(e: MouseEvent) => void> + onClick: Function as PropType<(e: MouseEvent) => void>, + tmNode: { + type: Object as PropType, + required: true + } }, setup (props) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion @@ -49,7 +53,8 @@ export default defineComponent({ return renderSwitcherIcon ? ( renderSwitcherIcon({ expanded: props.expanded, - selected: props.selected + selected: props.selected, + option: props.tmNode.rawNode }) ) : ( diff --git a/src/tree/src/interface.ts b/src/tree/src/interface.ts index 26d473fb8a1..d6ba504f5a1 100644 --- a/src/tree/src/interface.ts +++ b/src/tree/src/interface.ts @@ -79,6 +79,7 @@ export interface InternalDropInfo { export type RenderSwitcherIcon = (props: { expanded: boolean selected: boolean + option: TreeOption }) => VNodeChild export type CheckOnClick = (option: TreeOption) => boolean From e78d7c98201b34829283dae1db3486eecc22d2b5 Mon Sep 17 00:00:00 2001 From: jahnli Date: Sun, 14 May 2023 10:00:19 +0800 Subject: [PATCH 2/4] feat(n-tree): add docs --- CHANGELOG.en-US.md | 2 +- CHANGELOG.zh-CN.md | 2 ++ src/tree/demos/enUS/index.demo-entry.md | 2 +- src/tree/demos/zhCN/index.demo-entry.md | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 91f917972b2..082182ba2dc 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -14,7 +14,6 @@ - Fix `n-menu` `show` `default` attribute spelling problem, closes [#4750](https://github.com/tusen-ai/naive-ui/issues/4750). - Fix `n-icon-wrapper`'s theme error, closes [#4768](https://github.com/tusen-ai/naive-ui/issues/4768). - ### Feats - `n-dynamic-input` adds `action` slot, closes [#3981](https://github.com/tusen-ai/naive-ui/issues/3981). @@ -26,6 +25,7 @@ - `n-data-table`'s `render-expand-icon` add `expanded` param, closes [#4439](https://github.com/tusen-ai/naive-ui/issues/4439). - `n-tabs` adds `pane-wrapper-class` `pane-wrapper-style` prop - `n-collapse` adds `titlePadding` theme variable, closes [#4728](https://github.com/tusen-ai/naive-ui/issues/4728). +- `n-tree` adds node information for `render-switcher-icon` props, closes [#4815](https://github.com/tusen-ai/naive-ui/issues/4815). ### i18n diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index c2ebf9ef8e6..9a5f88f8ce5 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -25,6 +25,8 @@ - `n-data-table` 的 `render-expand-icon` 属性新增 `expanded` 参数,关闭 [#4439](https://github.com/tusen-ai/naive-ui/issues/4439) - `n-tabs` 新增 `pane-wrapper-class` `pane-wrapper-style` 属性 - `n-collapse` 新增 `titlePadding` 主题变量,关闭 [#4728](https://github.com/tusen-ai/naive-ui/issues/4728) +- `n-tree` 新增 `titlePadding` 主题变量,关闭 [#4728](https://github.com/tusen-ai/naive-ui/issues/4728) +- `n-tree` 为 `render-switcher-icon` 属性添加节点信息,关闭 [#4815](https://github.com/tusen-ai/naive-ui/issues/4815) ### i18n diff --git a/src/tree/demos/enUS/index.demo-entry.md b/src/tree/demos/enUS/index.demo-entry.md index 7a70ef6a224..dee845d0e7a 100644 --- a/src/tree/demos/enUS/index.demo-entry.md +++ b/src/tree/demos/enUS/index.demo-entry.md @@ -66,7 +66,7 @@ checkbox-placement.vue | render-label | `(info: { option: TreeOption, checked: boolean, selected: boolean }) => VNodeChild` | `undefined` | Render function of all the options' label. | | | render-prefix | `(info: { option: TreeOption, checked: boolean, selected: boolean }) => VNodeChild` | `undefined` | Render function of all the options' prefix. | | | render-suffix | `(info: { option: TreeOption, checked: boolean, selected: boolean }) => VNodeChild` | `undefined` | Render function of all the options' suffix. | | -| render-switcher-icon | `(props: { expanded: boolean, selected: boolean }) => VNodeChild` | `undefined` | Render function of option switcher icon. | 2.24.0, `props` 2.34.0 | +| render-switcher-icon | `(props: { option: TreeOption, expanded: boolean, selected: boolean }) => VNodeChild` | `undefined` | Render function of option switcher icon. | 2.24.0, `props` 2.34.0 | | selectable | `boolean` | `true` | Whether the node can be selected. | | | selected-keys | `Array` | `undefined` | If set, selected status will work in controlled manner. | | | show-irrelevant-nodes | `boolean` | `true` | Whether to filter unmached nodes when tree is in filter mode. | 2.28.1 | diff --git a/src/tree/demos/zhCN/index.demo-entry.md b/src/tree/demos/zhCN/index.demo-entry.md index 96c9af0f1d6..f2ddec7d8a6 100644 --- a/src/tree/demos/zhCN/index.demo-entry.md +++ b/src/tree/demos/zhCN/index.demo-entry.md @@ -72,7 +72,7 @@ expand-debug.vue | render-label | `(info: { option: TreeOption, checked: boolean, selected: boolean }) => VNodeChild` | `undefined` | 节点内容的渲染函数 | | | render-prefix | `(info: { option: TreeOption, checked: boolean, selected: boolean }) => VNodeChild` | `undefined` | 节点前缀的渲染函数 | | | render-suffix | `(info: { option: TreeOption, checked: boolean, selected: boolean }) => VNodeChild` | `undefined` | 节点后缀的渲染函数 | | -| render-switcher-icon | `(props: { expanded: boolean, selected: boolean }) => VNodeChild` | `undefined` | 节点展开开关的渲染函数 | 2.24.0, `props` 2.34.0 | +| render-switcher-icon | `(props: { option: TreeOption, expanded: boolean, selected: boolean }) => VNodeChild` | `undefined` | 节点展开开关的渲染函数 | 2.24.0, `props` 2.34.0 | | selectable | `boolean` | `true` | 节点是否可以被选中 | | | selected-keys | `Array` | `undefined` | 如果设定则 `selected` 状态受控 | | | show-irrelevant-nodes | `boolean` | `true` | 是否在搜索状态显示和搜索无关的节点 | 2.28.1 | From da024911901d9b5029b82cee9e3257ad73902a5c Mon Sep 17 00:00:00 2001 From: jahnli Date: Sun, 14 May 2023 10:01:40 +0800 Subject: [PATCH 3/4] fix(n-tree): docs error --- CHANGELOG.zh-CN.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 9a5f88f8ce5..3f1438db8f6 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -25,8 +25,7 @@ - `n-data-table` 的 `render-expand-icon` 属性新增 `expanded` 参数,关闭 [#4439](https://github.com/tusen-ai/naive-ui/issues/4439) - `n-tabs` 新增 `pane-wrapper-class` `pane-wrapper-style` 属性 - `n-collapse` 新增 `titlePadding` 主题变量,关闭 [#4728](https://github.com/tusen-ai/naive-ui/issues/4728) -- `n-tree` 新增 `titlePadding` 主题变量,关闭 [#4728](https://github.com/tusen-ai/naive-ui/issues/4728) -- `n-tree` 为 `render-switcher-icon` 属性添加节点信息,关闭 [#4815](https://github.com/tusen-ai/naive-ui/issues/4815) +- `n-tree` 为 `render-switcher-icon` 属性添加节点信息,关闭 [# ](https://github.com/tusen-ai/naive-ui/issues/4815) ### i18n From 37af8c1d921f42c874116ac431242ed26a75b0fd Mon Sep 17 00:00:00 2001 From: jahnli Date: Sun, 14 May 2023 10:03:18 +0800 Subject: [PATCH 4/4] fix(n-tree): docs error --- CHANGELOG.zh-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 3f1438db8f6..fbb2944c285 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -25,7 +25,7 @@ - `n-data-table` 的 `render-expand-icon` 属性新增 `expanded` 参数,关闭 [#4439](https://github.com/tusen-ai/naive-ui/issues/4439) - `n-tabs` 新增 `pane-wrapper-class` `pane-wrapper-style` 属性 - `n-collapse` 新增 `titlePadding` 主题变量,关闭 [#4728](https://github.com/tusen-ai/naive-ui/issues/4728) -- `n-tree` 为 `render-switcher-icon` 属性添加节点信息,关闭 [# ](https://github.com/tusen-ai/naive-ui/issues/4815) +- `n-tree` 为 `render-switcher-icon` 属性添加节点信息,关闭 [#4815](https://github.com/tusen-ai/naive-ui/issues/4815) ### i18n