All files / hooks useModConfigEntries.js

16.66% Statements 2/12
0% Branches 0/3
0% Functions 0/2
16.66% Lines 2/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                  27x                                                                       27x              
import PropTypes from 'prop-types';
 
import { useQuery } from 'react-query';
import { useOkapiKy } from '@folio/stripes/core';
import { modConfigEntriesQueryKey, parseModConfigEntry } from '../utils';
import { MOD_SETTINGS_ENDPOINT } from '../constants/endpoints';
 
// DEPRECATED -- As far as I can see this is now unused anyway
// KInt modules are swapping to AppSettings instead of mod-settings, so no centralised components should be needed
const useModConfigEntries = ({
  configName,
  moduleName,
  namespaceAppend,
  queryParams
}) => {
  // eslint-disable-next-line no-console
  console.warn('useModConfigEntries is deprecated, as it utilises mod-config');
 
  const ky = useOkapiKy();
 
  const query = `?query=(module=${moduleName} and configName=${configName})`;
  const path = `${MOD_SETTINGS_ENDPOINT}${query}`;
 
  const namespace = modConfigEntriesQueryKey({
    configName,
    moduleName,
    namespaceAppend
  });
 
  const queryObject = useQuery(
    namespace,
    () => ky(path).json(),
    queryParams
  );
 
  const { data: { configs: { 0: settings = {} } = [] } = {} } = queryObject;
  const parsedSettings = parseModConfigEntry(settings);
 
  return {
    parsedSettings,
    queryObject,
    settings
  };
};
 
useModConfigEntries.propTypes = {
  moduleName: PropTypes.string,
  configName: PropTypes.string,
  queryParams: PropTypes.object,
};
 
export default useModConfigEntries;