JSONViewer.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react';
  2. import JSONEditor from 'components/common/JSONEditor/JSONEditor';
  3. import { StyledWrapper } from './StyledWrapper.styled';
  4. export interface FullMessageProps {
  5. data: string;
  6. maxLines?: number;
  7. }
  8. const JSONViewer: React.FC<FullMessageProps> = ({ data, maxLines }) => {
  9. try {
  10. if (data.trim().startsWith('{')) {
  11. return (
  12. <StyledWrapper data-testid="json-viewer">
  13. <JSONEditor
  14. isFixedHeight
  15. name="schema"
  16. value={JSON.stringify(JSON.parse(data), null, '\t')}
  17. setOptions={{
  18. showLineNumbers: false,
  19. maxLines,
  20. showGutter: false,
  21. }}
  22. readOnly
  23. />
  24. </StyledWrapper>
  25. );
  26. }
  27. return (
  28. <StyledWrapper data-testid="json-viewer">
  29. <p>{JSON.stringify(data)}</p>
  30. </StyledWrapper>
  31. );
  32. } catch (e) {
  33. return (
  34. <StyledWrapper data-testid="json-viewer">
  35. <p>{data}</p>
  36. </StyledWrapper>
  37. );
  38. }
  39. };
  40. export default JSONViewer;