• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

glideapps / glide-data-grid / 6381284492

02 Oct 2023 02:12PM UTC coverage: 85.763%. First build
6381284492

Pull #781

github

web-flow
Merge 2a7a3c728 into 0ea52f371
Pull Request #781: 5.3.1

3376 of 4436 branches covered (0.0%)

223 of 223 new or added lines in 28 files covered. (100.0%)

3988 of 4650 relevant lines covered (85.76%)

3215.69 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.91
/packages/core/src/data-editor/use-rem-adjuster.ts
1
import React from "react";
10✔
2
import { getDataEditorTheme, type Theme } from "../common/styles";
10✔
3

4
interface DataEditorDimensions {
5
    rowHeight: number | ((n: number) => number);
6
    headerHeight: number;
7
    groupHeaderHeight: number;
8
    theme: Partial<Theme> | undefined;
9
    overscrollX: number | undefined;
10
    overscrollY: number | undefined;
11
}
12

13
interface DataEditorProps {
14
    rowHeight: number | ((n: number) => number);
15
    headerHeight: number;
16
    groupHeaderHeight: number;
17
    theme?: Partial<Theme>;
18
    overscrollX?: number;
19
    overscrollY?: number;
20
    scaleToRem: boolean;
21
    remSize: number;
22
}
23

24
export function useRemAdjuster({
25
    rowHeight: rowHeightIn,
26
    headerHeight: headerHeightIn,
27
    groupHeaderHeight: groupHeaderHeightIn,
28
    theme: themeIn,
29
    overscrollX: overscrollXIn,
30
    overscrollY: overscrollYIn,
31
    scaleToRem,
32
    remSize,
33
}: DataEditorProps): DataEditorDimensions {
34
    const [rowHeight, headerHeight, groupHeaderHeight, theme, overscrollX, overscrollY] = React.useMemo(() => {
651✔
35
        if (!scaleToRem || remSize === 16)
135✔
36
            return [rowHeightIn, headerHeightIn, groupHeaderHeightIn, themeIn, overscrollXIn, overscrollYIn];
133✔
37
        const scaler = remSize / 16;
2✔
38
        const rh = rowHeightIn;
2✔
39
        const bt = getDataEditorTheme();
2✔
40
        return [
2✔
41
            typeof rh === "number" ? rh * scaler : (n: number) => Math.ceil(rh(n) * scaler),
×
42
            Math.ceil(headerHeightIn * scaler),
43
            Math.ceil(groupHeaderHeightIn * scaler),
44
            {
45
                ...themeIn,
46
                headerIconSize: (themeIn?.headerIconSize ?? bt.headerIconSize) * scaler,
12!
47
                cellHorizontalPadding: (themeIn?.cellHorizontalPadding ?? bt.cellHorizontalPadding) * scaler,
12!
48
                cellVerticalPadding: (themeIn?.cellVerticalPadding ?? bt.cellVerticalPadding) * scaler,
12!
49
            },
50
            Math.ceil((overscrollXIn ?? 0) * scaler),
6!
51
            Math.ceil((overscrollYIn ?? 0) * scaler),
6!
52
        ];
53
    }, [groupHeaderHeightIn, headerHeightIn, overscrollXIn, overscrollYIn, remSize, rowHeightIn, scaleToRem, themeIn]);
54

55
    return { rowHeight, headerHeight, groupHeaderHeight, theme, overscrollX, overscrollY };
651✔
56
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc