index.stories.tsx 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import LoadingIndicator from 'sentry/components/loadingIndicator';
  2. import storyBook from 'sentry/stories/storyBook';
  3. import type {Actor, Member} from 'sentry/types';
  4. import useOrganization from 'sentry/utils/useOrganization';
  5. import useProjects from 'sentry/utils/useProjects';
  6. import {useTeams} from 'sentry/utils/useTeams';
  7. import {useUser} from 'sentry/utils/useUser';
  8. import SideBySide from '../stories/sideBySide';
  9. import IdBadge from '.';
  10. export default storyBook(IdBadge, story => {
  11. story('Organization', () => {
  12. const org = useOrganization();
  13. return <IdBadge organization={org} />;
  14. });
  15. story('Team', () => {
  16. const {teams} = useTeams();
  17. if (teams.length === 0) {
  18. return <LoadingIndicator />;
  19. }
  20. return <IdBadge team={teams[0]} />;
  21. });
  22. story('Project', () => {
  23. const {projects} = useProjects();
  24. const myProject = projects.filter(p => p.isMember);
  25. if (myProject.length === 0) {
  26. return <LoadingIndicator />;
  27. }
  28. return <IdBadge project={myProject[0]} />;
  29. });
  30. story('User', () => {
  31. const user = useUser();
  32. return <IdBadge user={user} />;
  33. });
  34. story('Member', () => {
  35. const user = useUser();
  36. // XXX(epurkhiser): There's no easy way to get a member, so just use a
  37. // "mock" member
  38. const member: Member = {
  39. dateCreated: '',
  40. email: user.email,
  41. expired: false,
  42. id: '0',
  43. inviteStatus: 'approved',
  44. invite_link: null,
  45. inviterName: null,
  46. isOnlyOwner: false,
  47. name: user.name,
  48. orgRole: 'member',
  49. orgRoleList: [],
  50. pending: false,
  51. projects: [],
  52. role: '',
  53. roleName: 'Member',
  54. /**
  55. * @deprecated use orgRoleList
  56. */
  57. roles: [],
  58. teamRoleList: [],
  59. teamRoles: [],
  60. teams: [],
  61. user: user,
  62. flags: {
  63. 'idp:provisioned': false,
  64. 'idp:role-restricted': false,
  65. 'member-limit:restricted': false,
  66. 'partnership:restricted': false,
  67. 'sso:invalid': false,
  68. 'sso:linked': false,
  69. },
  70. };
  71. return <IdBadge member={member} />;
  72. });
  73. story('Actor', () => {
  74. const user = useUser();
  75. const {teams} = useTeams();
  76. const userActor: Actor = {
  77. type: 'user',
  78. id: user.id,
  79. name: user.name,
  80. email: user.email,
  81. };
  82. const teamActor: Actor = {
  83. type: 'team',
  84. id: teams[0].id,
  85. name: teams[0].name,
  86. };
  87. return (
  88. <SideBySide>
  89. <IdBadge actor={userActor} />
  90. <IdBadge actor={teamActor} />
  91. </SideBySide>
  92. );
  93. });
  94. });