Skip to content

Commit a701e46

Browse files
author
Illia Obukhau
committed
chore(accordion-web): replace MountOnceReady with renderContent flag
1 parent 0bcf9be commit a701e46

File tree

4 files changed

+8
-90
lines changed

4 files changed

+8
-90
lines changed

packages/pluggableWidgets/accordion-web/src/components/AccordionGroup.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { createElement, KeyboardEvent, ReactElement, ReactNode, useCallback, useEffect, useRef, useState } from "react";
22
import classNames from "classnames";
3-
import { MountOnceReady } from "./MountOnceReady";
43
import "../ui/accordion-main.scss";
54

65
/* eslint-disable no-unused-vars */
@@ -49,6 +48,9 @@ export function AccordionGroup(props: AccordionGroupProps): ReactElement | null
4948
const contentWrapperRef = useRef<HTMLDivElement>(null);
5049
const contentRef = useRef<HTMLDivElement>(null);
5150
const lazyRender = loadContent === "whenExpanded";
51+
const renderContent = useRef(false);
52+
53+
renderContent.current ||= !lazyRender || !renderCollapsed;
5254

5355
const completeTransitioning = useCallback((): void => {
5456
if (contentWrapperRef.current && rootRef.current && animatingContent.current) {
@@ -189,11 +191,7 @@ export function AccordionGroup(props: AccordionGroupProps): ReactElement | null
189191
aria-labelledby={`${props.id}HeaderButton`}
190192
>
191193
<div ref={contentRef} className={"widget-accordion-group-content"}>
192-
{lazyRender ? (
193-
<MountOnceReady ready={!renderCollapsed}>{props.content}</MountOnceReady>
194-
) : (
195-
props.content
196-
)}
194+
{renderContent.current ? props.content : null}
197195
</div>
198196
</div>
199197
</section>

packages/pluggableWidgets/accordion-web/src/components/MountOnceReady.tsx

Lines changed: 0 additions & 14 deletions
This file was deleted.

packages/pluggableWidgets/accordion-web/src/components/__tests__/MountOnceReady.spec.tsx

Lines changed: 0 additions & 70 deletions
This file was deleted.

packages/pluggableWidgets/accordion-web/typings/AccordionProps.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ export type HeaderRenderModeEnum = "text" | "custom";
1010

1111
export type HeaderHeadingEnum = "headingOne" | "headingTwo" | "headingThree" | "headingFour" | "headingFive" | "headingSix";
1212

13+
export type LoadContentEnum = "always" | "whenExpanded";
14+
1315
export type InitialCollapsedStateEnum = "expanded" | "collapsed" | "dynamic";
1416

1517
export interface GroupsType {
@@ -20,6 +22,7 @@ export interface GroupsType {
2022
content?: ReactNode;
2123
visible: DynamicValue<boolean>;
2224
dynamicClass?: DynamicValue<string>;
25+
loadContent: LoadContentEnum;
2326
initialCollapsedState: InitialCollapsedStateEnum;
2427
initiallyCollapsed: DynamicValue<boolean>;
2528
collapsed?: EditableValue<boolean>;
@@ -37,6 +40,7 @@ export interface GroupsPreviewType {
3740
content: { widgetCount: number; renderer: ComponentType<{ caption?: string }> };
3841
visible: string;
3942
dynamicClass: string;
43+
loadContent: LoadContentEnum;
4044
initialCollapsedState: InitialCollapsedStateEnum;
4145
initiallyCollapsed: string;
4246
collapsed: string;

0 commit comments

Comments
 (0)