From 5c9fbacaafa0734d1c56762b671d39ba0391bc0b Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Mon, 18 Nov 2019 22:04:03 -0600 Subject: Add support for updating posts in-place to the frontend and API. This makes it possible to implement features such as *real* post editing. --- app/javascript/flavours/glitch/actions/importer/index.js | 3 +++ app/javascript/flavours/glitch/actions/importer/normalizer.js | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'app/javascript/flavours/glitch') diff --git a/app/javascript/flavours/glitch/actions/importer/index.js b/app/javascript/flavours/glitch/actions/importer/index.js index f4372fb31..a7a5c60d7 100644 --- a/app/javascript/flavours/glitch/actions/importer/index.js +++ b/app/javascript/flavours/glitch/actions/importer/index.js @@ -9,6 +9,9 @@ export const POLLS_IMPORT = 'POLLS_IMPORT'; function pushUnique(array, object) { if (array.every(element => element.id !== object.id)) { array.push(object); + } else { + const idx = array.findIndex(element => element.id === object.id); + array.splice(idx, 1, object); } } diff --git a/app/javascript/flavours/glitch/actions/importer/normalizer.js b/app/javascript/flavours/glitch/actions/importer/normalizer.js index 12f8e3395..38d4d389c 100644 --- a/app/javascript/flavours/glitch/actions/importer/normalizer.js +++ b/app/javascript/flavours/glitch/actions/importer/normalizer.js @@ -47,9 +47,10 @@ export function normalizeStatus(status, normalOldStatus) { normalStatus.poll = status.poll.id; } - // Only calculate these values when status first encountered - // Otherwise keep the ones already in the reducer - if (normalOldStatus) { + const oldUpdatedAt = normalOldStatus ? normalOldStatus.updated_at || normalOldStatus.created_at : null; + const newUpdatedAt = normalStatus ? normalStatus.updated_at || normalStatus.created_at : null; + + if (normalOldStatus && oldUpdatedAt === newUpdatedAt) { normalStatus.search_index = normalOldStatus.get('search_index'); normalStatus.contentHtml = normalOldStatus.get('contentHtml'); normalStatus.spoilerHtml = normalOldStatus.get('spoilerHtml'); -- cgit