online-users.stories.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { Meta } from '@storybook/react-webpack5'
  2. import { OnlineUser } from '@/features/ide-react/context/online-users-context'
  3. import { OnlineUsersWidget } from '@/features/editor-navigation-toolbar/components/online-users-widget'
  4. const NAMES = [
  5. 'Alice',
  6. 'Bob',
  7. 'Charlie',
  8. 'Dave',
  9. 'Erin',
  10. 'Frank',
  11. 'Grace',
  12. 'Heidi',
  13. 'Ivan',
  14. 'Judy',
  15. 'Mallory',
  16. 'Niaj',
  17. 'Olivia',
  18. 'Peggy',
  19. 'Rupert',
  20. ]
  21. const generateUser = (_: any, index: number): OnlineUser => {
  22. const name = NAMES[index % NAMES.length]
  23. return {
  24. user_id: `user_${'b'.repeat(index)}`,
  25. name,
  26. id: `user-${index}`,
  27. email: `${name.toLowerCase()}@example.com`,
  28. }
  29. }
  30. export const OnlineUsers = ({ users }: { users: number }) => {
  31. const generatedUsers = Array.from({ length: users }, generateUser)
  32. return (
  33. <div
  34. style={{
  35. backgroundColor: 'var(--online-users-border-color)',
  36. padding: '20px',
  37. }}
  38. >
  39. <OnlineUsersWidget
  40. onlineUsers={generatedUsers}
  41. goToUser={(async () => {}) as any}
  42. />
  43. </div>
  44. )
  45. }
  46. const meta: Meta<typeof OnlineUsers> = {
  47. title: 'Editor / Online Users Widget',
  48. args: {
  49. users: 6,
  50. },
  51. }
  52. export default meta