text: import * as Settings from '../util/settings';
  
  export const registerSettings = (id, { label, render, category }) => {
    const { React } = goosemodScope.webpackModules.common;
  
    const SettingsView = goosemodScope.webpackModules.findByDisplayName('SettingsView');
  
    const FormTitle = goosemodScope.webpackModules.findByDisplayName('FormTitle');
    const FormSection = goosemodScope.webpackModules.findByDisplayName('FormSection');
  
    if (!Settings.settingStores[category]) Settings.makeStore(category);
  
    goosemodScope.patcher.inject(id, SettingsView.prototype, 'getPredicateSections', (_, sections) => {
      const logout = sections.find((c) => c.section === 'logout');
      if (!logout) return sections;
  
      const finalLabel = typeof label === 'function' ? label() : label;
  
      sections.splice(sections.indexOf(logout) - 1, 0,
        {
          section: finalLabel,
          label: finalLabel,
          predicate: () => { },
          element: () => React.createElement(FormSection, { },
            React.createElement(FormTitle, { tag: 'h2' }, finalLabel),
  
            React.createElement(render, {
              ...Settings.settingStores[category]
            })
          )
        }
      );
  
      return sections;
    });
  };
  
  export const unregisterSettings = (id) => {
    goosemodScope.patcher.uninject(id);
  };