Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { type FC, type ReactNode, type RefObject } from "react";
import React, { type FC, type ReactNode, type RefObject, useMemo } from "react";
import LayerContext from "./LayerContext";

export interface LayerProviderType {
Expand All @@ -13,7 +13,8 @@ export interface LayerProviderType {
}

const LayerProvider: FC<LayerProviderType> = ({ children, layerRef }) => {
return <LayerContext.Provider value={{ layerRef }}>{children}</LayerContext.Provider>;
const value = useMemo(() => ({ layerRef }), [layerRef]);
return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>;
};

export default LayerProvider;
3 changes: 2 additions & 1 deletion packages/components/typography/src/Heading/Heading.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { type HeadingType, type HeadingWeight } from "./Heading.types";
import { type TypographyAlign, type TypographyColor } from "../Typography/Typography.types";

const OVERFLOW_TOLERANCE_IN_PX = 4;
const HEADING_TYPOGRAPHY_CONTEXT_VALUE = { overflowTolerance: OVERFLOW_TOLERANCE_IN_PX };

export interface HeadingProps extends TypographyProps {
/**
Expand Down Expand Up @@ -39,7 +40,7 @@ const Heading = forwardRef(
ref: React.ForwardedRef<HTMLElement>
) => {
return (
<TypographyContext.Provider value={{ overflowTolerance: OVERFLOW_TOLERANCE_IN_PX }}>
<TypographyContext.Provider value={HEADING_TYPOGRAPHY_CONTEXT_VALUE}>
<Typography
element={type}
ref={ref}
Expand Down
5 changes: 3 additions & 2 deletions packages/core/src/components/AlertBanner/AlertBanner.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { getTestId } from "../../tests/test-ids-utils";
import { type VibeComponentProps } from "../../types";
import styles from "./AlertBanner.module.scss";
import { Text } from "@vibe/typography";
import { AlertBannerContext } from "./AlertBannerContext";
import { AlertBannerContext, type AlertBannerContextType } from "./AlertBannerContext";

type ChildrenType = ReactElement<AlertBannerButtonProps | AlertBannerLinkProps | AlertBannerTextProps>;

Expand Down Expand Up @@ -71,6 +71,7 @@ const AlertBanner = forwardRef(
}
return isDarkBackground ? "onInverted" : "onPrimary";
}, [isDarkBackground, isFixedColor]);
const alertBannerContextValue = useMemo<AlertBannerContextType>(() => ({ textColor }), [textColor]);
const children = useMemo(() => {
const allChildren = React.Children.toArray(originalChildren) as ReactElement[];
const filteredChildren = allChildren.filter(
Expand Down Expand Up @@ -109,7 +110,7 @@ const AlertBanner = forwardRef(
data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER, id)}
data-vibe={ComponentVibeId.ALERT_BANNER}
>
<AlertBannerContext.Provider value={{ textColor }}>
<AlertBannerContext.Provider value={alertBannerContextValue}>
<div className={cx(styles.content)}>
{children.map(
(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from "react";
import { type TypographyColor } from "@vibe/typography";

type AlertBannerContextType = {
export type AlertBannerContextType = {
textColor: Extract<TypographyColor, "onPrimary" | "onInverted" | "fixedDark">;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,5 @@ export const useGridKeyboardNavigationContext = (
},
[directionMaps, upperContext, wrapperRef, options.disabled]
);
return { onOutboundNavigation };
return useMemo(() => ({ onOutboundNavigation }), [onOutboundNavigation]);
};
4 changes: 3 additions & 1 deletion packages/core/src/components/List/List.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ const List = forwardRef(
}
}, [updateFocusedItem]);

const listContextValue = useMemo(() => ({ updateFocusedItem }), [updateFocusedItem]);

const overrideChildren = useMemo(() => {
let override: ReactElement | ReactElement[] = Array.isArray(children) ? children : [children];
if (renderOnlyVisibleItems) {
Expand Down Expand Up @@ -170,7 +172,7 @@ const List = forwardRef(
}, [children, component, focusIndex, overrideId, renderOnlyVisibleItems]);

return (
<ListContext.Provider value={{ updateFocusedItem }}>
<ListContext.Provider value={listContextValue}>
<Component
data-testid={dataTestId || getTestId(ComponentDefaultTestId.LIST, id)}
data-vibe={ComponentVibeId.LIST}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { forwardRef, useRef } from "react";
import React, { forwardRef, useMemo, useRef } from "react";
import { TableContainerProvider } from "../context/TableContainerContext/TableContainerContext";
import { type TableContainerProps } from "./TableContainer.types";
import { getTestId } from "../../../tests/test-ids-utils";
Expand All @@ -12,9 +12,10 @@ const TableContainer = forwardRef(
ref: React.ForwardedRef<HTMLDivElement>
) => {
const menuContainerRef = useRef<HTMLDivElement>(null);
const tableContainerContextValue = useMemo(() => ({ menuContainerRef }), []);

return (
<TableContainerProvider value={{ menuContainerRef }}>
<TableContainerProvider value={tableContainerContextValue}>
<div
ref={ref}
id={id}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ const RelatedComponents: React.FC<RelatedComponentsProps> & { linkTargets?: type
[componentsNames, descriptionComponentsMap],
);

const relatedComponentsContextValue = useMemo(() => ({ linkTarget }), [linkTarget]);

return (
<RelatedComponentsContext.Provider value={{ linkTarget }}>
<RelatedComponentsContext.Provider value={relatedComponentsContextValue}>
<article className={styles.relatedComponents}>{componentsDataElements}</article>
</RelatedComponentsContext.Provider>
);
Expand Down
Loading