projects-data.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import { Project } from '../../../../../types/project/dashboard/api'
  2. const moment = require('moment')
  3. export const owner = {
  4. id: '624333f147cfd8002622a1d3',
  5. email: 'riker@overleaf.com',
  6. firstName: 'William',
  7. lastName: 'Riker',
  8. }
  9. const users = {
  10. laforge: {
  11. id: '624371e98a21dd0026a5bfef',
  12. email: 'laforge@overleaf.com',
  13. firstName: '',
  14. lastName: 'La Forge',
  15. },
  16. picard: {
  17. id: '62d6d0b4c5c5030a4d696c7a',
  18. email: 'picard@overleaf.com',
  19. firstName: 'Jean-Luc',
  20. lastName: 'Picard',
  21. },
  22. riker: owner,
  23. worf: {
  24. id: '624371708a21dd0026a5bf86',
  25. email: 'worf@overleaf.com',
  26. firstName: '',
  27. lastName: '',
  28. },
  29. }
  30. export const copyableProject = <Project>{
  31. id: '62f17f594641b405ca2b3264',
  32. name: 'Starfleet Report (owner)',
  33. lastUpdated: moment().subtract(1, 'day').toDate(),
  34. lastUpdatedBy: users.picard,
  35. accessLevel: 'owner',
  36. source: 'owner',
  37. archived: false,
  38. trashed: false,
  39. owner: users.riker,
  40. }
  41. export const archiveableProject = <Project>{
  42. id: '62d6d3721357e20a682110d5',
  43. name: "Captain's logs (Invite & Read Only)",
  44. lastUpdated: moment().subtract(1, 'week').toDate(),
  45. lastUpdatedBy: users.picard,
  46. accessLevel: 'readOnly',
  47. source: 'invite',
  48. archived: false,
  49. trashed: false,
  50. owner: users.picard,
  51. }
  52. export const trashedProject = <Project>{
  53. id: '42f17f594641b405ca2b3265',
  54. name: 'Starfleet Report draft (owner & trashed)',
  55. lastUpdated: moment().subtract(2, 'year').toDate(),
  56. lastUpdatedBy: users.picard,
  57. accessLevel: 'owner',
  58. source: 'owner',
  59. archived: false,
  60. trashed: true,
  61. owner: users.riker,
  62. }
  63. export const archivedProject = <Project>{
  64. id: '52f17f594641b405ca2b3266',
  65. name: 'Starfleet Report old (owner & archive)',
  66. lastUpdated: moment().subtract(1, 'year').toDate(),
  67. lastUpdatedBy: users.picard,
  68. accessLevel: 'owner',
  69. source: 'owner',
  70. archived: true,
  71. trashed: false,
  72. owner: users.riker,
  73. }
  74. export const trashedAndNotOwnedProject = <Project>{
  75. id: '63d6d3721357e20a682110d5',
  76. name: "Captain's logs very old (Trashed & Read Only & Not Owned)",
  77. lastUpdated: moment().subtract(11, 'year').toDate(),
  78. lastUpdatedBy: users.picard,
  79. accessLevel: 'readOnly',
  80. source: 'invite',
  81. archived: false,
  82. trashed: true,
  83. owner: users.picard,
  84. }
  85. export const sharedProject = archiveableProject
  86. export const projectsData: Array<Project> = [
  87. copyableProject,
  88. archiveableProject,
  89. {
  90. id: '62b5cdf85212090c2244161c',
  91. name: 'Enterprise Security Analysis | Deflector Shields, Sensors, Tractor Beams, and Cloaking Devices (Invite & Edit)',
  92. lastUpdated: moment().subtract(1, 'month').toDate(),
  93. lastUpdatedBy: users.worf,
  94. accessLevel: 'readWrite',
  95. source: 'invite',
  96. archived: false,
  97. trashed: false,
  98. owner: users.worf,
  99. },
  100. {
  101. id: '624380431c2e40006c59b922',
  102. name: 'VISOR Sensors (Link Sharing & Edit)',
  103. lastUpdated: moment().subtract(2, 'months').toDate(),
  104. lastUpdatedBy: users.laforge,
  105. accessLevel: 'readAndWrite',
  106. source: 'token',
  107. archived: false,
  108. trashed: false,
  109. owner: users.laforge,
  110. },
  111. {
  112. id: '62f51b31f6f4c60027e8935f',
  113. name: 'United Federation of Planets (Link Sharing & View Only)',
  114. lastUpdated: moment().subtract(2, 'year').toDate(),
  115. lastUpdatedBy: null,
  116. accessLevel: 'readOnly',
  117. source: 'token',
  118. archived: false,
  119. trashed: false,
  120. },
  121. archivedProject,
  122. trashedProject,
  123. trashedAndNotOwnedProject,
  124. ]
  125. export const archivedProjects = projectsData.filter(({ archived }) => archived)
  126. export const currentProjects = projectsData.filter(
  127. ({ archived, trashed }) => !archived && !trashed
  128. )
  129. export const trashedProjects = projectsData.filter(({ trashed }) => trashed)
  130. export const makeLongProjectList = (listLength: number) => {
  131. const longList = [...projectsData]
  132. while (longList.length < listLength) {
  133. longList.push(
  134. Object.assign({}, copyableProject, {
  135. name: `Report (${longList.length})`,
  136. id: `newProjectId${longList.length}`,
  137. })
  138. )
  139. }
  140. return {
  141. fullList: longList,
  142. currentList: longList.filter(
  143. ({ archived, trashed }) => !archived && !trashed
  144. ),
  145. trashedList: longList.filter(({ trashed }) => trashed),
  146. }
  147. }