diff --git a/services/web/frontend/js/features/ide-react/util/file-view.ts b/services/web/frontend/js/features/ide-react/util/file-view.ts
index af7f7bed3c..e32f3bb4ee 100644
--- a/services/web/frontend/js/features/ide-react/util/file-view.ts
+++ b/services/web/frontend/js/features/ide-react/util/file-view.ts
@@ -2,6 +2,7 @@ import { FileRef } from '../../../../../types/file-ref'
import { BinaryFile } from '@/features/file-view/types/binary-file'
export function convertFileRefToBinaryFile(fileRef: FileRef): BinaryFile {
+ const timestamp = fileRef.linkedFileData?.importedAt ?? fileRef.created
return {
_id: fileRef._id,
name: fileRef.name,
@@ -9,7 +10,7 @@ export function convertFileRefToBinaryFile(fileRef: FileRef): BinaryFile {
type: 'file',
selected: true,
linkedFileData: fileRef.linkedFileData,
- created: fileRef.created ? new Date(fileRef.created) : new Date(),
+ created: timestamp ? new Date(timestamp) : new Date(),
hash: fileRef.hash,
}
}
@@ -22,8 +23,9 @@ export function convertFileRefToBinaryFile(fileRef: FileRef): BinaryFile {
// `FileViewHeader` pass in a string for `created`, so that's what this function
// does too.
export function fileViewFile(fileRef: FileRef) {
+ const converted = convertFileRefToBinaryFile(fileRef)
return {
- ...convertFileRefToBinaryFile(fileRef),
- created: fileRef.created,
+ ...converted,
+ created: converted.created.toISOString(),
}
}
diff --git a/services/web/test/frontend/features/file-view/components/file-view-header.test.jsx b/services/web/test/frontend/features/file-view/components/file-view-header.test.jsx
index e3e394fb72..78fcd127e6 100644
--- a/services/web/test/frontend/features/file-view/components/file-view-header.test.jsx
+++ b/services/web/test/frontend/features/file-view/components/file-view-header.test.jsx
@@ -4,6 +4,7 @@ import fetchMock from 'fetch-mock'
import { renderWithEditorContext } from '../../../helpers/render-with-context'
import FileViewHeader from '../../../../../frontend/js/features/file-view/components/file-view-header'
import { USER_ID } from '../../../helpers/editor-providers'
+import { fileViewFile } from '@/features/ide-react/util/file-view'
describe('', function () {
const urlFile = {
@@ -81,4 +82,27 @@ describe('', function () {
screen.getByText('Download', { exact: false })
})
})
+
+ it('should use importedAt as timestamp when present in the linked file data', function () {
+ const fileFromServer = {
+ name: 'example.tex',
+ linkedFileData: {
+ v1_source_doc_id: 'v1-source-id',
+ source_project_id: 'source-project-id',
+ source_entity_path: '/source-entity-path.ext',
+ provider: 'project_file',
+ importer_id: USER_ID,
+ importedAt: new Date(2024, 9, 16, 1, 30).getTime(),
+ },
+ created: new Date(2021, 1, 17, 3, 24).toISOString(),
+ }
+ // FIXME: This should be tested through the component instead
+ const fileShown = fileViewFile(fileFromServer)
+ renderWithEditorContext()
+ screen.getByText('Imported from', { exact: false })
+ screen.getByText('Another project', { exact: false })
+ screen.getByText('/source-entity-path.ext, at 1:30 am Wed, 16th Oct 24', {
+ exact: false,
+ })
+ })
})