Skip to content

Commit 18d4cbf

Browse files
committed
feat: updating custom breakpoint props
1 parent b816d82 commit 18d4cbf

File tree

4 files changed

+23
-15
lines changed

4 files changed

+23
-15
lines changed

packages/module/src/WidgetLayout/GridLayout.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ import {
1212
ExtendedTemplateConfig,
1313
AnalyticsTracker,
1414
WidgetConfiguration,
15+
Breakpoints,
1516
} from './types';
1617
import { Button, EmptyState, EmptyStateActions, EmptyStateBody, EmptyStateVariant, PageSection } from '@patternfly/react-core';
1718
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/esm/icons/external-link-alt-icon';
1819
import GripVerticalIcon from '@patternfly/react-icons/dist/esm/icons/grip-vertical-icon';
1920
import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
20-
import { columns, breakpoints, droppingElemId, getWidgetIdentifier, extendLayout, getGridDimensions } from './utils';
21+
import { defaultBreakpoints, defaultColumns, droppingElemId, getWidgetIdentifier, extendLayout, getGridDimensions } from './utils';
2122

22-
export const defaultBreakpoints = breakpoints;
23+
export { defaultBreakpoints };
2324

2425
const createSerializableConfig = (config?: WidgetConfiguration) => {
2526
if (!config) { return undefined; }
@@ -63,9 +64,9 @@ export interface GridLayoutProps {
6364
/** Resize configuration options */
6465
resizeWidgetConfig?: Partial<ResizeConfig>;
6566
/** Custom breakpoints for responsive layout (container width thresholds in px) */
66-
customBreakpoints?: Record<Variants, number>;
67+
breakpoints?: Breakpoints;
6768
/** Custom column counts per breakpoint variant */
68-
customColumns?: Record<Variants, number>;
69+
columns?: Record<Variants, number>;
6970
}
7071

7172
const LayoutEmptyState = ({
@@ -111,10 +112,10 @@ const GridLayout = ({
111112
onActiveWidgetsChange,
112113
droppingWidgetType,
113114
resizeWidgetConfig,
114-
customBreakpoints,
115-
customColumns,
115+
breakpoints = defaultBreakpoints,
116+
columns = defaultColumns,
116117
}: GridLayoutProps) => {
117-
const activeColumns = customColumns ?? columns;
118+
const activeColumns = columns;
118119
const [isDragging, setIsDragging] = useState(false);
119120
const [isInitialRender, setIsInitialRender] = useState(true);
120121
const [layoutVariant, setLayoutVariant] = useState<Variants>('xl');
@@ -233,7 +234,7 @@ const GridLayout = ({
233234
// Update layout variant when container width changes
234235
useEffect(() => {
235236
if (mounted && layoutWidth > 0) {
236-
const variant: Variants = getGridDimensions(layoutWidth, customBreakpoints);
237+
const variant: Variants = getGridDimensions(layoutWidth, breakpoints);
237238
setLayoutVariant(variant);
238239
}
239240
}, [layoutWidth, mounted]);

packages/module/src/WidgetLayout/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export { default as WidgetDrawer } from './WidgetDrawer';
55

66
export * from './types';
77
export {
8-
columns,
9-
breakpoints,
8+
defaultColumns,
9+
defaultBreakpoints,
1010
droppingElemId,
1111
getWidgetIdentifier,
1212
mapWidgetDefaults,

packages/module/src/WidgetLayout/types.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ export const widgetIdSeparator = '#';
55

66
export type Variants = 'sm' | 'md' | 'lg' | 'xl';
77

8+
export type Breakpoints = {
9+
sm: number;
10+
md: number;
11+
lg: number;
12+
xl: number;
13+
};
14+
815
export type LayoutWithTitle = LayoutItem & { title: string };
916

1017
export type TemplateConfig = {

packages/module/src/WidgetLayout/utils.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { ExtendedTemplateConfig, TemplateConfig, Variants, widgetIdSeparator } from './types';
1+
import { ExtendedTemplateConfig, TemplateConfig, Variants, widgetIdSeparator, Breakpoints } from './types';
22

33
export const droppingElemId = '__dropping-elem__';
44

5-
export const columns: Record<Variants, number> = { xl: 4, lg: 3, md: 2, sm: 1 };
5+
export const defaultColumns: Record<Variants, number> = { xl: 4, lg: 3, md: 2, sm: 1 };
66

7-
export const breakpoints: Record<Variants, number> = { xl: 1550, lg: 1400, md: 1100, sm: 800 };
7+
export const defaultBreakpoints: Breakpoints = { xl: 1550, lg: 1400, md: 1100, sm: 800 };
88

99
/**
1010
* Generate a unique widget identifier
@@ -52,8 +52,8 @@ export const extendLayout = (extendedTemplateConfig: ExtendedTemplateConfig): Ex
5252
/**
5353
* Get grid dimensions based on container width
5454
*/
55-
export function getGridDimensions(currentWidth: number, customBreakpoints?: Record<Variants, number>): Variants {
56-
const bp = customBreakpoints ?? breakpoints;
55+
export function getGridDimensions(currentWidth: number, breakpoints: Breakpoints = defaultBreakpoints): Variants {
56+
const bp = breakpoints;
5757
if (currentWidth >= bp.xl) {
5858
return 'xl';
5959
}

0 commit comments

Comments
 (0)