import { connect } from 'react-redux';
import { change, WrappedFieldMetaProps, WrappedFieldInputProps, WrappedFieldProps } from 'redux-form';
-import { Vocabulary, PropFieldSuggestion } from '~/models/vocabulary';
-import { RootState } from '~/store/store';
-import { getVocabulary } from '~/store/vocabulary/vocabulary-selectors';
+import { Vocabulary, PropFieldSuggestion } from 'models/vocabulary';
+import { RootState } from 'store/store';
+import { getVocabulary } from 'store/vocabulary/vocabulary-selectors';
export interface VocabularyProp {
vocabulary: Vocabulary;
}
-export const mapStateToProps = (state: RootState): VocabularyProp => ({
+export interface ValidationProp {
+ skipValidation?: boolean;
+ clearPropertyKeyOnSelect?: boolean;
+}
+
+export const mapStateToProps = (state: RootState, ownProps: ValidationProp): VocabularyProp & ValidationProp => ({
+ skipValidation: ownProps.skipValidation,
vocabulary: getVocabulary(state.properties),
});
export const buildProps = ({ input, meta }: WrappedFieldProps) => {
return {
value: input.value,
- onChange: input.onChange,
items: ITEMS_PLACEHOLDER,
- renderSuggestion: (item:PropFieldSuggestion) => item.label,
+ renderSuggestion: (item: PropFieldSuggestion) => item.label,
error: hasError(meta),
helperText: getErrorMsg(meta),
};
{ dispatch }: WrappedFieldMetaProps,
{ onBlur, value }: WrappedFieldInputProps,
fieldValue: string) =>
- () => {
- dispatch(change(formName, fieldName, fieldValue));
- onBlur(value);
- };
+ () => {
+ dispatch(change(formName, fieldName, fieldValue));
+ onBlur(value);
+ };
// When selecting a property value, save its ID for later usage.
export const handleSelect = (
fieldName: string,
formName: string,
{ onChange }: WrappedFieldInputProps,
- { dispatch }: WrappedFieldMetaProps ) =>
- (item:PropFieldSuggestion) => {
- if (item) {
- onChange(item.label);
- dispatch(change(formName, fieldName, item.id));
- }
- };
+ { dispatch }: WrappedFieldMetaProps) =>
+ (item: PropFieldSuggestion) => {
+ if (item) {
+ onChange(item.label);
+ dispatch(change(formName, fieldName, item.id));
+ }
+ };