You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RuleDetailsParameters.tsx 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * SonarQube
  3. * Copyright (C) 2009-2024 SonarSource SA
  4. * mailto:info AT sonarsource DOT com
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 3 of the License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public License
  17. * along with this program; if not, write to the Free Software Foundation,
  18. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. import { CellComponent, Note, SubHeadingHighlight, Table, TableRow } from 'design-system';
  21. import * as React from 'react';
  22. import { translate } from '../../../helpers/l10n';
  23. import { sanitizeString } from '../../../helpers/sanitize';
  24. import { RuleParameter } from '../../../types/types';
  25. interface Props {
  26. params: RuleParameter[];
  27. }
  28. export default function RuleDetailsParameters({ params }: Props) {
  29. return (
  30. <div className="js-rule-parameters">
  31. <SubHeadingHighlight as="h3">{translate('coding_rules.parameters')}</SubHeadingHighlight>
  32. <Table className="sw-my-4" columnCount={2} columnWidths={[0, 'auto']}>
  33. {params.map((param) => (
  34. <TableRow key={param.key}>
  35. <CellComponent className="sw-align-top sw-font-semibold">{param.key}</CellComponent>
  36. <CellComponent>
  37. <div className="sw-flex sw-flex-col sw-gap-2">
  38. {param.htmlDesc !== undefined && (
  39. <div
  40. // eslint-disable-next-line react/no-danger
  41. dangerouslySetInnerHTML={{ __html: sanitizeString(param.htmlDesc) }}
  42. />
  43. )}
  44. {param.defaultValue !== undefined && (
  45. <Note as="div">
  46. {translate('coding_rules.parameters.default_value')}
  47. <br />
  48. <span className="coding-rules-detail-parameter-value">
  49. {param.defaultValue}
  50. </span>
  51. </Note>
  52. )}
  53. </div>
  54. </CellComponent>
  55. </TableRow>
  56. ))}
  57. </Table>
  58. </div>
  59. );
  60. }