controls.tsx 993 B

123456789101112131415161718192021222324
  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 { createRoot } from 'react-dom/client';
  7. import { AlphaOrbitalsExample } from '.';
  8. import { ParameterControls } from '../../mol-plugin-ui/controls/parameters';
  9. import { useBehavior } from '../../mol-plugin-ui/hooks/use-behavior';
  10. import { PluginContextContainer } from '../../mol-plugin-ui/plugin';
  11. export function mountControls(orbitals: AlphaOrbitalsExample, parent: Element) {
  12. createRoot(parent).render(<PluginContextContainer plugin={orbitals.plugin}>
  13. <Controls orbitals={orbitals} />
  14. </PluginContextContainer>);
  15. }
  16. function Controls({ orbitals }: { orbitals: AlphaOrbitalsExample }) {
  17. const params = useBehavior(orbitals.params);
  18. const values = useBehavior(orbitals.state);
  19. return <ParameterControls params={params as any} values={values} onChangeValues={(vs: any) => orbitals.state.next(vs)} />;
  20. }