@sanity/document-internationalization 3.2.1 → 3.3.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.
package/dist/index.js CHANGED
@@ -28,7 +28,8 @@ const METADATA_SCHEMA_NAME = "translation.metadata", TRANSLATIONS_ARRAY_NAME = "
28
28
  bulkPublish: !1,
29
29
  metadataFields: [],
30
30
  apiVersion: API_VERSION,
31
- allowCreateMetaDoc: !1
31
+ allowCreateMetaDoc: !1,
32
+ callback: null
32
33
  };
33
34
  function separateReferences(data = []) {
34
35
  const translations = [], otherReferences = [];
@@ -3710,7 +3711,7 @@ function LanguageOption(props) {
3710
3711
  sourceLanguageId,
3711
3712
  metadata: metadata2,
3712
3713
  metadataId
3713
- } = props, [userHasClicked, setUserHasClicked] = react.useState(!1), disabled = props.disabled || userHasClicked || current || !source || !sourceLanguageId || !metadataId, translation = metadata2 != null && metadata2.translations.length ? metadata2.translations.find((t) => t._key === language.id) : void 0, { apiVersion, languageField, weakReferences } = useDocumentInternationalizationContext(), client = sanity.useClient({ apiVersion }), toast = ui.useToast(), open = useOpenInNewPane((_a = translation == null ? void 0 : translation.value) == null ? void 0 : _a._ref, schemaType.name), handleOpen = react.useCallback(() => open(), [open]);
3714
+ } = props, [userHasClicked, setUserHasClicked] = react.useState(!1), disabled = props.disabled || userHasClicked || current || !source || !sourceLanguageId || !metadataId, translation = metadata2 != null && metadata2.translations.length ? metadata2.translations.find((t) => t._key === language.id) : void 0, { apiVersion, languageField, weakReferences, callback } = useDocumentInternationalizationContext(), client = sanity.useClient({ apiVersion }), toast = ui.useToast(), open = useOpenInNewPane((_a = translation == null ? void 0 : translation.value) == null ? void 0 : _a._ref, schemaType.name), handleOpen = react.useCallback(() => open(), [open]);
3714
3715
  react.useEffect(() => {
3715
3716
  setUserHasClicked(!1);
3716
3717
  }, [!!translation]);
@@ -3752,7 +3753,20 @@ function LanguageOption(props) {
3752
3753
  const metadataPatch = client.patch(metadataId).setIfMissing({ translations: [sourceReference] }).insert("after", "translations[-1]", [newTranslationReference]);
3753
3754
  transaction.patch(metadataPatch), transaction.commit().then(() => {
3754
3755
  const metadataExisted = !!(metadata2 != null && metadata2._createdAt);
3755
- return toast.push({
3756
+ return callback == null || callback({
3757
+ client,
3758
+ sourceLanguageId,
3759
+ sourceDocument: source,
3760
+ newDocument: newTranslationDocument,
3761
+ destinationLanguageId: language.id,
3762
+ metaDocumentId: metadataId
3763
+ }).catch((err) => {
3764
+ toast.push({
3765
+ status: "error",
3766
+ title: "Callback",
3767
+ description: `Error while running callback - ${err}.`
3768
+ });
3769
+ }), toast.push({
3756
3770
  status: "success",
3757
3771
  title: `Created "${language.title}" translation`,
3758
3772
  description: metadataExisted ? "Updated Translations Metadata" : "Created Translations Metadata"
@@ -3774,7 +3788,8 @@ function LanguageOption(props) {
3774
3788
  source,
3775
3789
  sourceLanguageId,
3776
3790
  toast,
3777
- weakReferences
3791
+ weakReferences,
3792
+ callback
3778
3793
  ]);
3779
3794
  let message;
3780
3795
  return current ? message = "Current document" : translation ? message = `Open ${language.title} translation` : translation || (message = `Create new ${language.title} translation`), /* @__PURE__ */ jsxRuntime.jsx(