diff --git a/packages/core/src/components/mapper/dynamic.jsx b/packages/core/src/components/mapper/dynamic.jsx
index f9b9e33..0209e89 100644
--- a/packages/core/src/components/mapper/dynamic.jsx
+++ b/packages/core/src/components/mapper/dynamic.jsx
@@ -1,15 +1,12 @@
-import debug from 'debug';
-import React, { useMemo } from 'react';
+import React, { useCallback, useMemo } from 'react';
+import { useActionsFor } from '@forml/hooks';
import { useRenderingContext } from '@forml/hooks';
-const log = debug('forml:core:dynamic');
-
export default function makeDynamic(SchemaForm) {
function GeneratedDynamic(props) {
- const { form: parent, value } = props;
- const form = parent.generate(value);
- return ;
+ const { form: parent } = props;
+ return ;
}
function StaticDynamic(props) {
const { form: parent } = props;
@@ -17,18 +14,28 @@ export default function makeDynamic(SchemaForm) {
return ;
}
function BaseDynamic(props) {
- const { form, parent, value } = props;
+ const { form, parent, schema, value } = props;
+ const actions = useActionsFor(parent.key);
const ctx = useRenderingContext();
const { decorator, mapper, localizer } = ctx;
+ const onChange = useCallback(
+ (event, value) => {
+ const nextModel = actions.setValue(value);
+ props.onChange(event, nextModel);
+ },
+ [props.onChange, actions]
+ );
+
return (
);