diff --git a/client/web/plugins/com.msgbyte.offline-icons/scripts/extract-icons.ts b/client/web/plugins/com.msgbyte.offline-icons/scripts/extract-icons.ts index a1eaa0fef71..2d2003a028b 100644 --- a/client/web/plugins/com.msgbyte.offline-icons/scripts/extract-icons.ts +++ b/client/web/plugins/com.msgbyte.offline-icons/scripts/extract-icons.ts @@ -2,8 +2,10 @@ import { parse } from '@babel/parser'; import traverse from '@babel/traverse'; import { isArrayExpression, + isConditionalExpression, isIdentifier, isJSXAttribute, + isJSXExpressionContainer, isJSXIdentifier, isObjectExpression, isObjectProperty, @@ -80,6 +82,21 @@ async function extractIcons(filepath: string): Promise { if (isJSXAttribute(attribute) && attribute.name.name === 'icon') { if (isStringLiteral(attribute.value) && attribute.value.value) { icons.push(attribute.value.value); + } else if (isJSXExpressionContainer(attribute.value)) { + // is icon={...} + if (isStringLiteral(attribute.value.expression)) { + // is icon={''} + icons.push(attribute.value.expression.value); + } else if (isConditionalExpression(attribute.value.expression)) { + // is icon={boolean ? '' : ''} + + if (isStringLiteral(attribute.value.expression.consequent)) { + icons.push(attribute.value.expression.consequent.value); + } + if (isStringLiteral(attribute.value.expression.alternate)) { + icons.push(attribute.value.expression.alternate.value); + } + } } } }); diff --git a/client/web/plugins/com.msgbyte.offline-icons/src/icons.json b/client/web/plugins/com.msgbyte.offline-icons/src/icons.json index 40975c1f69d..98029217569 100644 --- a/client/web/plugins/com.msgbyte.offline-icons/src/icons.json +++ b/client/web/plugins/com.msgbyte.offline-icons/src/icons.json @@ -174,6 +174,12 @@ "emoticon-happy-outline": { "body": "" }, + "eye-off-outline": { + "body": "" + }, + "eye-outline": { + "body": "" + }, "file-question-outline": { "body": "" }, @@ -192,21 +198,39 @@ "magnify": { "body": "" }, + "menu": { + "body": "" + }, + "menu-open": { + "body": "" + }, "message-badge-outline": { "body": "" }, + "message-processing-outline": { + "body": "" + }, "message-reply-text-outline": { "body": "" }, "message-text-outline": { "body": "" }, + "microphone": { + "body": "" + }, + "microphone-off": { + "body": "" + }, "open-in-new": { "body": "" }, "paperclip": { "body": "" }, + "pencil-off": { + "body": "" + }, "pencil-outline": { "body": "" }, @@ -228,6 +252,9 @@ "pound": { "body": "" }, + "projector-screen-off-outline": { + "body": "" + }, "projector-screen-outline": { "body": "" }, @@ -252,9 +279,15 @@ "trash-can-outline": { "body": "" }, + "video": { + "body": "" + }, "video-box": { "body": "" }, + "video-off": { + "body": "" + }, "web": { "body": "" }