diff --git a/app/components/Avatar.tsx b/app/components/Avatar.tsx
index 0b4573a82..1e07e5557 100644
--- a/app/components/Avatar.tsx
+++ b/app/components/Avatar.tsx
@@ -25,6 +25,7 @@ export function Avatar({
(arr: T[], n: number) {
+ const result = at(arr, n);
+ if (result === undefined) {
+ throw new Error(`Index ${n} out of bounds. Array length is ${arr.length}`);
+ }
+ return result;
+}
+
+// https://github.com/tc39/proposal-relative-indexing-method#polyfill
+/** Array.at polyfill */
+function at(arr: T[], n: number) {
+ // ToInteger() abstract op
+ n = Math.trunc(n) || 0;
+ // Allow negative indexing from the end
+ if (n < 0) n += arr.length;
+ // OOB access is guaranteed to return undefined
+ if (n < 0 || n >= arr.length) return undefined;
+ // Otherwise, this is just normal property access
+ return arr[n];
+}