@digi-frontend/dgate-api-documentation 4.1.0 → 4.1.1

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.
package/dist/index.mjs CHANGED
@@ -6754,7 +6754,7 @@ const TagsSection = ({ tags, collapsed, onToggleCollapse, onAddTag, onEditTag, o
6754
6754
  height: 32
6755
6755
  }),
6756
6756
  disabled: tag.isDefault,
6757
- onClick: () => !tag.isDefault && onDeleteTag?.(tag.name),
6757
+ onClick: () => !tag.isDefault && onDeleteTag?.(tag.name, tags.findIndex((t) => t.name === tag.name)),
6758
6758
  style: {
6759
6759
  width: 40,
6760
6760
  height: 40,
@@ -6930,7 +6930,7 @@ const TagsSection = ({ tags, collapsed, onToggleCollapse, onAddTag, onEditTag, o
6930
6930
  height: 32
6931
6931
  }),
6932
6932
  disabled: tag.isDefault,
6933
- onClick: () => !tag.isDefault && onDeleteTag?.(tag.name),
6933
+ onClick: () => !tag.isDefault && onDeleteTag?.(tag.name, tags.findIndex((t) => t.name === tag.name)),
6934
6934
  style: {
6935
6935
  width: 40,
6936
6936
  height: 40,
@@ -6973,7 +6973,7 @@ const TagsSection = ({ tags, collapsed, onToggleCollapse, onAddTag, onEditTag, o
6973
6973
  const TAG_NAME_REGEX = /^[A-Za-z0-9_\s-]+$/;
6974
6974
  const TAG_DESC_REGEX = /^[A-Za-z0-9_\s-]+$/;
6975
6975
  const EXTERNAL_DOCS_DESC_REGEX = /^[A-Za-z0-9_\s-]+$/;
6976
- const AddTagDrawer = ({ open, onClose, mode, initialValues, onAddTag, onEditTag }) => {
6976
+ const AddTagDrawer = ({ open, onClose, mode, initialValues, onAddTag, onEditTag, existingTags }) => {
6977
6977
  const [form] = Form.useForm();
6978
6978
  const [messageApi, contextHolder] = message.useMessage();
6979
6979
  const [confirmModalOpen, setConfirmModalOpen] = useState(false);
@@ -7104,7 +7104,7 @@ const AddTagDrawer = ({ open, onClose, mode, initialValues, onAddTag, onEditTag
7104
7104
  }
7105
7105
  }));
7106
7106
  const isLinkEnabled = Boolean(extDocsDesc?.trim());
7107
- const isAddEnabled = !!(tagNameValue && TAG_NAME_REGEX.test(tagNameValue));
7107
+ const isAddEnabled = !!(tagNameValue && TAG_NAME_REGEX.test(tagNameValue)) && !form.getFieldsError().some((field) => field.errors.length > 0);
7108
7108
  useEffect(() => {
7109
7109
  if (open && mode === "edit" && initialValues) form.setFieldsValue(initialValues);
7110
7110
  if (!open) form.resetFields();
@@ -7214,7 +7214,13 @@ const AddTagDrawer = ({ open, onClose, mode, initialValues, onAddTag, onEditTag
7214
7214
  {
7215
7215
  pattern: TAG_NAME_REGEX,
7216
7216
  message: "Only letters, numbers, spaces, underscores, and hyphens"
7217
- }
7217
+ },
7218
+ { validator: (_, value) => {
7219
+ if (!value || !existingTags?.length) return Promise.resolve();
7220
+ const originalName = initialValues?.name;
7221
+ if (existingTags.some((t) => t.name.toLowerCase() === value.toLowerCase() && t.name.toLowerCase() !== originalName?.toLowerCase())) return Promise.reject(/* @__PURE__ */ new Error("Tag name already exists"));
7222
+ return Promise.resolve();
7223
+ } }
7218
7224
  ],
7219
7225
  children: /* @__PURE__ */ jsx(Input, {
7220
7226
  showCount: true,
@@ -8967,7 +8973,7 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
8967
8973
  });
8968
8974
  const [deleteTagModal, setDeleteTagModal] = useState({
8969
8975
  open: false,
8970
- tagName: ""
8976
+ tagIndex: -1
8971
8977
  });
8972
8978
  const [localTags, setLocalTags] = useState([]);
8973
8979
  const [messageApi, contextHolder] = message.useMessage();
@@ -9144,7 +9150,9 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
9144
9150
  externalDocsDescription: t.externalDocs?.description,
9145
9151
  isDefault: t.name.toLowerCase() === "default"
9146
9152
  })) ?? [];
9147
- if (!mapped.some((t) => t.isDefault) && selectedApi.tags["default"]) mapped.push({
9153
+ const hasDefault = mapped.some((t) => t.isDefault);
9154
+ const hasDefaultInMapped = mapped.some((t) => t.name.toLowerCase() === "default");
9155
+ if (!hasDefault && !hasDefaultInMapped && selectedApi.tags["default"]) mapped.push({
9148
9156
  name: "default",
9149
9157
  isDefault: true
9150
9158
  });
@@ -9369,11 +9377,13 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
9369
9377
  setBannerVisible(true);
9370
9378
  };
9371
9379
  const handleDeleteTagConfirm = () => {
9372
- setLocalTags((prev) => prev.filter((t) => t.name !== deleteTagModal.tagName));
9373
- messageApi.success(`${deleteTagModal.tagName} tag has been deleted successfully.`);
9380
+ if (deleteTagModal.tagIndex < 0) return;
9381
+ const tagName = localTags[deleteTagModal.tagIndex]?.name ?? "Tag";
9382
+ setLocalTags((prev) => prev.filter((_, index) => index !== deleteTagModal.tagIndex));
9383
+ messageApi.success(`${tagName} tag has been deleted successfully.`);
9374
9384
  setDeleteTagModal({
9375
9385
  open: false,
9376
- tagName: ""
9386
+ tagIndex: -1
9377
9387
  });
9378
9388
  setBannerVisible(true);
9379
9389
  };
@@ -9772,9 +9782,9 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
9772
9782
  externalDocsLink: tag.externalDocsUrl
9773
9783
  }
9774
9784
  }),
9775
- onDeleteTag: (tagName) => setDeleteTagModal({
9785
+ onDeleteTag: (_tagName, tagIndex) => setDeleteTagModal({
9776
9786
  open: true,
9777
- tagName
9787
+ tagIndex
9778
9788
  })
9779
9789
  })
9780
9790
  }),
@@ -9934,9 +9944,9 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
9934
9944
  externalDocsLink: tag.externalDocsUrl
9935
9945
  }
9936
9946
  }),
9937
- onDeleteTag: (tagName) => setDeleteTagModal({
9947
+ onDeleteTag: (_tagName, tagIndex) => setDeleteTagModal({
9938
9948
  open: true,
9939
- tagName
9949
+ tagIndex
9940
9950
  })
9941
9951
  })
9942
9952
  }),
@@ -10064,7 +10074,8 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
10064
10074
  mode: "add"
10065
10075
  }),
10066
10076
  onAddTag: handleAddTag,
10067
- onEditTag: handleUpdateTag
10077
+ onEditTag: handleUpdateTag,
10078
+ existingTags: localTags
10068
10079
  }),
10069
10080
  /* @__PURE__ */ jsxs(Modal, {
10070
10081
  open: saveConfirmModal,
@@ -10208,7 +10219,7 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
10208
10219
  open: deleteTagModal.open,
10209
10220
  onCancel: () => setDeleteTagModal({
10210
10221
  open: false,
10211
- tagName: ""
10222
+ tagIndex: -1
10212
10223
  }),
10213
10224
  centered: true,
10214
10225
  title: null,
@@ -10234,14 +10245,14 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
10234
10245
  className: cx("deleteModalTitle"),
10235
10246
  children: [
10236
10247
  "Delete ",
10237
- deleteTagModal.tagName,
10248
+ localTags[deleteTagModal.tagIndex]?.name ?? "Tag",
10238
10249
  " tag"
10239
10250
  ]
10240
10251
  }), /* @__PURE__ */ jsx("button", {
10241
10252
  className: cx("deleteModalCloseBtn"),
10242
10253
  onClick: () => setDeleteTagModal({
10243
10254
  open: false,
10244
- tagName: ""
10255
+ tagIndex: -1
10245
10256
  }),
10246
10257
  "aria-label": "Close",
10247
10258
  children: "×"
@@ -10253,7 +10264,7 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
10253
10264
  className: cx("deleteModalContentText"),
10254
10265
  children: [
10255
10266
  "Are you sure you want to delete ",
10256
- deleteTagModal.tagName,
10267
+ localTags[deleteTagModal.tagIndex]?.name ?? "Tag",
10257
10268
  " tag?"
10258
10269
  ]
10259
10270
  })
@@ -10264,7 +10275,7 @@ const ConsoleDocumentationLayout = ({ data, preSelectedApi, handleVisitLandingPa
10264
10275
  size: "middle",
10265
10276
  onClick: () => setDeleteTagModal({
10266
10277
  open: false,
10267
- tagName: ""
10278
+ tagIndex: -1
10268
10279
  }),
10269
10280
  style: {
10270
10281
  borderRadius: 8,