fix(relation-widget): i18n options (#6299)

Co-authored-by: Erez Rokah <erezrokah@users.noreply.github.com>
This commit is contained in:
Anze Demsar 2022-04-12 17:00:46 +02:00 committed by GitHub
parent 5866e6cb3b
commit 4bf64642e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 2 deletions

View File

@ -146,6 +146,7 @@ class EditorControl extends React.Component {
isHidden: PropTypes.bool,
isFieldDuplicate: PropTypes.func,
isFieldHidden: PropTypes.func,
locale: PropTypes.string,
};
static defaultProps = {
@ -207,6 +208,7 @@ class EditorControl extends React.Component {
isHidden,
isFieldDuplicate,
isFieldHidden,
locale,
} = this.props;
const widgetName = field.get('widget');
@ -327,6 +329,7 @@ class EditorControl extends React.Component {
isDisabled={isDisabled}
isFieldDuplicate={isFieldDuplicate}
isFieldHidden={isFieldHidden}
locale={locale}
/>
{fieldHint && (
<ControlHint active={isSelected || this.state.styleActive} error={hasErrors}>

View File

@ -235,6 +235,7 @@ export default class ControlPane extends React.Component {
isHidden={isHidden}
isFieldDuplicate={field => isFieldDuplicate(field, locale, defaultLocale)}
isFieldHidden={field => isFieldHidden(field, locale, defaultLocale)}
locale={locale}
/>
);
})}
@ -251,4 +252,5 @@ ControlPane.propTypes = {
fieldsErrors: ImmutablePropTypes.map.isRequired,
onChange: PropTypes.func.isRequired,
onValidate: PropTypes.func.isRequired,
locale: PropTypes.string,
};

View File

@ -71,6 +71,7 @@ export default class Widget extends Component {
isDisabled: PropTypes.bool,
isFieldDuplicate: PropTypes.func,
isFieldHidden: PropTypes.func,
locale: PropTypes.string,
};
shouldComponentUpdate(nextProps) {
@ -292,6 +293,7 @@ export default class Widget extends Component {
isDisabled,
isFieldDuplicate,
isFieldHidden,
locale,
} = this.props;
return React.createElement(controlComponent, {
@ -343,6 +345,7 @@ export default class Widget extends Component {
isDisabled,
isFieldDuplicate,
isFieldHidden,
locale,
});
}
}

View File

@ -39,6 +39,7 @@ export default class ObjectControl extends React.Component {
fieldsErrors: ImmutablePropTypes.map.isRequired,
hasError: PropTypes.bool,
t: PropTypes.func.isRequired,
locale: PropTypes.string,
};
static defaultProps = {
@ -85,6 +86,7 @@ export default class ObjectControl extends React.Component {
parentIds,
isFieldDuplicate,
isFieldHidden,
locale,
} = this.props;
if (field.get('widget') === 'hidden') {
@ -113,6 +115,7 @@ export default class ObjectControl extends React.Component {
isHidden={isHidden}
isFieldDuplicate={isFieldDuplicate}
isFieldHidden={isFieldHidden}
locale={locale}
/>
);
}

View File

@ -118,6 +118,7 @@ export default class RelationControl extends React.Component {
classNameWrapper: PropTypes.string.isRequired,
setActiveStyle: PropTypes.func.isRequired,
setInactiveStyle: PropTypes.func.isRequired,
locale: PropTypes.string,
};
isValid = () => {
@ -235,12 +236,17 @@ export default class RelationControl extends React.Component {
};
parseNestedFields = (hit, field) => {
const { locale } = this.props;
const hitData =
locale != null && hit.i18n != null && hit.i18n[locale] != null
? hit.i18n[locale].data
: hit.data;
const templateVars = stringTemplate.extractTemplateVars(field);
// return non template fields as is
if (templateVars.length <= 0) {
return get(hit.data, field);
return get(hitData, field);
}
const data = stringTemplate.addFileTemplateFields(hit.path, fromJS(hit.data));
const data = stringTemplate.addFileTemplateFields(hit.path, fromJS(hitData));
const value = stringTemplate.compileStringTemplate(field, null, hit.slug, data);
return value;
};