Files
webstudio/apps/builder/app/shared/breakpoints/group-breakpoints.ts
T
Bogdan Chadkin 886f839951 Upgrade to prettier v3 (#1973)
Ref https://prettier.io/blog/2023/07/05/3.0.0.html

Smaller package size, trailing comma for types always enabled, though I
disabled it for code.
2023-07-24 18:36:10 +03:00

18 lines
656 B
TypeScript

import { compareMedia } from "@webstudio-is/css-engine";
import { isBaseBreakpoint } from "./is-base-breakpoint";
// We group in 3 groups: min-width, base (no min/max), max-width conditions
export const groupBreakpoints = <
Breakpoint extends { minWidth?: number; maxWidth?: number },
>(
breakpoints: Array<Breakpoint>
) => {
const sorted = [...breakpoints].sort(compareMedia);
const maxs = sorted.filter((breakpoint) => breakpoint.maxWidth !== undefined);
const mins = sorted
.filter((breakpoint) => breakpoint.minWidth !== undefined)
.reverse();
const base = sorted.filter(isBaseBreakpoint);
return [...mins, ...base, ...maxs];
};