chat.stories.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import ChatPane from '../js/features/chat/components/chat-pane'
  2. import useFetchMock from './hooks/use-fetch-mock'
  3. import { generateMessages } from './fixtures/chat-messages'
  4. import { ScopeDecorator } from './decorators/scope'
  5. export const Conversation = args => {
  6. useFetchMock(fetchMock => {
  7. fetchMock.get(/messages/, generateMessages(35)).post(/messages/, {})
  8. })
  9. return <ChatPane {...args} />
  10. }
  11. export const NoMessages = args => {
  12. useFetchMock(fetchMock => {
  13. fetchMock.get(/messages/, [])
  14. })
  15. return <ChatPane {...args} />
  16. }
  17. export const Loading = args => {
  18. useFetchMock(fetchMock => {
  19. fetchMock.get(/messages/, generateMessages(6), {
  20. delay: 1000 * 10,
  21. })
  22. })
  23. return <ChatPane {...args} />
  24. }
  25. export const LoadingError = args => {
  26. useFetchMock(fetchMock => {
  27. fetchMock.get(/messages/, 500)
  28. })
  29. return <ChatPane {...args} />
  30. }
  31. export default {
  32. title: 'Editor / Chat',
  33. component: ChatPane,
  34. argTypes: {
  35. resetUnreadMessages: { action: 'resetUnreadMessages' },
  36. },
  37. args: {
  38. resetUnreadMessages: () => {},
  39. },
  40. decorators: [ScopeDecorator],
  41. }