aboutsummaryrefslogtreecommitdiff
path: root/src/components/bookmark_folder_edit/bookmark_folder_edit.js
diff options
context:
space:
mode:
authorHJ <30-hj@users.noreply.git.pleroma.social>2024-10-04 10:11:49 +0000
committerHJ <30-hj@users.noreply.git.pleroma.social>2024-10-04 10:11:49 +0000
commitbb0a7a81c5c5e9947471ccffff629af9ee6d6185 (patch)
treee67dca18d5f0343ae798e60bfec7d7969e54856f /src/components/bookmark_folder_edit/bookmark_folder_edit.js
parenta1c3a7a742ea86b0ddeb67a42ca27f478f0f22a2 (diff)
parent216ca52073212942ffb6f75b63993a5f5c32a5d6 (diff)
Merge branch 'bookmark-folders' into 'develop'
Bookmark folders Closes #1335 See merge request pleroma/pleroma-fe!1945
Diffstat (limited to 'src/components/bookmark_folder_edit/bookmark_folder_edit.js')
-rw-r--r--src/components/bookmark_folder_edit/bookmark_folder_edit.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/components/bookmark_folder_edit/bookmark_folder_edit.js b/src/components/bookmark_folder_edit/bookmark_folder_edit.js
new file mode 100644
index 00000000..95c01576
--- /dev/null
+++ b/src/components/bookmark_folder_edit/bookmark_folder_edit.js
@@ -0,0 +1,80 @@
+import EmojiPicker from '../emoji_picker/emoji_picker.vue'
+import apiService from '../../services/api/api.service'
+
+const BookmarkFolderEdit = {
+ data () {
+ return {
+ name: '',
+ nameDraft: '',
+ emoji: '',
+ emojiUrl: null,
+ emojiDraft: '',
+ emojiUrlDraft: null,
+ emojiPickerExpanded: false,
+ reallyDelete: false
+ }
+ },
+ components: {
+ EmojiPicker
+ },
+ created () {
+ if (!this.id) return
+ const credentials = this.$store.state.users.currentUser.credentials
+ apiService.fetchBookmarkFolders({ credentials })
+ .then((folders) => {
+ const folder = folders.find(folder => folder.id === this.id)
+ if (!folder) return
+
+ this.nameDraft = this.name = folder.name
+ this.emojiDraft = this.emoji = folder.emoji
+ this.emojiUrlDraft = this.emojiUrl = folder.emoji_url
+ })
+ },
+ computed: {
+ id () {
+ return this.$route.params.id
+ }
+ },
+ methods: {
+ selectEmoji (event) {
+ this.emojiDraft = event.insertion
+ this.emojiUrlDraft = event.insertionUrl
+ },
+ showEmojiPicker () {
+ if (!this.emojiPickerExpanded) {
+ this.$refs.picker.showPicker()
+ }
+ },
+ onShowPicker () {
+ this.emojiPickerExpanded = true
+ },
+ onClosePicker () {
+ this.emojiPickerExpanded = false
+ },
+ updateFolder () {
+ this.$store.dispatch('setBookmarkFolder', { folderId: this.id, name: this.nameDraft, emoji: this.emojiDraft })
+ .then(() => {
+ this.$router.push({ name: 'bookmark-folders' })
+ })
+ },
+ createFolder () {
+ this.$store.dispatch('createBookmarkFolder', { name: this.nameDraft, emoji: this.emojiDraft })
+ .then(() => {
+ this.$router.push({ name: 'bookmark-folders' })
+ })
+ .catch((e) => {
+ this.$store.dispatch('pushGlobalNotice', {
+ messageKey: 'bookmark_folders.error',
+ messageArgs: [e.message],
+ level: 'error'
+ })
+ })
+ },
+ deleteFolder () {
+ this.$store.dispatch('deleteBookmarkFolder', { folderId: this.id })
+ this.$router.push({ name: 'bookmark-folders' })
+ }
+ }
+}
+
+export default BookmarkFolderEdit