Skip to content

Commit 4bf6464

Browse files
demshyerezrokah
andauthored
fix(relation-widget): i18n options (#6299)
Co-authored-by: Erez Rokah <[email protected]>
1 parent 5866e6c commit 4bf6464

File tree

5 files changed

+19
-2
lines changed

5 files changed

+19
-2
lines changed

packages/netlify-cms-core/src/components/Editor/EditorControlPane/EditorControl.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ class EditorControl extends React.Component {
146146
isHidden: PropTypes.bool,
147147
isFieldDuplicate: PropTypes.func,
148148
isFieldHidden: PropTypes.func,
149+
locale: PropTypes.string,
149150
};
150151

151152
static defaultProps = {
@@ -207,6 +208,7 @@ class EditorControl extends React.Component {
207208
isHidden,
208209
isFieldDuplicate,
209210
isFieldHidden,
211+
locale,
210212
} = this.props;
211213

212214
const widgetName = field.get('widget');
@@ -327,6 +329,7 @@ class EditorControl extends React.Component {
327329
isDisabled={isDisabled}
328330
isFieldDuplicate={isFieldDuplicate}
329331
isFieldHidden={isFieldHidden}
332+
locale={locale}
330333
/>
331334
{fieldHint && (
332335
<ControlHint active={isSelected || this.state.styleActive} error={hasErrors}>

packages/netlify-cms-core/src/components/Editor/EditorControlPane/EditorControlPane.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ export default class ControlPane extends React.Component {
235235
isHidden={isHidden}
236236
isFieldDuplicate={field => isFieldDuplicate(field, locale, defaultLocale)}
237237
isFieldHidden={field => isFieldHidden(field, locale, defaultLocale)}
238+
locale={locale}
238239
/>
239240
);
240241
})}
@@ -251,4 +252,5 @@ ControlPane.propTypes = {
251252
fieldsErrors: ImmutablePropTypes.map.isRequired,
252253
onChange: PropTypes.func.isRequired,
253254
onValidate: PropTypes.func.isRequired,
255+
locale: PropTypes.string,
254256
};

packages/netlify-cms-core/src/components/Editor/EditorControlPane/Widget.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export default class Widget extends Component {
7171
isDisabled: PropTypes.bool,
7272
isFieldDuplicate: PropTypes.func,
7373
isFieldHidden: PropTypes.func,
74+
locale: PropTypes.string,
7475
};
7576

7677
shouldComponentUpdate(nextProps) {
@@ -292,6 +293,7 @@ export default class Widget extends Component {
292293
isDisabled,
293294
isFieldDuplicate,
294295
isFieldHidden,
296+
locale,
295297
} = this.props;
296298

297299
return React.createElement(controlComponent, {
@@ -343,6 +345,7 @@ export default class Widget extends Component {
343345
isDisabled,
344346
isFieldDuplicate,
345347
isFieldHidden,
348+
locale,
346349
});
347350
}
348351
}

packages/netlify-cms-widget-object/src/ObjectControl.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default class ObjectControl extends React.Component {
3939
fieldsErrors: ImmutablePropTypes.map.isRequired,
4040
hasError: PropTypes.bool,
4141
t: PropTypes.func.isRequired,
42+
locale: PropTypes.string,
4243
};
4344

4445
static defaultProps = {
@@ -85,6 +86,7 @@ export default class ObjectControl extends React.Component {
8586
parentIds,
8687
isFieldDuplicate,
8788
isFieldHidden,
89+
locale,
8890
} = this.props;
8991

9092
if (field.get('widget') === 'hidden') {
@@ -113,6 +115,7 @@ export default class ObjectControl extends React.Component {
113115
isHidden={isHidden}
114116
isFieldDuplicate={isFieldDuplicate}
115117
isFieldHidden={isFieldHidden}
118+
locale={locale}
116119
/>
117120
);
118121
}

packages/netlify-cms-widget-relation/src/RelationControl.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ export default class RelationControl extends React.Component {
118118
classNameWrapper: PropTypes.string.isRequired,
119119
setActiveStyle: PropTypes.func.isRequired,
120120
setInactiveStyle: PropTypes.func.isRequired,
121+
locale: PropTypes.string,
121122
};
122123

123124
isValid = () => {
@@ -235,12 +236,17 @@ export default class RelationControl extends React.Component {
235236
};
236237

237238
parseNestedFields = (hit, field) => {
239+
const { locale } = this.props;
240+
const hitData =
241+
locale != null && hit.i18n != null && hit.i18n[locale] != null
242+
? hit.i18n[locale].data
243+
: hit.data;
238244
const templateVars = stringTemplate.extractTemplateVars(field);
239245
// return non template fields as is
240246
if (templateVars.length <= 0) {
241-
return get(hit.data, field);
247+
return get(hitData, field);
242248
}
243-
const data = stringTemplate.addFileTemplateFields(hit.path, fromJS(hit.data));
249+
const data = stringTemplate.addFileTemplateFields(hit.path, fromJS(hitData));
244250
const value = stringTemplate.compileStringTemplate(field, null, hit.slug, data);
245251
return value;
246252
};

0 commit comments

Comments
 (0)