word-count-modal.stories.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import useFetchMock from './hooks/use-fetch-mock'
  2. import { withContextRoot } from './utils/with-context-root'
  3. import WordCountModal from '../js/features/word-count-modal/components/word-count-modal'
  4. const counts = {
  5. headers: 4,
  6. mathDisplay: 40,
  7. mathInline: 400,
  8. textWords: 4000,
  9. }
  10. const messages = [
  11. 'Lorem ipsum dolor sit amet.',
  12. 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
  13. ].join('\n')
  14. const project = {
  15. _id: 'project-id',
  16. name: 'A Project',
  17. }
  18. export const WordCount = args => {
  19. useFetchMock(fetchMock => {
  20. fetchMock.get(
  21. 'express:/project/:projectId/wordcount',
  22. { status: 200, body: { texcount: counts } },
  23. { delay: 500 }
  24. )
  25. })
  26. return withContextRoot(<WordCountModal {...args} />, { project })
  27. }
  28. export const WordCountWithMessages = args => {
  29. useFetchMock(fetchMock => {
  30. fetchMock.get(
  31. 'express:/project/:projectId/wordcount',
  32. { status: 200, body: { texcount: { ...counts, messages } } },
  33. { delay: 500 }
  34. )
  35. })
  36. return withContextRoot(<WordCountModal {...args} />, { project })
  37. }
  38. export const ErrorResponse = args => {
  39. useFetchMock(fetchMock => {
  40. fetchMock.get(
  41. 'express:/project/:projectId/wordcount',
  42. { status: 500 },
  43. { delay: 500 }
  44. )
  45. })
  46. return withContextRoot(<WordCountModal {...args} />, { project })
  47. }
  48. export default {
  49. title: 'Modals / Word Count',
  50. component: WordCountModal,
  51. args: {
  52. show: true,
  53. },
  54. }