diff --git a/packages/jsapi-components/src/spectrum/Picker/Picker.tsx b/packages/jsapi-components/src/spectrum/Picker/Picker.tsx index 45fbf52291..89283a6c40 100644 --- a/packages/jsapi-components/src/spectrum/Picker/Picker.tsx +++ b/packages/jsapi-components/src/spectrum/Picker/Picker.tsx @@ -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'); @@ -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, diff --git a/packages/jsapi-components/src/spectrum/Picker/index.ts b/packages/jsapi-components/src/spectrum/Picker/index.ts index f8fadc724f..c434d5d810 100644 --- a/packages/jsapi-components/src/spectrum/Picker/index.ts +++ b/packages/jsapi-components/src/spectrum/Picker/index.ts @@ -1,2 +1 @@ export * from './Picker'; -export * from './PickerUtils'; diff --git a/packages/jsapi-components/src/spectrum/utils/index.ts b/packages/jsapi-components/src/spectrum/utils/index.ts new file mode 100644 index 0000000000..fe396f86c0 --- /dev/null +++ b/packages/jsapi-components/src/spectrum/utils/index.ts @@ -0,0 +1,2 @@ +export * from './itemUtils'; +export * from './useItemRowDeserializer'; diff --git a/packages/jsapi-components/src/spectrum/Picker/PickerUtils.test.tsx b/packages/jsapi-components/src/spectrum/utils/itemUtils.test.tsx similarity index 79% rename from packages/jsapi-components/src/spectrum/Picker/PickerUtils.test.tsx rename to packages/jsapi-components/src/spectrum/utils/itemUtils.test.tsx index a0f4a43735..6e9ca57e3b 100644 --- a/packages/jsapi-components/src/spectrum/Picker/PickerUtils.test.tsx +++ b/packages/jsapi-components/src/spectrum/utils/itemUtils.test.tsx @@ -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; @@ -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); } ); diff --git a/packages/jsapi-components/src/spectrum/Picker/PickerUtils.ts b/packages/jsapi-components/src/spectrum/utils/itemUtils.ts similarity index 93% rename from packages/jsapi-components/src/spectrum/Picker/PickerUtils.ts rename to packages/jsapi-components/src/spectrum/utils/itemUtils.ts index f37767cd09..f43168b07e 100644 --- a/packages/jsapi-components/src/spectrum/Picker/PickerUtils.ts +++ b/packages/jsapi-components/src/spectrum/utils/itemUtils.ts @@ -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 { @@ -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 diff --git a/packages/jsapi-components/src/spectrum/Picker/usePickerItemRowDeserializer.test.ts b/packages/jsapi-components/src/spectrum/utils/useItemRowDeserializer.test.ts similarity index 95% rename from packages/jsapi-components/src/spectrum/Picker/usePickerItemRowDeserializer.test.ts rename to packages/jsapi-components/src/spectrum/utils/useItemRowDeserializer.test.ts index 3d2fdfd33f..2e73a83474 100644 --- a/packages/jsapi-components/src/spectrum/Picker/usePickerItemRowDeserializer.test.ts +++ b/packages/jsapi-components/src/spectrum/utils/useItemRowDeserializer.test.ts @@ -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'); diff --git a/packages/jsapi-components/src/spectrum/Picker/usePickerItemRowDeserializer.ts b/packages/jsapi-components/src/spectrum/utils/useItemRowDeserializer.ts similarity index 82% rename from packages/jsapi-components/src/spectrum/Picker/usePickerItemRowDeserializer.ts rename to packages/jsapi-components/src/spectrum/utils/useItemRowDeserializer.ts index 28c5822a32..6252209bd9 100644 --- a/packages/jsapi-components/src/spectrum/Picker/usePickerItemRowDeserializer.ts +++ b/packages/jsapi-components/src/spectrum/utils/useItemRowDeserializer.ts @@ -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 ( @@ -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, @@ -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] ); @@ -66,4 +64,4 @@ export function usePickerItemRowDeserializer({ return deserializeRow; } -export default usePickerItemRowDeserializer; +export default useItemRowDeserializer;