diff --git a/Composer/packages/client/src/components/ProjectTree/ExpandableNode.tsx b/Composer/packages/client/src/components/ProjectTree/ExpandableNode.tsx
index ec293483c8..62b306202b 100644
--- a/Composer/packages/client/src/components/ProjectTree/ExpandableNode.tsx
+++ b/Composer/packages/client/src/components/ProjectTree/ExpandableNode.tsx
@@ -18,35 +18,22 @@ type Props = {
isActive?: boolean;
};
-const summaryStyle = (depth: number, isActive: boolean) => css`
+const summaryStyle = (depth: number, isActive: boolean, isOpen: boolean) => css`
label: summary;
- display: flex;
padding-left: ${depth * INDENT_PER_LEVEL + 12}px;
padding-top: 6px;
+ display: list-item;
:hover {
background: ${isActive ? NeutralColors.gray40 : NeutralColors.gray20};
}
background: ${isActive ? NeutralColors.gray30 : NeutralColors.white};
+ ${isOpen ? 'list-style-type: "⏷";' : 'list-style-type: "⏵";'}
`;
const nodeStyle = css`
margin-top: 2px;
`;
-const TRIANGLE_SCALE = 0.6;
-
-const detailsStyle = css`
- &:not([open]) > summary::-webkit-details-marker {
- transform: scaleX(${TRIANGLE_SCALE});
- min-width: 10px;
- }
-
- &[open] > summary::-webkit-details-marker {
- transform: scaleY(${TRIANGLE_SCALE});
- min-width: 10px;
- }
-`;
-
export const ExpandableNode = ({
children,
summary,
@@ -75,21 +62,19 @@ export const ExpandableNode = ({
}
return (
-
-
- {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex */}
-
- {summary}
-
- {children}
-
-
+
+ {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex */}
+
+ {summary}
+
+ {children}
+
);
};
diff --git a/Composer/packages/client/src/components/ProjectTree/treeItem.tsx b/Composer/packages/client/src/components/ProjectTree/treeItem.tsx
index 0d7816172d..aeeedc8e17 100644
--- a/Composer/packages/client/src/components/ProjectTree/treeItem.tsx
+++ b/Composer/packages/client/src/components/ProjectTree/treeItem.tsx
@@ -88,41 +88,53 @@ export const moreButton = (isActive: boolean): IButtonStyles => {
};
};
-const navContainer = (isAnyMenuOpen: boolean, isActive: boolean, menuOpenHere: boolean, textWidth: number) => css`
+const navContainer = (
+ isAnyMenuOpen: boolean,
+ isActive: boolean,
+ menuOpenHere: boolean,
+ textWidth: number,
+ isBroken: boolean,
+ padLeft: number,
+ marginLeft: number
+) => css`
${isAnyMenuOpen
? ''
- : `&:hover {
- background: ${isActive ? NeutralColors.gray40 : NeutralColors.gray20};
+ : `
+ &:hover {
+ background: ${isActive ? NeutralColors.gray40 : NeutralColors.gray20};
+
+ .dialog-more-btn {
+ visibility: visible;
+ }
+ .action-btn {
+ visibility: visible;
+ }
+ .treeItem-text {
+ max-width: ${textWidth}px;
+ }
+ }`};
- .dialog-more-btn {
- visibility: visible;
- }
- .action-btn {
- visibility: visible;
- }
- .treeItem-text {
- max-width: ${textWidth}px;
- }
- }`};
background: ${isActive ? NeutralColors.gray30 : menuOpenHere ? '#f2f2f2' : 'transparent'};
-`;
-const navItem = (isBroken: boolean, padLeft: number, marginLeft: number, isActive: boolean) => css`
+ display: inline-flex;
+ flex-direction: row;
+
label: navItem;
- position: relative;
+
height: 24px;
font-size: 12px;
padding-left: ${padLeft}px;
margin-left: ${marginLeft}px;
+ min-width: calc(100% - ${padLeft + 24}px);
opacity: ${isBroken ? 0.5 : 1};
- display: flex;
- flex-direction: row;
align-items: center;
+ position: relative;
+ top: -4px;
+
:hover {
background: ${isActive ? NeutralColors.gray40 : NeutralColors.gray20};
}
- background: ${isActive ? NeutralColors.gray30 : NeutralColors.white};
&:focus {
outline: none;
@@ -155,7 +167,7 @@ export const overflowSet = (isBroken: boolean) => css`
height: 100%;
box-sizing: border-box;
justify-content: space-between;
- display: flex;
+ display: inline-flex;
i {
color: ${isBroken ? SharedColors.red20 : 'inherit'};
}
@@ -496,57 +508,56 @@ export const TreeItem: React.FC = ({
return (
-
{
+ data-testid={a11yLabel}
+ role="treeitem"
+ tabIndex={0}
+ onClick={() => {
+ onSelect?.(link);
+ }}
+ onKeyDown={(e) => {
+ if (e.key === 'Enter') {
onSelect?.(link);
- }}
- onKeyDown={(e) => {
- if (e.key === 'Enter') {
- onSelect?.(link);
- }
- }}
- >
-
-
-
+ }
+ }}
+ >
+
+
);
};