From 7cd779063fc5a66ad1aa0041923371167d87f76d Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Fri, 23 Apr 2021 18:21:03 +0200 Subject: [PATCH] Fix regression from 70c3b51b0b3c89ebd4f615ab117e Negative indices were not treated correctly (as offset from end) --- ts/editor-toolbar/identifiable.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ts/editor-toolbar/identifiable.ts b/ts/editor-toolbar/identifiable.ts index 154895bfc..334222022 100644 --- a/ts/editor-toolbar/identifiable.ts +++ b/ts/editor-toolbar/identifiable.ts @@ -8,11 +8,19 @@ function normalize( values: T[], idOrIndex: string | number ): number { + let normalizedIndex: number; + if (typeof idOrIndex === "string") { - return values.findIndex((value) => value.id === idOrIndex); - } else { - return idOrIndex >= values.length ? -1 : idOrIndex; + normalizedIndex = values.findIndex((value) => value.id === idOrIndex); } + else if (idOrIndex < 0) { + normalizedIndex = values.length + idOrIndex; + } + else { + normalizedIndex = idOrIndex; + } + + return normalizedIndex >= values.length ? -1 : normalizedIndex; } export function search(