chat.stories.jsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. import { UserProvider } from '@/shared/context/user-context'
  6. export const Conversation = args => {
  7. useFetchMock(fetchMock => {
  8. fetchMock.get(/messages/, generateMessages(35)).post(/messages/, {})
  9. })
  10. return <ChatPane {...args} />
  11. }
  12. export const NoMessages = args => {
  13. useFetchMock(fetchMock => {
  14. fetchMock.get(/messages/, [])
  15. })
  16. return <ChatPane {...args} />
  17. }
  18. export const Loading = args => {
  19. useFetchMock(fetchMock => {
  20. fetchMock.get(/messages/, generateMessages(6), {
  21. delay: 1000 * 10,
  22. })
  23. })
  24. return <ChatPane {...args} />
  25. }
  26. export const LoadingError = args => {
  27. useFetchMock(fetchMock => {
  28. fetchMock.get(/messages/, 500)
  29. })
  30. return <ChatPane {...args} />
  31. }
  32. export default {
  33. title: 'Editor / Chat',
  34. component: ChatPane,
  35. argTypes: {
  36. resetUnreadMessages: { action: 'resetUnreadMessages' },
  37. },
  38. args: {
  39. resetUnreadMessages: () => {},
  40. },
  41. decorators: [
  42. ScopeDecorator,
  43. Story => (
  44. <UserProvider>
  45. <Story />
  46. </UserProvider>
  47. ),
  48. ],
  49. }