fields.tsx 736 B

123456789101112131415161718192021222324252627282930313233343536
  1. import type {Location} from 'history';
  2. import {defined} from 'sentry/utils';
  3. import {decodeList} from 'sentry/utils/queryString';
  4. export function defaultFields(): string[] {
  5. return [
  6. 'id',
  7. 'span.op',
  8. 'span.description',
  9. 'span.duration',
  10. 'transaction',
  11. 'timestamp',
  12. ];
  13. }
  14. export function getFieldsFromLocation(location: Location): string[] {
  15. const fields = decodeList(location.query.field);
  16. if (fields.length) {
  17. return fields;
  18. }
  19. return defaultFields();
  20. }
  21. export function updateLocationWithFields(
  22. location: Location,
  23. fields: string[] | undefined | null
  24. ) {
  25. if (defined(fields)) {
  26. location.query.field = fields;
  27. } else if (fields === null) {
  28. delete location.query.field;
  29. }
  30. }