UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

51 lines 1.43 kB
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["apiRef"]; import * as React from 'react'; export const useExtractPluginParamsFromProps = _ref => { let { props: { apiRef }, plugins } = _ref, props = _objectWithoutPropertiesLoose(_ref.props, _excluded); const paramsLookup = React.useMemo(() => { const tempParamsLookup = {}; plugins.forEach(plugin => { Object.assign(tempParamsLookup, plugin.params); }); return tempParamsLookup; }, [plugins]); const { forwardedProps, pluginParams } = React.useMemo(() => { const tempPluginParams = {}; const tempForwardedProps = {}; Object.keys(props).forEach(propName => { const prop = props[propName]; if (paramsLookup[propName]) { tempPluginParams[propName] = prop; } else { tempForwardedProps[propName] = prop; } }); const pluginParamsWithDefaults = plugins.reduce((acc, plugin) => { if (plugin.applyDefaultValuesToParams) { return plugin.applyDefaultValuesToParams({ params: acc }); } return acc; }, tempPluginParams); return { forwardedProps: tempForwardedProps, pluginParams: pluginParamsWithDefaults }; }, [plugins, props, paramsLookup]); return { forwardedProps, pluginParams, apiRef }; };