commit: 031f8e65e645d750af3124ac672a7adc6d219a29 parent 92c82a0a34246f7691cb9aaa9ccc107f07a2a419 Author: Henry Jameson <me@hjkos.com> Date: Mon, 27 Jan 2025 13:17:16 +0200 fix bookmark folders not being pinnableDiffstat:
6 files changed, 28 insertions(+), 3 deletions(-)diff --git a/src/components/bookmark_folders_menu/bookmark_folders_menu_content.js b/src/components/bookmark_folders_menu/bookmark_folders_menu_content.js@@ -3,6 +3,9 @@ import NavigationEntry from 'src/components/navigation/navigation_entry.vue' import { getBookmarkFolderEntries } from 'src/components/navigation/filter.js' export const BookmarkFoldersMenuContent = { + props: [ + 'showPin' + ], components: { NavigationEntry },diff --git a/src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue b/src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue@@ -7,10 +7,12 @@ label: 'nav.all_bookmarks', icon: 'bookmark' }" + :show-pin="showPin" /> <NavigationEntry v-for="item in folders" :key="item.id" + :show-pin="showPin" :item="item" /> </ul>diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue@@ -113,6 +113,7 @@ :class="{ '-expanded': showBookmarkFolders }" > <BookmarkFoldersMenuContent + :show-pin="editMode || forceEditMode" class="timelines" /> </div>diff --git a/src/components/navigation/filter.js b/src/components/navigation/filter.js@@ -24,6 +24,6 @@ export const getBookmarkFolderEntries = state => state.bookmarkFolders.allFolder routeObject: { name: 'bookmark-folder', params: { id: folder.id } }, labelRaw: folder.name, iconEmoji: folder.emoji, - iconEmojiUrl: folder.emoji_url, + iconEmojiUrl: console.log(folder) || folder.emoji_url, iconLetter: folder.name[0] }))diff --git a/src/components/navigation/navigation_pins.js b/src/components/navigation/navigation_pins.js@@ -1,6 +1,8 @@ import { mapState } from 'vuex' import { TIMELINES, ROOT_ITEMS, routeTo } from 'src/components/navigation/navigation.js' -import { getListEntries, filterNavigation } from 'src/components/navigation/filter.js' +import { getBookmarkFolderEntries, getListEntries, filterNavigation } from 'src/components/navigation/filter.js' + +import StillImage from 'src/components/still-image/still-image.vue' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -34,12 +36,16 @@ const NavPanel = { return routeTo(item, this.currentUser) } }, + components: { + StillImage + }, computed: { getters () { return this.$store.getters }, ...mapState({ lists: getListEntries, + bookmarks: getBookmarkFolderEntries, currentUser: state => state.users.currentUser, followRequestCount: state => state.api.followRequests.length, privateMode: state => state.instance.private, @@ -70,6 +76,7 @@ const NavPanel = { .filter(([k]) => this.pinnedItems.has(k)) .map(([k, v]) => ({ ...v, name: k })), ...this.lists.filter((k) => this.pinnedItems.has(k.name)), + ...this.bookmarks.filter((k) => this.pinnedItems.has(k.name)), ...Object .entries({ ...ROOT_ITEMS }) .filter(([k]) => this.pinnedItems.has(k))diff --git a/src/components/navigation/navigation_pins.vue b/src/components/navigation/navigation_pins.vue@@ -14,9 +14,14 @@ :icon="item.icon" /> <span - v-if="item.iconLetter" + v-if="item.iconLetter && !item.iconEmoji" class="iconLetter fa-scale-110 fa-old-padding" >{{ item.iconLetter }}</span> + <StillImage + v-if="item.iconEmoji" + class="bookmark-emoji" + :src="item.iconEmojiUrl" + /> <div v-if="item.badgeGetter && getters[item.badgeGetter]" class="badge -dot" @@ -52,6 +57,13 @@ box-sizing: border-box; height: 100%; + .bookmark-emoji { + height: 100%; + box-sizing: border-box; + padding: 0.5em; + } + + & .bookmark-emoji, & .svg-inline--fa, & .iconLetter { margin: 0;