diff --git a/src/components/InteractiveEditor/EditItem.vue b/src/components/InteractiveEditor/EditItem.vue
index dd79f4c8..ead995a3 100644
--- a/src/components/InteractiveEditor/EditItem.vue
+++ b/src/components/InteractiveEditor/EditItem.vue
@@ -94,6 +94,8 @@ export default {
},
props: {
itemId: String,
+ isNew: Boolean,
+ parentSectionTitle: String, // If adding new item, which section to add it under
},
computed: {},
components: {
@@ -105,7 +107,9 @@ export default {
BinIcon,
},
mounted() {
- this.item = this.getItemFromState(this.itemId);
+ if (!this.isNew) { // Get existing item data
+ this.item = this.getItemFromState(this.itemId);
+ }
this.formData = this.makeInitialFormData();
this.$modal.show(modalNames.EDIT_ITEM);
},
@@ -187,8 +191,13 @@ export default {
this.formData.forEach((row) => { structured[row.name] = row.value; });
// Some attributes need a little extra formatting
const newItem = this.formatBeforeSave(structured);
- // Update the data store, with new item data
- this.$store.commit(StoreKeys.UPDATE_ITEM, { newItem, itemId: this.itemId });
+ if (this.isNew) { // Insert new item into data store
+ newItem.id = `temp_${newItem.title}`;
+ const payload = { newItem, targetSection: this.parentSectionTitle };
+ this.$store.commit(StoreKeys.INSERT_ITEM, payload);
+ } else { // Update existing item from form data, in the store
+ this.$store.commit(StoreKeys.UPDATE_ITEM, { newItem, itemId: this.itemId });
+ }
// If we're not already in edit mode, enable it now
this.$store.commit(StoreKeys.SET_EDIT_MODE, true);
// Close edit menu
diff --git a/src/components/LinkItems/Item.vue b/src/components/LinkItems/Item.vue
index 8fc556da..8763ef08 100644
--- a/src/components/LinkItems/Item.vue
+++ b/src/components/LinkItems/Item.vue
@@ -5,7 +5,7 @@
@contextmenu.prevent
:href="hyperLinkHref"
:target="anchorTarget"
- :class="`item ${!icon? 'short': ''} size-${itemSize}`"
+ :class="`item ${!icon? 'short': ''} size-${itemSize} ${isAddNew ? 'add-new' : ''}`"
v-tooltip="getTooltipOptions()"
rel="noopener noreferrer" tabindex="0"
:id="`link-${id}`"
@@ -44,7 +44,9 @@
@openDeleteItem="openDeleteItem"
/>