sanity-plugin-internationalized-array 1.10.0 → 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sanity-plugin-internationalized-array",
3
- "version": "1.10.0",
3
+ "version": "1.10.1",
4
4
  "description": "Store localized fields in an array to save on attributes",
5
5
  "keywords": [
6
6
  "sanity",
@@ -1,18 +1,17 @@
1
1
  import {AddIcon} from '@sanity/icons'
2
2
  import {useLanguageFilterStudioContext} from '@sanity/language-filter'
3
- import {Button, Card, Grid, Stack, Text, useToast} from '@sanity/ui'
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
- MemberItemError
13
13
  } from 'sanity'
14
14
 
15
- import {MAX_COLUMNS} from '../constants'
16
15
  import type {Value} from '../types'
17
16
  import {checkAllLanguagesArePresent} from '../utils/checkAllLanguagesArePresent'
18
17
  import {createAddAllTitle} from '../utils/createAddAllTitle'
@@ -104,18 +103,33 @@ export default function InternationalizedArray(
104
103
 
105
104
  // Create default fields if the document is not yet created
106
105
  const documentCreatedAt = useFormValue(['_createdAt'])
106
+ const [hasAddedDefaultLanguages, setHasAddedDefaultLanguages] =
107
+ useState(false)
107
108
 
108
- if (
109
- // Array field is empty
110
- !value &&
111
- // Document form is in "not yet created" state
112
- !documentCreatedAt &&
113
- // Plugin config included default languages
114
- defaultLanguages &&
115
- defaultLanguages?.length > 0
116
- ) {
117
- handleAddLanguage(defaultLanguages)
118
- }
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
+ ])
119
133
 
120
134
  // TODO: This is reordering and re-setting the whole array, it could be surgical
121
135
  const handleRestoreOrder = useCallback(() => {
@@ -53,7 +53,7 @@ const createTranslateFieldActions: (
53
53
  type: 'action',
54
54
  icon: AddIcon,
55
55
  onAction,
56
- title: language.id.toLocaleUpperCase(),
56
+ title: language.title,
57
57
  hidden,
58
58
  disabled,
59
59
  }