sanity-plugin-internationalized-array 1.9.1 → 1.10.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/README.md +1 -1
- package/lib/index.esm.js +6 -4
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +5 -3
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/InternationalizedArray.tsx +31 -19
- package/src/fieldActions/index.ts +1 -1
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {AddIcon} from '@sanity/icons'
|
|
2
2
|
import {useLanguageFilterStudioContext} from '@sanity/language-filter'
|
|
3
|
-
import {Button, Card,
|
|
4
|
-
import React, {useCallback, useEffect, useMemo} from 'react'
|
|
3
|
+
import {Button, Card, Stack, Text, useToast} from '@sanity/ui'
|
|
4
|
+
import React, {useCallback, useEffect, useMemo, useState} from 'react'
|
|
5
5
|
import {
|
|
6
6
|
ArrayOfObjectsInputProps,
|
|
7
7
|
ArrayOfObjectsItem,
|
|
8
8
|
ArraySchemaType,
|
|
9
|
+
MemberItemError,
|
|
9
10
|
set,
|
|
10
11
|
setIfMissing,
|
|
11
12
|
useFormValue,
|
|
12
13
|
} from 'sanity'
|
|
13
14
|
|
|
14
|
-
import {MAX_COLUMNS} from '../constants'
|
|
15
15
|
import type {Value} from '../types'
|
|
16
16
|
import {checkAllLanguagesArePresent} from '../utils/checkAllLanguagesArePresent'
|
|
17
17
|
import {createAddAllTitle} from '../utils/createAddAllTitle'
|
|
@@ -103,18 +103,33 @@ 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 [hasAddedDefaultLanguages, setHasAddedDefaultLanguages] =
|
|
107
|
+
useState(false)
|
|
106
108
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
// Write default languages
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
if (
|
|
112
|
+
// Hasn't already added default languages
|
|
113
|
+
// (This prevents the document being recreated when deleted)
|
|
114
|
+
!hasAddedDefaultLanguages &&
|
|
115
|
+
// This array field is empty
|
|
116
|
+
!value &&
|
|
117
|
+
// Document form is in "not yet created" state
|
|
118
|
+
!documentCreatedAt &&
|
|
119
|
+
// Plugin config included default languages
|
|
120
|
+
defaultLanguages &&
|
|
121
|
+
defaultLanguages?.length > 0
|
|
122
|
+
) {
|
|
123
|
+
handleAddLanguage(defaultLanguages)
|
|
124
|
+
setHasAddedDefaultLanguages(true)
|
|
125
|
+
}
|
|
126
|
+
}, [
|
|
127
|
+
defaultLanguages,
|
|
128
|
+
documentCreatedAt,
|
|
129
|
+
handleAddLanguage,
|
|
130
|
+
hasAddedDefaultLanguages,
|
|
131
|
+
value,
|
|
132
|
+
])
|
|
118
133
|
|
|
119
134
|
// TODO: This is reordering and re-setting the whole array, it could be surgical
|
|
120
135
|
const handleRestoreOrder = useCallback(() => {
|
|
@@ -216,17 +231,14 @@ export default function InternationalizedArray(
|
|
|
216
231
|
if (member.kind === 'item') {
|
|
217
232
|
return (
|
|
218
233
|
<ArrayOfObjectsItem
|
|
234
|
+
{...props}
|
|
219
235
|
key={member.key}
|
|
220
236
|
member={member}
|
|
221
|
-
renderItem={props.renderItem}
|
|
222
|
-
renderField={props.renderField}
|
|
223
|
-
renderInput={props.renderInput}
|
|
224
|
-
renderPreview={props.renderPreview}
|
|
225
237
|
/>
|
|
226
238
|
)
|
|
227
239
|
}
|
|
228
240
|
|
|
229
|
-
return
|
|
241
|
+
return <MemberItemError key={member.key} member={member} />
|
|
230
242
|
})}
|
|
231
243
|
</>
|
|
232
244
|
) : null}
|