diff --git a/app/api/rpc/[command]/getFactsFromHomeLeaflets.ts b/app/api/rpc/[command]/getFactsFromHomeLeaflets.ts index fa0c9f2f..279b780b 100644 --- a/app/api/rpc/[command]/getFactsFromHomeLeaflets.ts +++ b/app/api/rpc/[command]/getFactsFromHomeLeaflets.ts @@ -46,16 +46,24 @@ export const getFactsFromHomeLeaflets = makeRoute({ return a.data.position.x - b.data.position.x; return a.data.position.y - b.data.position.y; }) - : scan.eav(rootEntity, "card/block").sort((a, b) => a.data.position - b.data.position); + : scan.eav(rootEntity, "card/block").sort((a, b) => { + if (a.data.position === b.data.position) + return a.id > b.id ? 1 : -1; + return a.data.position > b.data.position ? 1 : -1; + }); // Map to get type and filter for text/heading let blocks = rawBlocks .map((b) => { let type = scan.eav(b.data.value, "block/type")[0]; - if (!type || (type.data.value !== "text" && type.data.value !== "heading")) return null; + if ( + !type || + (type.data.value !== "text" && type.data.value !== "heading") + ) + return null; return b.data; }) - .filter((b) => b !== null); + .filter((b): b is NonNullable => b !== null); let title = blocks[0];