Skip to content

Commit d1cdcdc

Browse files
authored
Merge pull request #1503 from plone/reactive-icon-fix
Correctly update item icons when searching or filtering
2 parents 5511f3b + 15a8ca0 commit d1cdcdc

2 files changed

Lines changed: 17 additions & 12 deletions

File tree

src/pat/contentbrowser/src/ContentBrowser.svelte

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
clickOutside,
1111
formatDate,
1212
get_items_from_uids,
13+
iconTag,
1314
request,
1415
resolveIcon,
1516
updateRecentlyUsed,
@@ -625,13 +626,15 @@
625626
alt={item.Title || itemId(item)}
626627
/>
627628
{:else}
628-
<span class="plone-icon">
629-
<svg
630-
use:resolveIcon={{
631-
iconName: `contenttype/${item.portal_type.toLowerCase().replace(/\.| /g, "-")}`,
632-
}}
633-
/>
634-
</span>
629+
{#await iconTag(`contenttype/${item.portal_type
630+
.toLowerCase()
631+
.replace(/\.| /g, "-")}`)}
632+
...
633+
{:then iconHTML}
634+
<span class="plone-icon">
635+
{@html iconHTML}
636+
</span>
637+
{/await}
635638
{/if}
636639
<span
637640
class={!item.Title ? "id-only" : ""}

src/pat/contentbrowser/src/utils.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,14 @@ export async function get_items_from_uids(uids, config) {
183183

184184

185185
/** use Plone resolveIcon to load a SVG icon and replace node with icon code */
186+
187+
export async function iconTag(iconName) {
188+
const icon = await utils.resolveIcon(iconName);
189+
return icon;
190+
}
191+
186192
export async function resolveIcon(node, { iconName }) {
187-
async function getIcon(iconName) {
188-
const icon = await utils.resolveIcon(iconName)
189-
return icon;
190-
}
191-
const iconCode = await getIcon(iconName);
193+
const iconCode = await iconTag(iconName);
192194
node.outerHTML = iconCode;
193195
return {
194196
destroy() { },

0 commit comments

Comments
 (0)