readonly.tsx 881 B

12345678910111213141516171819202122232425262728293031
  1. import { useCallback } from 'react';
  2. import { usePlayground } from '@flowgram.ai/free-layout-editor';
  3. import { IconButton, Tooltip } from '@douyinfe/semi-ui';
  4. import { IconUnlock, IconLock } from '@douyinfe/semi-icons';
  5. export const Readonly = () => {
  6. const playground = usePlayground();
  7. const toggleReadonly = useCallback(() => {
  8. playground.config.readonly = !playground.config.readonly;
  9. }, [playground]);
  10. return playground.config.readonly ? (
  11. <Tooltip content="Editable">
  12. <IconButton
  13. theme="borderless"
  14. type="tertiary"
  15. icon={<IconLock size="default" />}
  16. onClick={toggleReadonly}
  17. />
  18. </Tooltip>
  19. ) : (
  20. <Tooltip content="Readonly">
  21. <IconButton
  22. theme="borderless"
  23. type="tertiary"
  24. icon={<IconUnlock size="default" />}
  25. onClick={toggleReadonly}
  26. />
  27. </Tooltip>
  28. );
  29. };