demoMode.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import {OnboardingTaskKey} from 'sentry/types';
  2. export function extraQueryParameter(): URLSearchParams {
  3. const extraQueryString = window.SandboxData?.extraQueryString || '';
  4. const extraQuery = new URLSearchParams(extraQueryString);
  5. return extraQuery;
  6. }
  7. export function extraQueryParameterWithEmail(): URLSearchParams {
  8. const params = extraQueryParameter();
  9. const email = localStorage.getItem('email');
  10. if (email) {
  11. params.append('email', email);
  12. }
  13. return params;
  14. }
  15. export function extraQueryParameterWithEmailV2(): URLSearchParams {
  16. const params = extraQueryParameter();
  17. const email = localStorage.getItem('email');
  18. if (email) {
  19. params.append('email', email);
  20. }
  21. params.append('referrer', 'sandbox-walkthrough');
  22. return params;
  23. }
  24. export function urlAttachQueryParams(url: string, params: URLSearchParams): string {
  25. const queryString = params.toString();
  26. if (queryString) {
  27. return url + '?' + queryString;
  28. }
  29. return url;
  30. }
  31. // For the Sandbox, we are testing a new walkthrough. This affects a few different components of Sentry including the Onboarding Sidebar, Onboarding Tasks, the Demo End Modal, Demo Sign Up Modal, Guides, and more.
  32. // Outside of the Sandbox, this should have no effect on other elements of Sentry.
  33. export function isDemoWalkthrough(): boolean {
  34. return localStorage.getItem('new-walkthrough') === '1';
  35. }
  36. // Function to determine which tour has completed depending on the guide that is being passed in.
  37. export function getTourTask(
  38. guide: string
  39. ): {task: OnboardingTaskKey; tour: string} | undefined {
  40. switch (guide) {
  41. case 'sidebar_v2':
  42. return {tour: 'tabs', task: OnboardingTaskKey.SIDEBAR_GUIDE};
  43. case 'issues_v3':
  44. return {tour: 'issues', task: OnboardingTaskKey.ISSUE_GUIDE};
  45. case 'release-details_v2':
  46. return {tour: 'releases', task: OnboardingTaskKey.RELEASE_GUIDE};
  47. case 'transaction_details_v2':
  48. return {tour: 'performance', task: OnboardingTaskKey.PERFORMANCE_GUIDE};
  49. default:
  50. return undefined;
  51. }
  52. }