chore: Refactor backlinks and revisions (#1611)
* Update backlinks service to not rely on revisions * fix: Add missing index for finding backlinks * Debounce revision creation (#1616) * refactor debounce logic to service * Debounce slack notification * Revisions created by service * fix: Revision sidebar latest * test: Add tests for notifications
This commit is contained in:
@@ -64,7 +64,11 @@ class DataLoader extends React.Component<Props> {
|
||||
|
||||
// Also need to load the revision if it changes
|
||||
const { revisionId } = this.props.match.params;
|
||||
if (prevProps.match.params.revisionId !== revisionId && revisionId) {
|
||||
if (
|
||||
prevProps.match.params.revisionId !== revisionId &&
|
||||
revisionId &&
|
||||
revisionId !== "latest"
|
||||
) {
|
||||
this.loadRevision();
|
||||
}
|
||||
}
|
||||
@@ -152,7 +156,7 @@ class DataLoader extends React.Component<Props> {
|
||||
shareId,
|
||||
});
|
||||
|
||||
if (revisionId) {
|
||||
if (revisionId && revisionId !== "latest") {
|
||||
await this.loadRevision();
|
||||
} else {
|
||||
this.revision = undefined;
|
||||
|
||||
@@ -16,7 +16,31 @@ export default class RevisionsStore extends BaseStore<Revision> {
|
||||
}
|
||||
|
||||
getDocumentRevisions(documentId: string): Revision[] {
|
||||
return filter(this.orderedData, { documentId });
|
||||
let revisions = filter(this.orderedData, { documentId });
|
||||
const latestRevision = revisions[0];
|
||||
const document = this.rootStore.documents.get(documentId);
|
||||
|
||||
// There is no guarantee that we have a revision that represents the latest
|
||||
// state of the document. This pushes a fake revision in at the top if there
|
||||
// isn't one
|
||||
if (
|
||||
latestRevision &&
|
||||
document &&
|
||||
latestRevision.createdAt !== document.updatedAt
|
||||
) {
|
||||
revisions.unshift(
|
||||
new Revision({
|
||||
id: "latest",
|
||||
documentId: document.id,
|
||||
title: document.title,
|
||||
text: document.text,
|
||||
createdAt: document.updatedAt,
|
||||
createdBy: document.createdBy,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
return revisions;
|
||||
}
|
||||
|
||||
@action
|
||||
|
||||
Reference in New Issue
Block a user