Guest User

Untitled

a guest
Jun 18th, 2025
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. import { CodeEditorControl } from '@patternfly/react-code-editor';
  2. import { Flex, FlexItem, Modal, ModalBody, ModalHeader, Split, SplitItem, Switch } from '@patternfly/react-core';
  3. import { CogIcon, ListIcon, OptimizeIcon, TableIcon } from '@patternfly/react-icons';
  4. import * as React from 'react';
  5.  
  6. const ConfigModalItem = ({ title, description, onClick, Icon = CogIcon }) => {
  7. const [checked, setChecked] = React.useState(false);
  8.  
  9. return (
  10. <Split hasGutter>
  11. <SplitItem isFilled>
  12. <Flex alignItems={{ default: 'alignItemsCenter' }} spaceItems={{ default: 'spaceItemsMd' }}>
  13. <FlexItem>
  14. <Icon />
  15. </FlexItem>
  16. <FlexItem>
  17. <span className="pf-v6-u-font-weight-bold">{title}</span>
  18. <p>{description}</p>
  19. </FlexItem>
  20. </Flex>
  21. </SplitItem>
  22. <SplitItem>
  23. <Switch
  24. id={title}
  25. isReversed
  26. label={checked ? 'On' : 'Off'}
  27. onChange={(_, c) => {
  28. setChecked(c);
  29. onClick(c);
  30. }}
  31. aria-label={title}
  32. className="pf-v6-u-mt-sm"
  33. isChecked={checked}
  34. />
  35. </SplitItem>
  36. </Split>
  37. );
  38. }
  39.  
  40. const ConfigModalMockup = () => {
  41. const [isModalOpen, setIsModalOpen] = React.useState(false);
  42.  
  43. return (
  44. <>
  45. <Modal
  46. isOpen={isModalOpen}
  47. onClose={() => setIsModalOpen(!isModalOpen)}
  48. ouiaId="BasicModal"
  49. variant="small"
  50. aria-labelledby="basic-modal-title"
  51. aria-describedby="modal-box-body-basic"
  52. >
  53. <ModalHeader title="Editor settings" labelId="basic-modal-title" />
  54. <ModalBody id="modal-box-body-basic">
  55. <Flex direction={{ default: 'column' }} spaceItems={{ default: 'spaceItemsMd' }}>
  56. <ConfigModalItem
  57. title="Enable OpenShift Lightspeed"
  58. description="Enable or disable OpenShift Lightspeed for this editor."
  59. onClick={(checked) => console.log('OpenShift Lightspeed:', checked)}
  60. Icon={OptimizeIcon}
  61. />
  62. <ConfigModalItem
  63. title="Enable Tooltips"
  64. description="Enable or disable tooltips for code suggestions and actions."
  65. onClick={(checked) => console.log('Tooltips:', checked)}
  66. Icon={ListIcon}
  67. />
  68. <ConfigModalItem
  69. title="Enable Sticky Scroll"
  70. description="Enable or disable sticky scroll for code navigation."
  71. onClick={(checked) => console.log('Sticky Scroll:', checked)}
  72. Icon={TableIcon}
  73. />
  74. </Flex>
  75. </ModalBody>
  76. </Modal>
  77. <CodeEditorControl
  78. icon={<CogIcon />}
  79. aria-label="Editor settings"
  80. tooltipProps={{ content: 'Editor settings' }}
  81. onClick={() => setIsModalOpen(true)}
  82. />
  83. </>
  84. )
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment