controls.tsx 1015 B

12345678910111213141516171819202122232425
  1. /**
  2. * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author David Sehnal <david.sehnal@gmail.com>
  5. */
  6. import * as React from 'react';
  7. import * as ReactDOM from 'react-dom';
  8. import { AlphaOrbitalsExample } from '.';
  9. import { ParameterControls } from '../../mol-plugin-ui/controls/parameters';
  10. import { useBehavior } from '../../mol-plugin-ui/hooks/use-behavior';
  11. import { PluginContextContainer } from '../../mol-plugin-ui/plugin';
  12. export function mountControls(orbitals: AlphaOrbitalsExample, parent: Element) {
  13. ReactDOM.render(<PluginContextContainer plugin={orbitals.plugin}>
  14. <Controls orbitals={orbitals} />
  15. </PluginContextContainer>, parent);
  16. }
  17. function Controls({ orbitals }: { orbitals: AlphaOrbitalsExample }) {
  18. const params = useBehavior(orbitals.params);
  19. const values = useBehavior(orbitals.state);
  20. return <ParameterControls params={params as any} values={values} onChangeValues={(vs: any) => orbitals.state.next(vs)} />;
  21. }