Skip to content

Commit

Permalink
fix: add dts to tree picker
Browse files Browse the repository at this point in the history
  • Loading branch information
chaofan232 committed Sep 28, 2023
1 parent 17c8910 commit 39bbdb0
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 5 deletions.
6 changes: 4 additions & 2 deletions src/components/TreePicker/TreePickerHeader.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const HeaderAddAll = () => {
<Button
variant="link"
className="aui--tree-picker-header-add-all"
dts="add-all-button"
onClick={() => {
const addable = getTreeState().addable;

Expand All @@ -37,13 +38,13 @@ const getCurrentNodeHeader = (state) => {
return currentNode?.header;
};

const TreePickerHeader = ({ children, className, label }) => {
const TreePickerHeader = ({ children, className, label, dts }) => {
const header = useTreePickerSlice(getCurrentNodeHeader);

const finalLabel = !_.isUndefined(header) ? header : label;

return !finalLabel ? null : (
<div className={cc('aui--tree-picker-row', 'aui--tree-picker-header', className)}>
<div className={cc('aui--tree-picker-row', 'aui--tree-picker-header', className)} dts={dts}>
<div className="aui--tree-picker-row-content">{finalLabel}</div>
{children ?? <HeaderAddAll />}
</div>
Expand All @@ -54,6 +55,7 @@ TreePickerHeader.propTypes = {
label: PropTypes.node,
children: PropTypes.node,
className: PropTypes.string,
dts: PropTypes.string,
};

export default TreePickerHeader;
7 changes: 5 additions & 2 deletions src/components/TreePicker/TreePickerNode.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const TreePickerNodeContext = React.createContext({ level: 0 });

export const useTreePickerNode = () => React.useContext(TreePickerNodeContext);

const TreePickerNode = ({ className, children, node }) => {
const TreePickerNode = ({ className, children, node, dts }) => {
const { goTo } = useInternalActions();
const [state, setState] = React.useState(() => ({ expanded: false, subNodes: [] }));

Expand Down Expand Up @@ -61,7 +61,9 @@ const TreePickerNode = ({ className, children, node }) => {

return (
<TreePickerNodeContext.Provider value={value}>
<div className={cx('aui--tree-picker-row', className)}>{children}</div>
<div className={cx('aui--tree-picker-row', className)} data-test-selector={dts}>
{children}
</div>
{state.subNodes.length === 0 ? null : <TreePickerNodeBranch nodes={state.subNodes} />}
</TreePickerNodeContext.Provider>
);
Expand All @@ -73,6 +75,7 @@ TreePickerNode.propTypes = {
id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
label: PropTypes.string.isRequired,
}).isRequired,
dts: PropTypes.string,
};

const TreePickerNodeBranch = ({ nodes }) => {
Expand Down
4 changes: 3 additions & 1 deletion src/components/TreePicker/TreePickerTree.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ const TreePickerTree = ({
className,
resolveRootNodes,
hiddenNodeIds,
dts,
placeholder = defaultPlaceholder,
emptyState = defaultEmptyState,
}) => {
Expand Down Expand Up @@ -114,7 +115,7 @@ const TreePickerTree = ({

return (
<HiddenByIdCtx.Provider value={byId}>
<div className={cx('aui--tree-picker-tree', className)}>
<div className={cx('aui--tree-picker-tree', className)} data-test-selector={dts}>
{isResolvingRoot ? placeholder : visibleNodes.length === 0 ? emptyState : visibleNodes.map(renderNode)}
</div>
</HiddenByIdCtx.Provider>
Expand All @@ -127,6 +128,7 @@ TreePickerTree.propTypes = {
resolveRootNodes: PropTypes.func.isRequired,
placeholder: PropTypes.node,
emptyState: PropTypes.node,
dts: PropTypes.string,
};

TreePickerTree.Placeholder = TreePickerTreePlaceholder;
Expand Down
3 changes: 3 additions & 0 deletions src/components/TreePicker/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ export interface TreePickerNodeProps {
node: TreePickerNodeNode;
children: React.ReactNode;
className?: string;
dts?: string;
}

declare const TreePickerNode: React.FC<TreePickerNodeProps> & {
Expand All @@ -61,6 +62,7 @@ export interface TreePickerHeaderProps {
label?: React.ReactNode;
children?: React.ReactNode;
className?: string;
dts?: string;
}

declare const TreePickerHeader: React.FC<TreePickerHeaderProps>;
Expand All @@ -79,6 +81,7 @@ export interface TreePickerTreeProps {
hiddenNodeIds?: string[];
placeholder?: React.ReactNode;
emptyState?: React.ReactNode;
dts?: string;
}

declare const TreePickerTree: React.FC<TreePickerTreeProps>;
Expand Down

0 comments on commit 39bbdb0

Please sign in to comment.