logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://anongit.hacktivis.me/git/pleroma-fe.git/
commit: 031f8e65e645d750af3124ac672a7adc6d219a29
parent 92c82a0a34246f7691cb9aaa9ccc107f07a2a419
Author: Henry Jameson <me@hjkos.com>
Date:   Mon, 27 Jan 2025 13:17:16 +0200

fix bookmark folders not being pinnable

Diffstat:

Msrc/components/bookmark_folders_menu/bookmark_folders_menu_content.js3+++
Msrc/components/bookmark_folders_menu/bookmark_folders_menu_content.vue2++
Msrc/components/nav_panel/nav_panel.vue1+
Msrc/components/navigation/filter.js2+-
Msrc/components/navigation/navigation_pins.js9++++++++-
Msrc/components/navigation/navigation_pins.vue14+++++++++++++-
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;