sanity-plugin-internationalized-array 1.10.8 → 1.10.9
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/lib/index.esm.js +2 -7
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +1 -6
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/InternationalizedArray.tsx +15 -22
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {AddIcon} from '@sanity/icons'
|
|
2
2
|
import {useLanguageFilterStudioContext} from '@sanity/language-filter'
|
|
3
3
|
import {Button, Card, Stack, Text, useToast} from '@sanity/ui'
|
|
4
|
-
import React, {useCallback, useEffect, useMemo,
|
|
4
|
+
import React, {useCallback, useEffect, useMemo, useRef} from 'react'
|
|
5
5
|
import {
|
|
6
6
|
ArrayOfObjectsInputProps,
|
|
7
7
|
ArrayOfObjectsItem,
|
|
@@ -103,34 +103,27 @@ export default function InternationalizedArray(
|
|
|
103
103
|
|
|
104
104
|
// Create default fields if the document is not yet created
|
|
105
105
|
const documentCreatedAt = useFormValue(['_createdAt'])
|
|
106
|
-
const
|
|
107
|
-
Boolean(documentCreatedAt)
|
|
108
|
-
)
|
|
106
|
+
const hasAddedDefaultLanguages = useRef(Boolean(documentCreatedAt))
|
|
109
107
|
|
|
110
108
|
// Write default languages
|
|
111
109
|
useEffect(() => {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
// (This prevents the document being recreated when deleted)
|
|
115
|
-
!hasAddedDefaultLanguages &&
|
|
116
|
-
// This array field is empty
|
|
110
|
+
const shouldAddDefaultLanguages =
|
|
111
|
+
!hasAddedDefaultLanguages.current &&
|
|
117
112
|
!value &&
|
|
118
|
-
// Document form is in "not yet created" state
|
|
119
113
|
!documentCreatedAt &&
|
|
120
|
-
|
|
121
|
-
defaultLanguages
|
|
122
|
-
|
|
123
|
-
) {
|
|
114
|
+
Array.isArray(defaultLanguages) &&
|
|
115
|
+
defaultLanguages.length > 0
|
|
116
|
+
|
|
117
|
+
if (shouldAddDefaultLanguages) {
|
|
124
118
|
handleAddLanguage(defaultLanguages)
|
|
125
|
-
setHasAddedDefaultLanguages(true)
|
|
126
119
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
])
|
|
120
|
+
|
|
121
|
+
return () => {
|
|
122
|
+
if (shouldAddDefaultLanguages) {
|
|
123
|
+
hasAddedDefaultLanguages.current = true
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}, [defaultLanguages, documentCreatedAt, handleAddLanguage, value])
|
|
134
127
|
|
|
135
128
|
// TODO: This is reordering and re-setting the whole array, it could be surgical
|
|
136
129
|
const handleRestoreOrder = useCallback(() => {
|