mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 07:41:51 +08:00
fix(accordion): defaulting to skip initial animation until first render
This commit is contained in:
@ -55,7 +55,7 @@ export class Accordion implements ComponentInterface {
|
|||||||
* This prevents the accordion from animating when
|
* This prevents the accordion from animating when
|
||||||
* it starts expanded or collapsed.
|
* it starts expanded or collapsed.
|
||||||
*/
|
*/
|
||||||
private skipNextAnimation = false;
|
private skipNextAnimation = true;
|
||||||
|
|
||||||
@Element() el?: HTMLElement;
|
@Element() el?: HTMLElement;
|
||||||
|
|
||||||
|
|||||||
@ -37,6 +37,7 @@ import KeepContentsMounted from './pages/overlay-components/KeepContentsMounted'
|
|||||||
import OverlayComponents from './pages/overlay-components/OverlayComponents';
|
import OverlayComponents from './pages/overlay-components/OverlayComponents';
|
||||||
import OverlayHooks from './pages/overlay-hooks/OverlayHooks';
|
import OverlayHooks from './pages/overlay-hooks/OverlayHooks';
|
||||||
import ReorderGroup from './pages/ReorderGroup';
|
import ReorderGroup from './pages/ReorderGroup';
|
||||||
|
import AccordionGroup from './pages/AccordionGroup';
|
||||||
|
|
||||||
setupIonicReact();
|
setupIonicReact();
|
||||||
|
|
||||||
@ -69,6 +70,7 @@ const App: React.FC = () => (
|
|||||||
<Route path="/icons" component={Icons} />
|
<Route path="/icons" component={Icons} />
|
||||||
<Route path="/inputs" component={Inputs} />
|
<Route path="/inputs" component={Inputs} />
|
||||||
<Route path="/reorder-group" component={ReorderGroup} />
|
<Route path="/reorder-group" component={ReorderGroup} />
|
||||||
|
<Route path="/accordion-group" component={AccordionGroup} />
|
||||||
</IonRouterOutlet>
|
</IonRouterOutlet>
|
||||||
</IonReactRouter>
|
</IonReactRouter>
|
||||||
</IonApp>
|
</IonApp>
|
||||||
|
|||||||
54
packages/react/test/base/src/pages/AccordionGroup.tsx
Normal file
54
packages/react/test/base/src/pages/AccordionGroup.tsx
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import { IonHeader, IonTitle, IonToolbar, IonPage, IonContent, IonAccordionGroup, IonAccordion, IonItem, IonLabel } from '@ionic/react';
|
||||||
|
import { useEffect, useRef } from 'react';
|
||||||
|
|
||||||
|
const AccordionGroup: React.FC = () => {
|
||||||
|
const accordionGroup = useRef<null | HTMLIonAccordionGroupElement>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!accordionGroup.current) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
accordionGroup.current.value = ['first', 'third'];
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<IonPage>
|
||||||
|
<IonHeader>
|
||||||
|
<IonToolbar>
|
||||||
|
<IonTitle>Accordion Group</IonTitle>
|
||||||
|
</IonToolbar>
|
||||||
|
</IonHeader>
|
||||||
|
<IonContent>
|
||||||
|
<IonAccordionGroup ref={accordionGroup} multiple={true}>
|
||||||
|
<IonAccordion value="first">
|
||||||
|
<IonItem slot="header" color="light">
|
||||||
|
<IonLabel>First Accordion</IonLabel>
|
||||||
|
</IonItem>
|
||||||
|
<div className="ion-padding" slot="content">
|
||||||
|
First Content
|
||||||
|
</div>
|
||||||
|
</IonAccordion>
|
||||||
|
<IonAccordion value="second">
|
||||||
|
<IonItem slot="header" color="light">
|
||||||
|
<IonLabel>Second Accordion</IonLabel>
|
||||||
|
</IonItem>
|
||||||
|
<div className="ion-padding" slot="content">
|
||||||
|
Second Content
|
||||||
|
</div>
|
||||||
|
</IonAccordion>
|
||||||
|
<IonAccordion value="third">
|
||||||
|
<IonItem slot="header" color="light">
|
||||||
|
<IonLabel>Third Accordion</IonLabel>
|
||||||
|
</IonItem>
|
||||||
|
<div className="ion-padding" slot="content">
|
||||||
|
Third Content
|
||||||
|
</div>
|
||||||
|
</IonAccordion>
|
||||||
|
</IonAccordionGroup>
|
||||||
|
</IonContent>
|
||||||
|
</IonPage>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default AccordionGroup;
|
||||||
@ -22,6 +22,9 @@ const Main: React.FC<MainProps> = () => {
|
|||||||
</IonHeader>
|
</IonHeader>
|
||||||
<IonContent>
|
<IonContent>
|
||||||
<IonList>
|
<IonList>
|
||||||
|
<IonItem routerLink="/accordion-group">
|
||||||
|
<IonLabel>Accordion Group</IonLabel>
|
||||||
|
</IonItem>
|
||||||
<IonItem routerLink="/overlay-hooks">
|
<IonItem routerLink="/overlay-hooks">
|
||||||
<IonLabel>Overlay Hooks</IonLabel>
|
<IonLabel>Overlay Hooks</IonLabel>
|
||||||
</IonItem>
|
</IonItem>
|
||||||
|
|||||||
Reference in New Issue
Block a user