suggestedAvatarStack.stories.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import React from 'react';
  2. import styled from '@emotion/styled';
  3. import SuggestedAvatarStack from 'app/components/avatar/suggestedAvatarStack';
  4. import TeamStore from 'app/stores/teamStore';
  5. const exampleUserActor = {
  6. type: 'user',
  7. id: '1',
  8. name: 'Jane Bloggs',
  9. };
  10. const exampleTeam = {
  11. id: '2',
  12. name: 'Captain Planet',
  13. slug: 'captain-planet',
  14. isMember: true,
  15. hasAccess: true,
  16. isPending: false,
  17. memberCount: 1,
  18. avatar: 'letter_avatar',
  19. };
  20. const exampleTeamActor = {
  21. type: 'team',
  22. id: exampleTeam.id,
  23. name: exampleTeam.name,
  24. };
  25. const suggestionsWithUser = [exampleUserActor, exampleTeamActor, exampleTeamActor];
  26. const suggestionsWithTeam = [exampleTeamActor, exampleUserActor, exampleTeamActor];
  27. const options = {
  28. User: suggestionsWithUser,
  29. Team: suggestionsWithTeam,
  30. };
  31. export default {
  32. title: 'Core/Style/Avatar/SuggestedAvatar',
  33. component: SuggestedAvatarStack,
  34. };
  35. export const SuggestedAvatars = ({...args}) => {
  36. // Setup mock data
  37. TeamStore.loadInitialData([exampleTeam]);
  38. return (
  39. <SuggestedAvatarContainer>
  40. <SuggestedAvatarStack {...args} />
  41. </SuggestedAvatarContainer>
  42. );
  43. };
  44. SuggestedAvatars.args = {
  45. owners: suggestionsWithTeam,
  46. };
  47. SuggestedAvatars.argTypes = {
  48. owners: {
  49. control: {
  50. type: 'select',
  51. options,
  52. },
  53. },
  54. };
  55. SuggestedAvatars.parameters = {
  56. docs: {
  57. description: {
  58. story: 'Suggested avatar stack',
  59. },
  60. },
  61. };
  62. const SuggestedAvatarContainer = styled('div')`
  63. width: 40px;
  64. `;