Edit.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <SmartModal
  3. v-if="show"
  4. :title="`${$t('collection.edit')}`"
  5. @close="hideModal"
  6. >
  7. <template #body>
  8. <div class="flex flex-col px-2">
  9. <input
  10. id="selectLabelGqlEdit"
  11. v-model="name"
  12. v-focus
  13. class="input floating-input"
  14. placeholder=" "
  15. type="text"
  16. autocomplete="off"
  17. @keyup.enter="saveCollection"
  18. />
  19. <label for="selectLabelGqlEdit">
  20. {{ $t("action.label") }}
  21. </label>
  22. </div>
  23. </template>
  24. <template #footer>
  25. <span>
  26. <ButtonPrimary
  27. :label="`${$t('action.save')}`"
  28. @click.native="saveCollection"
  29. />
  30. <ButtonSecondary
  31. :label="`${$t('action.cancel')}`"
  32. @click.native="hideModal"
  33. />
  34. </span>
  35. </template>
  36. </SmartModal>
  37. </template>
  38. <script lang="ts">
  39. import { defineComponent } from "@nuxtjs/composition-api"
  40. import { editGraphqlCollection } from "~/newstore/collections"
  41. export default defineComponent({
  42. props: {
  43. show: Boolean,
  44. editingCollection: { type: Object, default: () => {} },
  45. editingCollectionIndex: { type: Number, default: null },
  46. },
  47. data() {
  48. return {
  49. name: null as string | null,
  50. }
  51. },
  52. methods: {
  53. saveCollection() {
  54. if (!this.name) {
  55. this.$toast.error(`${this.$t("collection.invalid_name")}`)
  56. return
  57. }
  58. const collectionUpdated = {
  59. ...(this.editingCollection as any),
  60. name: this.name,
  61. }
  62. editGraphqlCollection(this.editingCollectionIndex, collectionUpdated)
  63. this.hideModal()
  64. },
  65. hideModal() {
  66. this.name = null
  67. this.$emit("hide-modal")
  68. },
  69. },
  70. })
  71. </script>