@luomus/laji-form 15.1.122 → 15.1.124
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/dist/laji-form.js +1 -1
- package/lib/components/fields/ArchipelagoURLField.d.ts +6 -0
- package/lib/components/fields/ArchipelagoURLField.js +20 -5
- package/lib/services/root-instance-service.d.ts +3 -0
- package/lib/services/root-instance-service.js +8 -0
- package/lib/translations.json +5 -0
- package/package.json +1 -1
|
@@ -16,5 +16,11 @@ export default class ArchipelagoURLField extends React.Component<FieldProps> {
|
|
|
16
16
|
};
|
|
17
17
|
constructor(props: FieldProps);
|
|
18
18
|
static getName(): string;
|
|
19
|
+
getStateFromProps(props: FieldProps): {
|
|
20
|
+
rootFormData: any;
|
|
21
|
+
};
|
|
22
|
+
componentDidMount(): void;
|
|
23
|
+
componentWillUnmount(): void;
|
|
24
|
+
onRootFormDataChange: (rootFormData: any) => void;
|
|
19
25
|
render(): JSX.Element;
|
|
20
26
|
}
|
|
@@ -49,22 +49,37 @@ const utils_1 = require("../../utils");
|
|
|
49
49
|
let ArchipelagoURLField = class ArchipelagoURLField extends React.Component {
|
|
50
50
|
constructor(props) {
|
|
51
51
|
super(props);
|
|
52
|
+
this.onRootFormDataChange = (rootFormData) => {
|
|
53
|
+
this.setState({ rootFormData });
|
|
54
|
+
};
|
|
52
55
|
}
|
|
53
56
|
static getName() { return "ArchipelagoURLField"; }
|
|
57
|
+
getStateFromProps(props) {
|
|
58
|
+
return {
|
|
59
|
+
rootFormData: props.formContext.services.rootInstance.getFormData()
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
componentDidMount() {
|
|
63
|
+
this.props.formContext.services.rootInstance.addFormDataListener(this.onRootFormDataChange);
|
|
64
|
+
}
|
|
65
|
+
componentWillUnmount() {
|
|
66
|
+
this.props.formContext.services.rootInstance.removeFormDataListener(this.onRootFormDataChange);
|
|
67
|
+
}
|
|
54
68
|
render() {
|
|
55
|
-
var _a
|
|
69
|
+
var _a;
|
|
70
|
+
const { rootFormData } = this.state;
|
|
56
71
|
const { baseURL } = (0, utils_1.getUiOptions)(this.props.uiSchema);
|
|
57
72
|
const { translations } = this.props.formContext;
|
|
58
73
|
const SchemaField = this.props.registry.fields.SchemaField;
|
|
59
|
-
const dateBegin = (
|
|
74
|
+
const dateBegin = (_a = rootFormData === null || rootFormData === void 0 ? void 0 : rootFormData.gatheringEvent) === null || _a === void 0 ? void 0 : _a.dateBegin;
|
|
60
75
|
const year = Number(dateBegin === null || dateBegin === void 0 ? void 0 : dateBegin.split("-")[0]) || undefined;
|
|
61
|
-
const namedPlace =
|
|
76
|
+
const namedPlace = rootFormData === null || rootFormData === void 0 ? void 0 : rootFormData.namedPlaceID;
|
|
62
77
|
const url = baseURL + `/project/MHL.1166/stats?tab=statistics&year=${year}&namedPlace=${namedPlace}`;
|
|
63
78
|
return (React.createElement(React.Fragment, null,
|
|
64
|
-
React.createElement("div", { style: { margin: 10 } },
|
|
79
|
+
year !== undefined && namedPlace !== undefined && (React.createElement("div", { style: { margin: 10 } },
|
|
65
80
|
React.createElement("b", null, translations.ResultsLink),
|
|
66
81
|
React.createElement("br", null),
|
|
67
|
-
React.createElement("a", { href: url, target: "_blank" },
|
|
82
|
+
React.createElement("a", { href: url, target: "_blank" }, translations.FieldObservationsFromNP))),
|
|
68
83
|
React.createElement(SchemaField, Object.assign({}, this.props, { uiSchema: (0, utils_1.getInnerUiSchema)(this.props.uiSchema) }))));
|
|
69
84
|
}
|
|
70
85
|
};
|
|
@@ -10,8 +10,11 @@ export default class RootInstanceService {
|
|
|
10
10
|
private submitWithWarningsCallback;
|
|
11
11
|
private mounted;
|
|
12
12
|
private errorListInstance;
|
|
13
|
+
private formDataListeners;
|
|
13
14
|
constructor(schema: any, formData: any, onChange: (formData: any) => void, validate: () => void, submitWithWarnings: () => void);
|
|
14
15
|
setFormData(formData: any): void;
|
|
16
|
+
addFormDataListener(fn: (formData: any) => void): void;
|
|
17
|
+
removeFormDataListener(fn: (formData: any) => void): void;
|
|
15
18
|
getFormData(): any;
|
|
16
19
|
onChange(formData: any): void;
|
|
17
20
|
setSchema(schema: any): void;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
class RootInstanceService {
|
|
7
7
|
constructor(schema, formData, onChange, validate, submitWithWarnings) {
|
|
8
8
|
this.mounted = false;
|
|
9
|
+
this.formDataListeners = [];
|
|
9
10
|
this.schema = schema;
|
|
10
11
|
this.formData = formData;
|
|
11
12
|
this.onChangeCallback = onChange;
|
|
@@ -14,6 +15,13 @@ class RootInstanceService {
|
|
|
14
15
|
}
|
|
15
16
|
setFormData(formData) {
|
|
16
17
|
this.formData = formData;
|
|
18
|
+
this.formDataListeners.forEach(fn => fn(formData));
|
|
19
|
+
}
|
|
20
|
+
addFormDataListener(fn) {
|
|
21
|
+
this.formDataListeners.push(fn);
|
|
22
|
+
}
|
|
23
|
+
removeFormDataListener(fn) {
|
|
24
|
+
this.formDataListeners = this.formDataListeners.filter(f => f !== fn);
|
|
17
25
|
}
|
|
18
26
|
getFormData() {
|
|
19
27
|
return this.formData;
|
package/lib/translations.json
CHANGED
|
@@ -923,5 +923,10 @@
|
|
|
923
923
|
"fi": "Linkki tulospalveluun",
|
|
924
924
|
"en": "Link to result service",
|
|
925
925
|
"sv": "Länk till resultat"
|
|
926
|
+
},
|
|
927
|
+
"fieldObservationsFromNP": {
|
|
928
|
+
"fi": "Kenttähavainnot tältä paikalta",
|
|
929
|
+
"en": "Field observations from this place",
|
|
930
|
+
"sv": "Fältobservationer från denna plats"
|
|
926
931
|
}
|
|
927
932
|
}
|