summaryrefslogtreecommitdiff
path: root/web/source/settings/lib/query/admin
diff options
context:
space:
mode:
Diffstat (limited to 'web/source/settings/lib/query/admin')
-rw-r--r--web/source/settings/lib/query/admin/custom-emoji/index.ts43
1 files changed, 26 insertions, 17 deletions
diff --git a/web/source/settings/lib/query/admin/custom-emoji/index.ts b/web/source/settings/lib/query/admin/custom-emoji/index.ts
index d624b0580..204fb1c1f 100644
--- a/web/source/settings/lib/query/admin/custom-emoji/index.ts
+++ b/web/source/settings/lib/query/admin/custom-emoji/index.ts
@@ -169,24 +169,33 @@ const extended = gtsApi.injectEndpoints({
// Search for each listed emoji with the admin
// api to get the version that includes an ID.
- const withIDs: CustomEmoji[] = [];
const errors: FetchBaseQueryError[] = [];
-
- withoutIDs.forEach(async(emoji) => {
- // Request admin view of this emoji.
- const emojiRes = await fetchWithBQ({
- url: `/api/v1/admin/custom_emojis`,
- params: {
- filter: `domain:${domain},shortcode:${emoji.shortcode}`,
- limit: 1
- }
- });
- if (emojiRes.error) {
- errors.push(emojiRes.error);
- } else {
- // Got it!
- withIDs.push(emojiRes.data as CustomEmoji);
- }
+ const withIDs: CustomEmoji[] = (
+ await Promise.all(
+ withoutIDs.map(async(emoji) => {
+ // Request admin view of this emoji.
+ const emojiRes = await fetchWithBQ({
+ url: `/api/v1/admin/custom_emojis`,
+ params: {
+ filter: `domain:${domain},shortcode:${emoji.shortcode}`,
+ limit: 1
+ }
+ });
+
+ if (emojiRes.error) {
+ // Put error in separate array so
+ // the null can be filtered nicely.
+ errors.push(emojiRes.error);
+ return null;
+ }
+
+ // Got it!
+ return emojiRes.data as CustomEmoji;
+ })
+ )
+ ).flatMap((emoji) => {
+ // Remove any nulls.
+ return emoji || [];
});
if (errors.length !== 0) {