platform.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import styled from '@emotion/styled';
  2. import {motion} from 'framer-motion';
  3. import ExternalLink from 'sentry/components/links/externalLink';
  4. import MultiPlatformPicker from 'sentry/components/multiPlatformPicker';
  5. import {t, tct} from 'sentry/locale';
  6. import testableTransition from 'sentry/utils/testableTransition';
  7. import StepHeading from 'sentry/views/onboarding/components/stepHeading';
  8. import CreateProjectsFooter from './components/createProjectsFooter';
  9. import {StepProps} from './types';
  10. function OnboardingPlatform(props: StepProps) {
  11. return (
  12. <Wrapper>
  13. <StepHeading step={props.stepIndex}>
  14. {t('Select all your projects platform')}
  15. </StepHeading>
  16. <motion.div
  17. transition={testableTransition()}
  18. variants={{
  19. initial: {y: 30, opacity: 0},
  20. animate: {y: 0, opacity: 1},
  21. exit: {opacity: 0},
  22. }}
  23. >
  24. <p>
  25. {tct(
  26. `Variety is the spice of application monitoring. Sentry SDKs integrate
  27. with most languages and platforms your developer heart desires.
  28. [link:View the full list].`,
  29. {link: <ExternalLink href="https://docs.sentry.io/platforms/" />}
  30. )}
  31. </p>
  32. <MultiPlatformPicker noAutoFilter source="targeted-onboarding" {...props} />
  33. <CreateProjectsFooter {...props} />
  34. </motion.div>
  35. </Wrapper>
  36. );
  37. }
  38. export default OnboardingPlatform;
  39. const Wrapper = styled('div')`
  40. width: 850px;
  41. `;