pukaad-ui-lib 1.371.0 → 1.372.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/card/card-place-detail.vue +22 -19
  3. package/dist/runtime/components/card/card-profile-header.d.vue.ts +1 -1
  4. package/dist/runtime/components/card/card-profile-header.vue.d.ts +1 -1
  5. package/dist/runtime/components/card/card-reaction.d.vue.ts +1 -1
  6. package/dist/runtime/components/card/card-reaction.vue.d.ts +1 -1
  7. package/dist/runtime/components/card/card-review.d.vue.ts +5 -5
  8. package/dist/runtime/components/card/card-review.vue.d.ts +5 -5
  9. package/dist/runtime/components/display/display-image-place.d.vue.ts +1 -1
  10. package/dist/runtime/components/display/display-image-place.vue.d.ts +1 -1
  11. package/dist/runtime/components/drawer/drawer-profile-network.d.vue.ts +1 -1
  12. package/dist/runtime/components/drawer/drawer-profile-network.vue.d.ts +1 -1
  13. package/dist/runtime/components/input/input-autocomplete.d.vue.ts +1 -1
  14. package/dist/runtime/components/input/input-autocomplete.vue.d.ts +1 -1
  15. package/dist/runtime/components/input/input-localized-name.d.vue.ts +1 -1
  16. package/dist/runtime/components/input/input-localized-name.vue.d.ts +1 -1
  17. package/dist/runtime/components/input/input-tag.d.vue.ts +1 -1
  18. package/dist/runtime/components/input/input-tag.vue.d.ts +1 -1
  19. package/dist/runtime/components/input/input-typed-field.d.vue.ts +1 -1
  20. package/dist/runtime/components/input/input-typed-field.vue.d.ts +1 -1
  21. package/dist/runtime/components/modal/modal-media-view.d.vue.ts +1 -1
  22. package/dist/runtime/components/modal/modal-media-view.vue.d.ts +1 -1
  23. package/dist/runtime/components/modal/suggest-edit-place/modal-suggest-edit-place.vue +154 -69
  24. package/package.json +1 -1
  25. /package/dist/runtime/assets/svg/socials/{TikTok.svg → Tiktok.svg} +0 -0
  26. /package/dist/runtime/assets/svg/socials/{WhatsApp.svg → Whatsapp.svg} +0 -0
  27. /package/dist/runtime/assets/svg/socials/{YouTube.svg → Youtube.svg} +0 -0
  28. /package/dist/runtime/assets/svg/socials/{Facebook.svg → facebook.svg} +0 -0
  29. /package/dist/runtime/assets/svg/socials/{Instagram.svg → instagram.svg} +0 -0
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pukaad-ui-lib",
3
3
  "configKey": "pukaadUI",
4
- "version": "1.371.0",
4
+ "version": "1.372.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -48,25 +48,27 @@
48
48
  <div v-if="props.item.phone">{{ props.item.phone }}</div>
49
49
  <div v-else class="text-cloud">ไม่มีข้อมูลเบอร์โทรศัพท์</div>
50
50
  </div>
51
- <div class="flex gap-[12px]">
52
- <Icon
53
- name="lucide:shield-check"
54
- :size="20"
55
- class="text-primary shrink-0 mt-[2px]"
56
- />
57
- <div class="font-body-large">หากคุณเป็นเจ้าของธุรกิจนี้</div>
58
- </div>
59
- <div
60
- class="flex gap-[12px] hover:cursor-pointer"
61
- @click="isOpenModalSuggestEdit = true"
62
- >
63
- <Icon
64
- name="lucide:square-pen"
65
- :size="20"
66
- class="text-primary shrink-0 mt-[2px]"
67
- />
68
- <div class="font-body-large">แนะนำให้แก้ไข</div>
69
- </div>
51
+ <template v-if="!props.item.owner_profile_id">
52
+ <div class="flex gap-[12px]">
53
+ <Icon
54
+ name="lucide:shield-check"
55
+ :size="20"
56
+ class="text-primary shrink-0 mt-[2px]"
57
+ />
58
+ <div class="font-body-large">หากคุณเป็นเจ้าของธุรกิจนี้</div>
59
+ </div>
60
+ <div
61
+ class="flex gap-[12px] hover:cursor-pointer"
62
+ @click="isOpenModalSuggestEdit = true"
63
+ >
64
+ <Icon
65
+ name="lucide:square-pen"
66
+ :size="20"
67
+ class="text-primary shrink-0 mt-[2px]"
68
+ />
69
+ <div class="font-body-large">แนะนำให้แก้ไข</div>
70
+ </div>
71
+ </template>
70
72
  <Divider />
71
73
 
72
74
  <div v-if="socialLinks.length" class="flex flex-col gap-[8px]">
@@ -90,6 +92,7 @@
90
92
  </div>
91
93
  </div>
92
94
  <ModalSuggestEditPlace
95
+ v-if="!props.item.owner_profile_id"
93
96
  v-model="isOpenModalSuggestEdit"
94
97
  :item="props.item"
95
98
  />
@@ -7,9 +7,9 @@ declare const __VLS_export: import("vue").DefineComponent<CardProfileAboutProps,
7
7
  onChat?: (() => any) | undefined;
8
8
  }>, {
9
9
  type: "article" | "media" | "sale-info";
10
+ preview: boolean;
10
11
  optionMenuButtonType: "solid" | "text";
11
12
  actionsHidden: boolean;
12
- preview: boolean;
13
13
  disabledPadding: boolean;
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const _default: typeof __VLS_export;
@@ -7,9 +7,9 @@ declare const __VLS_export: import("vue").DefineComponent<CardProfileAboutProps,
7
7
  onChat?: (() => any) | undefined;
8
8
  }>, {
9
9
  type: "article" | "media" | "sale-info";
10
+ preview: boolean;
10
11
  optionMenuButtonType: "solid" | "text";
11
12
  actionsHidden: boolean;
12
- preview: boolean;
13
13
  disabledPadding: boolean;
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const _default: typeof __VLS_export;
@@ -24,8 +24,8 @@ type __VLS_Props = {
24
24
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
25
25
  disabled: boolean;
26
26
  id: string;
27
- disabledPadding: boolean;
28
27
  state: string;
28
+ disabledPadding: boolean;
29
29
  itemCount: Count;
30
30
  itemActive: Reacted;
31
31
  padding: string | number;
@@ -24,8 +24,8 @@ type __VLS_Props = {
24
24
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
25
25
  disabled: boolean;
26
26
  id: string;
27
- disabledPadding: boolean;
28
27
  state: string;
28
+ disabledPadding: boolean;
29
29
  itemCount: Count;
30
30
  itemActive: Reacted;
31
31
  padding: string | number;
@@ -36,17 +36,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
36
36
  "onReply-delete"?: ((item: CardReviewProps) => any) | undefined;
37
37
  }>, {
38
38
  item: CardReviewProps;
39
- disabledMenu: boolean;
40
- isProfile: boolean;
41
- disabledLike: boolean;
42
- allowReply: boolean;
43
- replyAvatar: string;
44
39
  place: {
45
40
  id: string | number;
46
41
  name?: string;
47
42
  address?: string;
48
43
  cover?: string;
49
44
  };
45
+ disabledMenu: boolean;
46
+ isProfile: boolean;
47
+ disabledLike: boolean;
48
+ allowReply: boolean;
49
+ replyAvatar: string;
50
50
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
51
51
  declare const _default: typeof __VLS_export;
52
52
  export default _default;
@@ -36,17 +36,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
36
36
  "onReply-delete"?: ((item: CardReviewProps) => any) | undefined;
37
37
  }>, {
38
38
  item: CardReviewProps;
39
- disabledMenu: boolean;
40
- isProfile: boolean;
41
- disabledLike: boolean;
42
- allowReply: boolean;
43
- replyAvatar: string;
44
39
  place: {
45
40
  id: string | number;
46
41
  name?: string;
47
42
  address?: string;
48
43
  cover?: string;
49
44
  };
45
+ disabledMenu: boolean;
46
+ isProfile: boolean;
47
+ disabledLike: boolean;
48
+ allowReply: boolean;
49
+ replyAvatar: string;
50
50
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
51
51
  declare const _default: typeof __VLS_export;
52
52
  export default _default;
@@ -15,9 +15,9 @@ type __VLS_Props = {
15
15
  };
16
16
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
17
  title: string;
18
- state: "personal" | "office" | "business";
19
18
  photos: MediaItem[];
20
19
  videos: MediaItem[];
20
+ state: "personal" | "office" | "business";
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;
@@ -15,9 +15,9 @@ type __VLS_Props = {
15
15
  };
16
16
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
17
  title: string;
18
- state: "personal" | "office" | "business";
19
18
  photos: MediaItem[];
20
19
  videos: MediaItem[];
20
+ state: "personal" | "office" | "business";
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;
@@ -30,9 +30,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
30
30
  "onExplore-places"?: (() => any) | undefined;
31
31
  "onRequire-auth"?: (() => any) | undefined;
32
32
  }>, {
33
- isMyProfile: boolean;
34
33
  profileId: string;
35
34
  defaultTab: "followers" | "following" | "favorites";
35
+ isMyProfile: boolean;
36
36
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
37
  declare const _default: typeof __VLS_export;
38
38
  export default _default;
@@ -30,9 +30,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
30
30
  "onExplore-places"?: (() => any) | undefined;
31
31
  "onRequire-auth"?: (() => any) | undefined;
32
32
  }>, {
33
- isMyProfile: boolean;
34
33
  profileId: string;
35
34
  defaultTab: "followers" | "following" | "favorites";
35
+ isMyProfile: boolean;
36
36
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
37
  declare const _default: typeof __VLS_export;
38
38
  export default _default;
@@ -49,10 +49,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
49
49
  name: string;
50
50
  required: boolean;
51
51
  description: string;
52
- options: AutocompleteOption[] | string[] | number[];
53
52
  labelKey: string;
54
53
  placeholder: string;
55
54
  limit: number;
55
+ options: AutocompleteOption[] | string[] | number[];
56
56
  disabledErrorMessage: boolean;
57
57
  disabledBorder: boolean;
58
58
  showCounter: boolean;
@@ -49,10 +49,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
49
49
  name: string;
50
50
  required: boolean;
51
51
  description: string;
52
- options: AutocompleteOption[] | string[] | number[];
53
52
  labelKey: string;
54
53
  placeholder: string;
55
54
  limit: number;
55
+ options: AutocompleteOption[] | string[] | number[];
56
56
  disabledErrorMessage: boolean;
57
57
  disabledBorder: boolean;
58
58
  showCounter: boolean;
@@ -11,9 +11,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
11
11
  label: string;
12
12
  name: string;
13
13
  modelValue: LocalizedNameItem[];
14
- options: InputSelectItem[];
15
14
  placeholder: string;
16
15
  limit: number;
16
+ options: InputSelectItem[];
17
17
  showCounter: boolean;
18
18
  addLabel: string;
19
19
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -11,9 +11,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
11
11
  label: string;
12
12
  name: string;
13
13
  modelValue: LocalizedNameItem[];
14
- options: InputSelectItem[];
15
14
  placeholder: string;
16
15
  limit: number;
16
+ options: InputSelectItem[];
17
17
  showCounter: boolean;
18
18
  addLabel: string;
19
19
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -25,8 +25,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
25
25
  "onUpdate:modelValue"?: ((value: SelectedTag[]) => any) | undefined;
26
26
  }>, {
27
27
  name: string;
28
- state: "user" | "admin";
29
28
  placeholder: string;
29
+ state: "user" | "admin";
30
30
  limit: number;
31
31
  ignore: string[];
32
32
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -25,8 +25,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
25
25
  "onUpdate:modelValue"?: ((value: SelectedTag[]) => any) | undefined;
26
26
  }>, {
27
27
  name: string;
28
- state: "user" | "admin";
29
28
  placeholder: string;
29
+ state: "user" | "admin";
30
30
  limit: number;
31
31
  ignore: string[];
32
32
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -19,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
19
19
  }>, {
20
20
  name: string;
21
21
  required: boolean;
22
- options: import("../../../types/components/input/input-select.js").InputSelectItem[];
23
22
  limit: number;
23
+ options: import("../../../types/components/input/input-select.js").InputSelectItem[];
24
24
  showCounter: boolean;
25
25
  selectClass: import("vue").HTMLAttributes["class"];
26
26
  resetOnTypeChange: boolean;
@@ -19,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
19
19
  }>, {
20
20
  name: string;
21
21
  required: boolean;
22
- options: import("../../../types/components/input/input-select.js").InputSelectItem[];
23
22
  limit: number;
23
+ options: import("../../../types/components/input/input-select.js").InputSelectItem[];
24
24
  showCounter: boolean;
25
25
  selectClass: import("vue").HTMLAttributes["class"];
26
26
  resetOnTypeChange: boolean;
@@ -23,8 +23,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
23
23
  }>, {
24
24
  title: string;
25
25
  items: CarouselItem[];
26
- startIndex: number;
27
26
  uploaderLabel: string;
27
+ startIndex: number;
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const _default: typeof __VLS_export;
30
30
  export default _default;
@@ -23,8 +23,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
23
23
  }>, {
24
24
  title: string;
25
25
  items: CarouselItem[];
26
- startIndex: number;
27
26
  uploaderLabel: string;
27
+ startIndex: number;
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const _default: typeof __VLS_export;
30
30
  export default _default;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <Modal class="w-[512px]" v-model="isOpen" :loading="false" @submit="onSubmit">
2
+ <Modal class="w-[512px]" v-model="isOpen" :loading="isSubmitting" @submit="onSubmit">
3
3
  <template #header>
4
4
  <div v-if="activeField === 'list'" class="font-title-medium-prominent">
5
5
  แนะนำให้แก้ไข
@@ -396,79 +396,164 @@ const openLinkEditField = (channel) => {
396
396
  const cancelEdit = () => {
397
397
  activeField.value = "list";
398
398
  };
399
- const onSubmit = () => {
400
- if (activeField.value === "place_name") {
401
- emit("submit-field", {
402
- field: "place_name",
403
- editType: editType.value,
404
- value: newName.value,
405
- localizedNames: localizedNames.value
406
- });
407
- }
408
- if (activeField.value === "address") {
409
- emit("submit-field", {
410
- field: "address",
411
- editType: addressEditType.value,
412
- addressValue: addressValue.value,
413
- latLng: addressLatLng.value
414
- });
415
- }
416
- if (activeField.value === "category") {
417
- emit("submit-field", {
418
- field: "category",
419
- editType: categoryEditType.value,
420
- categories: categories.value
421
- });
422
- }
423
- if (activeField.value === "description") {
424
- emit("submit-field", {
425
- field: "description",
426
- editType: descriptionEditType.value,
427
- value: descriptionValue.value
428
- });
429
- }
430
- if (activeField.value === "dateopening") {
431
- emit("submit-field", {
432
- field: "dateopening",
433
- editType: dateOpeningEditType.value,
434
- openingHours: newOpeningHours.value,
435
- specialDays: newSpecialDays.value
436
- });
437
- }
438
- if (activeField.value === "phone") {
439
- emit("submit-field", {
440
- field: "phone",
441
- value: phoneValue.value
442
- });
399
+ const isSubmitting = ref(false);
400
+ const buildSuggestEditBody = () => {
401
+ switch (activeField.value) {
402
+ case "place_name":
403
+ return {
404
+ topic_key: "name",
405
+ edit_type: editType.value,
406
+ name: newName.value,
407
+ localized_names: localizedNames.value.filter((r) => r.editType === "new" && r.newName.trim()).map((r) => ({ language: r.language, name: r.newName }))
408
+ };
409
+ case "address":
410
+ return {
411
+ topic_key: "address",
412
+ edit_type: addressEditType.value,
413
+ address: addressValue.value,
414
+ latLng: addressLatLng.value ?? void 0
415
+ };
416
+ case "category":
417
+ return {
418
+ topic_key: "category",
419
+ edit_type: categoryEditType.value,
420
+ categories: categories.value
421
+ };
422
+ case "description":
423
+ return {
424
+ topic_key: "description",
425
+ edit_type: descriptionEditType.value,
426
+ description: descriptionValue.value
427
+ };
428
+ case "dateopening":
429
+ return {
430
+ topic_key: "opening_hours",
431
+ edit_type: dateOpeningEditType.value,
432
+ opening_hours: newOpeningHours.value,
433
+ special_days: newSpecialDays.value
434
+ };
435
+ case "phone":
436
+ return {
437
+ topic_key: "phone",
438
+ edit_type: "add",
439
+ value: phoneValue.value
440
+ };
441
+ case "phone_edit":
442
+ return {
443
+ topic_key: "phone",
444
+ edit_type: phoneEditType.value,
445
+ target_value: editingPhone.value,
446
+ value: editPhoneValue.value
447
+ };
448
+ case "link":
449
+ return {
450
+ topic_key: "contact_channels",
451
+ edit_type: "add",
452
+ contact_channels: newContactChannels.value
453
+ };
454
+ case "link_edit":
455
+ return {
456
+ topic_key: "contact_channels",
457
+ edit_type: linkEditType.value,
458
+ target_channel_id: editingChannel.value?.id,
459
+ target_value: editingChannel.value?.value,
460
+ value: editChannelValue.value
461
+ };
462
+ default:
463
+ return null;
443
464
  }
444
- if (activeField.value === "phone_edit") {
445
- emit("submit-field", {
446
- field: "phone_edit",
447
- currentPhone: editingPhone.value,
448
- editType: phoneEditType.value,
449
- value: editPhoneValue.value
465
+ };
466
+ const onSubmit = async () => {
467
+ const body = buildSuggestEditBody();
468
+ if (!body || isSubmitting.value) return;
469
+ isSubmitting.value = true;
470
+ try {
471
+ await api(`/suggest-places/${props.item.id}/suggest-edits`, {
472
+ method: "post",
473
+ body
450
474
  });
451
- }
452
- if (activeField.value === "link") {
453
- emit("submit-field", {
454
- field: "link",
455
- channels: newContactChannels.value
475
+ if (activeField.value === "place_name") {
476
+ emit("submit-field", {
477
+ field: "place_name",
478
+ editType: editType.value,
479
+ value: newName.value,
480
+ localizedNames: localizedNames.value
481
+ });
482
+ }
483
+ if (activeField.value === "address") {
484
+ emit("submit-field", {
485
+ field: "address",
486
+ editType: addressEditType.value,
487
+ addressValue: addressValue.value,
488
+ latLng: addressLatLng.value
489
+ });
490
+ }
491
+ if (activeField.value === "category") {
492
+ emit("submit-field", {
493
+ field: "category",
494
+ editType: categoryEditType.value,
495
+ categories: categories.value
496
+ });
497
+ }
498
+ if (activeField.value === "description") {
499
+ emit("submit-field", {
500
+ field: "description",
501
+ editType: descriptionEditType.value,
502
+ value: descriptionValue.value
503
+ });
504
+ }
505
+ if (activeField.value === "dateopening") {
506
+ emit("submit-field", {
507
+ field: "dateopening",
508
+ editType: dateOpeningEditType.value,
509
+ openingHours: newOpeningHours.value,
510
+ specialDays: newSpecialDays.value
511
+ });
512
+ }
513
+ if (activeField.value === "phone") {
514
+ emit("submit-field", {
515
+ field: "phone",
516
+ value: phoneValue.value
517
+ });
518
+ }
519
+ if (activeField.value === "phone_edit") {
520
+ emit("submit-field", {
521
+ field: "phone_edit",
522
+ currentPhone: editingPhone.value,
523
+ editType: phoneEditType.value,
524
+ value: editPhoneValue.value
525
+ });
526
+ }
527
+ if (activeField.value === "link") {
528
+ emit("submit-field", {
529
+ field: "link",
530
+ channels: newContactChannels.value
531
+ });
532
+ }
533
+ if (activeField.value === "link_edit") {
534
+ emit("submit-field", {
535
+ field: "link_edit",
536
+ currentChannel: editingChannel.value,
537
+ editType: linkEditType.value,
538
+ value: editChannelValue.value
539
+ });
540
+ }
541
+ activeField.value = "list";
542
+ $alert.show({
543
+ type: "success",
544
+ title: "\u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13\u0E17\u0E35\u0E48\u0E41\u0E08\u0E49\u0E07\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E17\u0E23\u0E32\u0E1A !",
545
+ description: "\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E2D\u0E07\u0E2A\u0E32\u0E21\u0E27\u0E31\u0E19\u0E43\u0E19\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13"
456
546
  });
457
- }
458
- if (activeField.value === "link_edit") {
459
- emit("submit-field", {
460
- field: "link_edit",
461
- currentChannel: editingChannel.value,
462
- editType: linkEditType.value,
463
- value: editChannelValue.value
547
+ } catch (error) {
548
+ console.error(error);
549
+ $alert.show({
550
+ type: "error",
551
+ title: "\u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14",
552
+ description: "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E25\u0E2D\u0E07\u0E43\u0E2B\u0E21\u0E48\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07 !"
464
553
  });
554
+ } finally {
555
+ isSubmitting.value = false;
465
556
  }
466
- activeField.value = "list";
467
- $alert.show({
468
- type: "success",
469
- title: "\u0E02\u0E2D\u0E1A\u0E04\u0E38\u0E13\u0E17\u0E35\u0E48\u0E41\u0E08\u0E49\u0E07\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E17\u0E23\u0E32\u0E1A !",
470
- description: "\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E2D\u0E07\u0E2A\u0E32\u0E21\u0E27\u0E31\u0E19\u0E43\u0E19\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13"
471
- });
472
557
  };
473
558
  const canSubmit = computed(() => {
474
559
  switch (activeField.value) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pukaad-ui-lib",
3
- "version": "1.371.0",
3
+ "version": "1.372.0",
4
4
  "description": "pukaad-ui for MeMSG",
5
5
  "repository": {
6
6
  "type": "git",