UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

39 lines 1.68 kB
"use strict"; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module Internal */ Object.defineProperty(exports, "__esModule", { value: true }); exports.useTableOptions = useTableOptions; const react_1 = require("react"); const presentation_common_1 = require("@itwin/presentation-common"); /** @internal */ function useTableOptions(props) { const { columns } = props; const [options, setOptions] = (0, react_1.useState)({}); (0, react_1.useEffect)(() => { setOptions({}); }, [columns]); const sort = (0, react_1.useCallback)((columnName, descending) => { const field = columns?.find((column) => column.name === columnName)?.field; if (!field) { setOptions((prev) => ({ ...prev, sorting: undefined })); return; } setOptions((prev) => ({ ...prev, sorting: { field: field.getFieldDescriptor(), direction: descending ? presentation_common_1.SortDirection.Descending : presentation_common_1.SortDirection.Ascending, }, })); }, [columns]); const filter = (0, react_1.useCallback)((filterExpression) => { setOptions((prev) => ({ ...prev, fieldsFilterExpression: filterExpression })); }, []); return { options, sort, filter }; } //# sourceMappingURL=UseTableOptions.js.map