Skip to content

Commit

Permalink
Feat: isLazy on OverlayToggle, set media dependency to lazy
Browse files Browse the repository at this point in the history
  • Loading branch information
Vija02 committed Feb 15, 2025
1 parent a4a87e5 commit 18c4700
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
1 change: 1 addition & 0 deletions apps/homepage/src/pages/o/[slug]/media.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ const MediaDependencyPanel = ({

return (
<OverlayToggle
isLazy
toggler={({ onToggle }) => (
<Box
cursor="pointer"
Expand Down
16 changes: 10 additions & 6 deletions packages/ui/src/OverlayToggle.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ export type OverlayTogglePropTypes = {
toggler: (_prop: OverlayToggleTogglerFunctionProps) => React.ReactNode;
/** The Overlay component (Eg: Modal, Drawer) */
children: React.ReactElement<OverlayToggleComponentProps>;
/** If true, rendering of content will defer until the overlay is open */
isLazy?: boolean;
};

/**
Expand All @@ -35,6 +37,7 @@ export type OverlayTogglePropTypes = {
*/
export const OverlayToggle = ({
toggler,
isLazy,
children,
}: OverlayTogglePropTypes) => {
const { isOpen, onToggle, onOpen } = useDisclosure();
Expand All @@ -47,12 +50,13 @@ export const OverlayToggle = ({
return (
<>
{toggler({ onOpen, onToggle })}
{cloneElement(children, {
key,
isOpen,
onToggle,
resetData,
})}
{(isOpen || !isLazy) &&
cloneElement(children, {
key,
isOpen,
onToggle,
resetData,
})}
</>
);
};

0 comments on commit 18c4700

Please sign in to comment.