From 9de041f1d3c3d79bfee2c2a865c6eed3469bed13 Mon Sep 17 00:00:00 2001 From: Dan Gilbert <ddg@daentech.co.uk> Date: Tue, 31 Aug 2021 12:33:18 +0200 Subject: [PATCH 1/2] Fix simple icons color fill --- package.json | 1 + src/components/LinkItems/ItemIcon.vue | 18 +++++++++++++----- yarn.lock | 5 +++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a2449788..be8c0ee3 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "remedial": "^1.0.8", "rsup-progress": "^2.0.4", "serve-static": "^1.14.1", + "simple-icons": "^5.12.0", "v-jsoneditor": "^1.4.2", "v-tooltip": "^2.1.3", "vue": "^2.6.10", diff --git a/src/components/LinkItems/ItemIcon.vue b/src/components/LinkItems/ItemIcon.vue index f2ee84ab..b55a51be 100644 --- a/src/components/LinkItems/ItemIcon.vue +++ b/src/components/LinkItems/ItemIcon.vue @@ -7,8 +7,9 @@ <!-- Material Design Icon --> <span v-else-if="iconType === 'mdi'" :class=" `mdi ${icon} ${size}`"></span> <!-- Simple-Icons --> - <object v-else-if="iconType === 'si'" :class="`simple-icons ${size}`" - type="image/svg+xml" :data="getSimpleIcon(icon)"></object> + <svg v-else-if="iconType === 'si'" :class="`simple-icons ${size}`" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> + <path :d="getSimpleIcon(icon)" /> + </svg> <!-- Standard image asset icon --> <img v-else-if="icon" :src="iconPath" @error="imageNotFound" :class="`tile-icon ${size} ${broken ? 'broken' : ''}`" @@ -25,6 +26,8 @@ import { faviconApi as defaultFaviconApi, faviconApiEndpoints, iconCdns } from ' import EmojiUnicodeRegex from '@/utils/EmojiUnicodeRegex'; import emojiLookup from '@/utils/emojis.json'; +const simpleIcons = require('simple-icons'); + export default { name: 'Icon', inject: ['config'], @@ -113,10 +116,11 @@ export default { getGenerativeIcon(url) { return `${iconCdns.generative}/${this.getHostName(url)}.svg`; }, - /* Formats the URL for getting Simple-Icons SVG asset */ + /* Returns the SVG path content */ getSimpleIcon(img) { const imageName = img.replace('si-', ''); - return `${iconCdns.si}/${imageName}.svg`; + const icon = simpleIcons.Get(imageName); + return icon.path; }, /* Checks if the icon is from a local image, remote URL, SVG or font-awesome */ getIconPath(img, url) { @@ -198,11 +202,15 @@ export default { } } /* Simple Icons */ - object.simple-icons { + .item-icon .simple-icons { width: 2rem; &.small { width: 1.5rem; } &.large { width: 2.5rem; } } + + .item-icon .simple-icons path { + fill: currentColor; + } /* Emoji Icons */ i.emoji-icon { font-style: normal; diff --git a/yarn.lock b/yarn.lock index aab35184..68013cda 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8667,6 +8667,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-icons@^5.12.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/simple-icons/-/simple-icons-5.12.0.tgz#8f514005f1aef02464a014706cc8e5b07d4d72c8" + integrity sha512-iF5ZJuv/jPU2tdkc5aNXsirQg2kOggvcOUw2kMafCrelrr3Sj0ywRJkr+0uVniD1Kj6ayT1yb1IquBRHrYw10g== + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" From c9fc7e4bbdf8e1b554d03dd7ef94f4d57b709304 Mon Sep 17 00:00:00 2001 From: Dan Gilbert <ddg@daentech.co.uk> Date: Tue, 31 Aug 2021 12:57:51 +0200 Subject: [PATCH 2/2] Fix import for simple-icons --- src/components/LinkItems/ItemIcon.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/LinkItems/ItemIcon.vue b/src/components/LinkItems/ItemIcon.vue index b55a51be..b4001824 100644 --- a/src/components/LinkItems/ItemIcon.vue +++ b/src/components/LinkItems/ItemIcon.vue @@ -20,14 +20,13 @@ </template> <script> +import simpleIcons from 'simple-icons'; import BrokenImage from '@/assets/interface-icons/broken-icon.svg'; import ErrorHandler from '@/utils/ErrorHandler'; import { faviconApi as defaultFaviconApi, faviconApiEndpoints, iconCdns } from '@/utils/defaults'; import EmojiUnicodeRegex from '@/utils/EmojiUnicodeRegex'; import emojiLookup from '@/utils/emojis.json'; -const simpleIcons = require('simple-icons'); - export default { name: 'Icon', inject: ['config'],