-
Notifications
You must be signed in to change notification settings - Fork 155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Refactor and fix AppLayout and side navigation panel state and behaviour #1434
Changes from 12 commits
4527c21
3659082
7c83e1c
4c04bab
9cdf71c
24f45cb
ee95ba8
4403d38
5ebd377
b9eb880
2067586
04a961b
ce65c09
6fe253b
df7681e
7f8cc80
4c020a8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -29,6 +29,7 @@ interface ExpandableDefaultHeaderProps { | |||||||||||||||||||||||
|
||||||||||||||||||||||||
interface ExpandableNavigationHeaderProps extends Omit<ExpandableDefaultHeaderProps, 'onKeyUp' | 'onKeyDown'> { | ||||||||||||||||||||||||
ariaLabelledBy?: string; | ||||||||||||||||||||||||
disableExpandChangeOnHeaderTextClick?: boolean; | ||||||||||||||||||||||||
} | ||||||||||||||||||||||||
|
||||||||||||||||||||||||
interface ExpandableHeaderTextWrapperProps extends ExpandableDefaultHeaderProps { | ||||||||||||||||||||||||
|
@@ -49,6 +50,7 @@ interface ExpandableSectionHeaderProps extends Omit<ExpandableDefaultHeaderProps | |||||||||||||||||||||||
headerActions?: ReactNode; | ||||||||||||||||||||||||
headingTagOverride?: ExpandableSectionProps.HeadingTag; | ||||||||||||||||||||||||
ariaLabelledBy?: string; | ||||||||||||||||||||||||
disableExpandChangeOnHeaderTextClick?: boolean; | ||||||||||||||||||||||||
} | ||||||||||||||||||||||||
|
||||||||||||||||||||||||
const ExpandableDeprecatedHeader = ({ | ||||||||||||||||||||||||
|
@@ -93,20 +95,29 @@ const ExpandableNavigationHeader = ({ | |||||||||||||||||||||||
expanded, | ||||||||||||||||||||||||
children, | ||||||||||||||||||||||||
icon, | ||||||||||||||||||||||||
disableExpandChangeOnHeaderTextClick, | ||||||||||||||||||||||||
}: ExpandableNavigationHeaderProps) => { | ||||||||||||||||||||||||
// By using `disableExpandChangeOnHeaderTextClick`, clicking the header text will not toggle the expandable section. | ||||||||||||||||||||||||
// We use this for the "expandable-link-group" in the side navigation. | ||||||||||||||||||||||||
return ( | ||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
components/src/expandable-section/expandable-section-header.tsx Lines 255 to 265 in 4c020a8
|
||||||||||||||||||||||||
<div id={id} className={clsx(className, styles['click-target'])} onClick={onClick}> | ||||||||||||||||||||||||
<div id={id} className={clsx(className, styles['click-target'])}> | ||||||||||||||||||||||||
<button | ||||||||||||||||||||||||
className={clsx(styles['icon-container'], styles['expand-button'])} | ||||||||||||||||||||||||
aria-labelledby={ariaLabelledBy} | ||||||||||||||||||||||||
aria-label={ariaLabel} | ||||||||||||||||||||||||
aria-controls={ariaControls} | ||||||||||||||||||||||||
aria-expanded={expanded} | ||||||||||||||||||||||||
type="button" | ||||||||||||||||||||||||
onClick={onClick} | ||||||||||||||||||||||||
> | ||||||||||||||||||||||||
{icon} | ||||||||||||||||||||||||
</button> | ||||||||||||||||||||||||
{children} | ||||||||||||||||||||||||
<span | ||||||||||||||||||||||||
className={styles['click-target-content']} | ||||||||||||||||||||||||
onClick={disableExpandChangeOnHeaderTextClick ? () => {} : onClick} | ||||||||||||||||||||||||
> | ||||||||||||||||||||||||
{children} | ||||||||||||||||||||||||
</span> | ||||||||||||||||||||||||
</div> | ||||||||||||||||||||||||
); | ||||||||||||||||||||||||
}; | ||||||||||||||||||||||||
|
@@ -221,6 +232,7 @@ export const ExpandableSectionHeader = ({ | |||||||||||||||||||||||
onKeyUp, | ||||||||||||||||||||||||
onKeyDown, | ||||||||||||||||||||||||
onClick, | ||||||||||||||||||||||||
disableExpandChangeOnHeaderTextClick, | ||||||||||||||||||||||||
}: ExpandableSectionHeaderProps) => { | ||||||||||||||||||||||||
const icon = ( | ||||||||||||||||||||||||
<InternalIcon | ||||||||||||||||||||||||
|
@@ -256,6 +268,7 @@ export const ExpandableSectionHeader = ({ | |||||||||||||||||||||||
<ExpandableNavigationHeader | ||||||||||||||||||||||||
className={clsx(className, wrapperClassName)} | ||||||||||||||||||||||||
ariaLabelledBy={ariaLabelledBy} | ||||||||||||||||||||||||
disableExpandChangeOnHeaderTextClick={disableExpandChangeOnHeaderTextClick} | ||||||||||||||||||||||||
{...defaultHeaderProps} | ||||||||||||||||||||||||
> | ||||||||||||||||||||||||
{headerText ?? header} | ||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor: Instead of casting the value of the variable (technically not safe), it would be better to cast the array that you iterate over (
const size of ['desktop', 'mobile'] as const
)