Fixed accordion auto closing on setting selection

This commit is contained in:
Arnaud Vergnet 2020-05-01 11:10:26 +02:00
parent cb522466c7
commit 517e75f4b9

View file

@ -12,7 +12,7 @@ type Props = {
title: string, title: string,
subtitle?: string, subtitle?: string,
left?: (props: { [keys: string]: any }) => React.Node, left?: (props: { [keys: string]: any }) => React.Node,
opened: boolean, opened?: boolean,
unmountWhenCollapsed: boolean, unmountWhenCollapsed: boolean,
children?: React.Node, children?: React.Node,
} }
@ -26,7 +26,6 @@ const AnimatedListIcon = Animatable.createAnimatableComponent(List.Icon);
class AnimatedAccordion extends React.Component<Props, State> { class AnimatedAccordion extends React.Component<Props, State> {
static defaultProps = { static defaultProps = {
opened: false,
unmountWhenCollapsed: false, unmountWhenCollapsed: false,
} }
chevronRef: { current: null | AnimatedListIcon }; chevronRef: { current: null | AnimatedListIcon };
@ -35,7 +34,7 @@ class AnimatedAccordion extends React.Component<Props, State> {
animEnd: string; animEnd: string;
state = { state = {
expanded: this.props.opened, expanded: this.props.opened != null ? this.props.opened : false,
} }
constructor(props) { constructor(props) {
@ -63,6 +62,7 @@ class AnimatedAccordion extends React.Component<Props, State> {
}; };
shouldComponentUpdate(nextProps: Props) { shouldComponentUpdate(nextProps: Props) {
if (nextProps.opened != null)
this.state.expanded = nextProps.opened; this.state.expanded = nextProps.opened;
this.setupChevron(); this.setupChevron();
return true; return true;