binary-file.stories.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. import React from 'react'
  2. import BinaryFile from '../js/features/binary-file/components/binary-file'
  3. import fetchMock from 'fetch-mock'
  4. window.project_id = 'proj123'
  5. fetchMock.restore()
  6. fetchMock.head('express:/project/:project_id/file/:file_id', {
  7. status: 201,
  8. headers: { 'Content-Length': 10000 },
  9. })
  10. fetchMock.get('express:/project/:project_id/file/:file_id', 'Text file content')
  11. fetchMock.post('express:/project/:project_id/linked_file/:file_id/refresh', {
  12. status: 204,
  13. })
  14. fetchMock.post('express:/project/:project_id/references/indexAll', {
  15. status: 204,
  16. })
  17. window.project_id = '1234'
  18. const fileData = {
  19. id: 'file-id',
  20. name: 'file.tex',
  21. created: new Date(),
  22. }
  23. export const FileFromUrl = args => {
  24. return <BinaryFile {...args} />
  25. }
  26. FileFromUrl.args = {
  27. file: {
  28. ...fileData,
  29. linkedFileData: {
  30. url: 'https://overleaf.com',
  31. provider: 'url',
  32. },
  33. },
  34. }
  35. export const FileFromProjectWithLinkableProjectId = args => {
  36. return <BinaryFile {...args} />
  37. }
  38. FileFromProjectWithLinkableProjectId.args = {
  39. file: {
  40. ...fileData,
  41. linkedFileData: {
  42. source_project_id: 'source-project-id',
  43. source_entity_path: '/source-entity-path.ext',
  44. provider: 'project_file',
  45. },
  46. },
  47. }
  48. export const FileFromProjectWithoutLinkableProjectId = args => {
  49. return <BinaryFile {...args} />
  50. }
  51. FileFromProjectWithoutLinkableProjectId.args = {
  52. file: {
  53. ...fileData,
  54. linkedFileData: {
  55. v1_source_doc_id: 'v1-source-id',
  56. source_entity_path: '/source-entity-path.ext',
  57. provider: 'project_file',
  58. },
  59. },
  60. }
  61. export const FileFromProjectOutputWithLinkableProject = args => {
  62. return <BinaryFile {...args} />
  63. }
  64. FileFromProjectOutputWithLinkableProject.args = {
  65. file: {
  66. ...fileData,
  67. linkedFileData: {
  68. source_project_id: 'source_project_id',
  69. source_output_file_path: '/source-entity-path.ext',
  70. provider: 'project_output_file',
  71. },
  72. },
  73. }
  74. export const FileFromProjectOutputWithoutLinkableProjectId = args => {
  75. return <BinaryFile {...args} />
  76. }
  77. FileFromProjectOutputWithoutLinkableProjectId.args = {
  78. file: {
  79. ...fileData,
  80. linkedFileData: {
  81. v1_source_doc_id: 'v1-source-id',
  82. source_output_file_path: '/source-entity-path.ext',
  83. provider: 'project_output_file',
  84. },
  85. },
  86. }
  87. export const ImageFile = args => {
  88. return <BinaryFile {...args} />
  89. }
  90. ImageFile.args = {
  91. file: {
  92. ...fileData,
  93. id: '60097ca20454610027c442a8',
  94. name: 'file.jpg',
  95. linkedFileData: {
  96. source_project_id: 'source_project_id',
  97. source_entity_path: '/source-entity-path',
  98. provider: 'project_file',
  99. },
  100. },
  101. }
  102. export const ThirdPartyReferenceFile = args => {
  103. return <BinaryFile {...args} />
  104. }
  105. ThirdPartyReferenceFile.args = {
  106. file: {
  107. ...fileData,
  108. name: 'example.tex',
  109. linkedFileData: {
  110. provider: 'zotero',
  111. },
  112. },
  113. }
  114. export const ThirdPartyReferenceFileWithError = args => {
  115. return <BinaryFile {...args} />
  116. }
  117. ThirdPartyReferenceFileWithError.args = {
  118. file: {
  119. ...fileData,
  120. id: '500500500500500500500500',
  121. name: 'example.tex',
  122. linkedFileData: {
  123. provider: 'zotero',
  124. },
  125. },
  126. }
  127. export const TextFile = args => {
  128. return <BinaryFile {...args} />
  129. }
  130. TextFile.args = {
  131. file: {
  132. ...fileData,
  133. linkedFileData: {
  134. source_project_id: 'source-project-id',
  135. source_entity_path: '/source-entity-path.ext',
  136. provider: 'project_file',
  137. },
  138. name: 'file.txt',
  139. },
  140. }
  141. export const UploadedFile = args => {
  142. return <BinaryFile {...args} />
  143. }
  144. UploadedFile.args = {
  145. file: {
  146. ...fileData,
  147. linkedFileData: null,
  148. name: 'file.jpg',
  149. },
  150. }
  151. export default {
  152. title: 'BinaryFile',
  153. component: BinaryFile,
  154. args: {
  155. storeReferencesKeys: () => {},
  156. },
  157. decorators: [
  158. BinaryFile => (
  159. <>
  160. <style>{'html, body { height: 100%; }'}</style>
  161. <BinaryFile />
  162. </>
  163. ),
  164. ],
  165. }