Moved document matching to use urlId to prevent issues with renamed documents

This commit is contained in:
Jori Lallo
2017-09-12 19:55:01 -07:00
parent e40d9cebda
commit 5c43e12218
3 changed files with 9 additions and 1 deletions

View File

@ -90,6 +90,10 @@ type Props = {
if (document) {
this.props.ui.setActiveDocument(document);
document.view();
// Update url to match the current one
const urlParts = this.props.match.url.split('/');
this.props.history.replace([document.url, urlParts.slice(3)].join('/'));
} else {
// Render 404 with search
this.setState({ notFound: true });

View File

@ -138,8 +138,11 @@ class DocumentsStore extends BaseStore {
return this.data.get(id);
};
/**
* Match documents by the url ID as the title slug can change
*/
getByUrl = (url: string): ?Document => {
return _.find(this.data.values(), { url });
return _.find(this.data.values(), doc => url.endsWith(doc.urlId));
};
constructor(options: Options) {

View File

@ -17,6 +17,7 @@ async function present(ctx: Object, document: Document, options: ?Options) {
const data = {
id: document.id,
url: document.getUrl(),
urlId: document.urlId,
private: document.private,
title: document.title,
text: document.text,