Skip to content

Commit

Permalink
Move / rename of jsapi Picker utils (deephaven#1909)
Browse files Browse the repository at this point in the history
  • Loading branch information
bmingles committed Apr 2, 2024
1 parent a6f38fd commit 3b1536e
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 23 deletions.
8 changes: 4 additions & 4 deletions packages/jsapi-components/src/spectrum/Picker/Picker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import { useCallback, useEffect, useMemo } from 'react';
import useFormatter from '../../useFormatter';
import useGetItemIndexByValue from '../../useGetItemIndexByValue';
import { useViewportData } from '../../useViewportData';
import { getPickerKeyColumn } from './PickerUtils';
import { usePickerItemRowDeserializer } from './usePickerItemRowDeserializer';
import { getItemKeyColumn } from '../utils/itemUtils';
import { useItemRowDeserializer } from '../utils/useItemRowDeserializer';

const log = Log.module('jsapi-components.Picker');

Expand All @@ -39,11 +39,11 @@ export function Picker({
const { getFormattedString: formatValue } = useFormatter(settings);

const keyColumn = useMemo(
() => getPickerKeyColumn(table, keyColumnName),
() => getItemKeyColumn(table, keyColumnName),
[keyColumnName, table]
);

const deserializeRow = usePickerItemRowDeserializer({
const deserializeRow = useItemRowDeserializer({
table,
keyColumnName,
labelColumnName,
Expand Down
1 change: 0 additions & 1 deletion packages/jsapi-components/src/spectrum/Picker/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
export * from './Picker';
export * from './PickerUtils';
2 changes: 2 additions & 0 deletions packages/jsapi-components/src/spectrum/utils/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './itemUtils';
export * from './useItemRowDeserializer';
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { type dh } from '@deephaven/jsapi-types';
import { TestUtils } from '@deephaven/utils';
import { getPickerKeyColumn, getPickerLabelColumn } from './PickerUtils';
import { getItemKeyColumn, getItemLabelColumn } from './itemUtils';

const { createMockProxy } = TestUtils;

Expand All @@ -22,27 +22,27 @@ beforeEach(() => {
expect.hasAssertions();
});

describe('getPickerKeyColumn', () => {
describe('getItemKeyColumn', () => {
it.each([
['keyColumn', keyColumn],
[undefined, columns[0]],
])(
'should return the given key column or fallback to the first column',
(keyColumnName, expectedColumn) => {
const actual = getPickerKeyColumn(table, keyColumnName);
const actual = getItemKeyColumn(table, keyColumnName);
expect(actual).toBe(expectedColumn);
}
);
});

describe('getPickerLabelColumn', () => {
describe('getItemLabelColumn', () => {
it.each([
['labelColumn', labelColumn],
[undefined, keyColumn],
])(
'should return the given label column or fallback to the key column',
(labelColumnName, expectedColumn) => {
const actual = getPickerLabelColumn(table, keyColumn, labelColumnName);
const actual = getItemLabelColumn(table, keyColumn, labelColumnName);
expect(actual).toBe(expectedColumn);
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { dh } from '@deephaven/jsapi-types';
* @param keyColumnName The name of the column to use for key data
* @returns DH Column containing the key values
*/
export function getPickerKeyColumn(
export function getItemKeyColumn(
table: dh.Table,
keyColumnName?: string
): dh.Column {
Expand All @@ -22,7 +22,7 @@ export function getPickerKeyColumn(
* @param labelColumnName The name of the column to use for label data
* @returns DH Column containing the label values
*/
export function getPickerLabelColumn(
export function getItemLabelColumn(
table: dh.Table,
keyColumn: dh.Column,
labelColumnName?: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { renderHook } from '@testing-library/react-hooks';
import type { dh } from '@deephaven/jsapi-types';
import { TestUtils } from '@deephaven/utils';
import { usePickerItemRowDeserializer } from './usePickerItemRowDeserializer';
import { getPickerKeyColumn, getPickerLabelColumn } from './PickerUtils';
import { usePickerItemRowDeserializer } from './useItemRowDeserializer';
import { getPickerKeyColumn, getPickerLabelColumn } from './collectionUtils';

jest.mock('./PickerUtils');

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useCallback, useMemo } from 'react';
import { NormalizedItemData } from '@deephaven/components';
import { dh } from '@deephaven/jsapi-types';
import { getPickerKeyColumn, getPickerLabelColumn } from './PickerUtils';
import { getItemKeyColumn, getItemLabelColumn } from './itemUtils';

function defaultFormatKey(value: unknown): string | number | boolean {
if (
Expand All @@ -20,16 +20,14 @@ function defaultFormatValue(value: unknown, _columnType: string): string {
}

/**
* Returns a function that deserializes a row into a normalized picker item data
* object.
* Returns a function that deserializes a row into a normalized item data object.
* @param table The table to get the key and label columns from
* @param keyColumnName The name of the column to use for key data
* @param labelColumnName The name of the column to use for label data
* @param formatValue Optional function to format the label value
* @returns A function that deserializes a row into a normalized picker item
* data object
* @returns A function that deserializes a row into a normalized item data object
*/
export function usePickerItemRowDeserializer({
export function useItemRowDeserializer({
table,
keyColumnName,
labelColumnName,
Expand All @@ -41,12 +39,12 @@ export function usePickerItemRowDeserializer({
formatValue?: (value: unknown, columnType: string) => string;
}): (row: dh.Row) => NormalizedItemData {
const keyColumn = useMemo(
() => getPickerKeyColumn(table, keyColumnName),
() => getItemKeyColumn(table, keyColumnName),
[keyColumnName, table]
);

const labelColumn = useMemo(
() => getPickerLabelColumn(table, keyColumn, labelColumnName),
() => getItemLabelColumn(table, keyColumn, labelColumnName),
[keyColumn, labelColumnName, table]
);

Expand All @@ -66,4 +64,4 @@ export function usePickerItemRowDeserializer({
return deserializeRow;
}

export default usePickerItemRowDeserializer;
export default useItemRowDeserializer;

0 comments on commit 3b1536e

Please sign in to comment.