From 6a0c4461edc9bdc2b3545901a89311e98b172b71 Mon Sep 17 00:00:00 2001 From: cha0s Date: Thu, 25 Jun 2020 10:49:30 -0500 Subject: [PATCH] fix: option funcs for trait pane --- src/common/resources/entity/entity.jsx | 2 +- src/common/resources/entity/trait-pane.jsx | 9 +++++---- src/common/resources/entity/traits.jsx | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/common/resources/entity/entity.jsx b/src/common/resources/entity/entity.jsx index 7c49a2c..3ba88de 100644 --- a/src/common/resources/entity/entity.jsx +++ b/src/common/resources/entity/entity.jsx @@ -30,7 +30,7 @@ const EntityComponent = (props) => {
- +
); diff --git a/src/common/resources/entity/trait-pane.jsx b/src/common/resources/entity/trait-pane.jsx index 57e35fd..61d9421 100644 --- a/src/common/resources/entity/trait-pane.jsx +++ b/src/common/resources/entity/trait-pane.jsx @@ -19,7 +19,7 @@ const ensureTraitComponents = () => { } }; -const makeTraitPaneRenderer = (context, dispatch, target, traitType) => (trait) => { +const makeTraitPaneRenderer = (context, dispatch, entity, target, traitType) => (trait) => { ensureTraitComponents(); const {params, state} = trait; const {[traitType]: TraitComponent} = TraitComponents; @@ -50,7 +50,7 @@ const makeTraitPaneRenderer = (context, dispatch, target, traitType) => (trait) dispatch(setTraitProperty({...payload, value}))} - options={options} + options={'function' === typeof options ? options(entity) : options} type={type} value={values[key]} /> @@ -69,6 +69,7 @@ const makeTraitPaneRenderer = (context, dispatch, target, traitType) => (trait) const TraitPane = (props) => { const { context, + entity, target, trait, type, @@ -76,8 +77,8 @@ const TraitPane = (props) => { const dispatch = useDispatch(); // TODO: dependency on context is too noisy const renderTraitPane = useMemo( - () => makeTraitPaneRenderer(context, dispatch, target, type), - [context, dispatch, target, type], + () => makeTraitPaneRenderer(context, dispatch, entity, target, type), + [context, dispatch, entity, target, type], ); return useMemo( () => renderTraitPane(trait), diff --git a/src/common/resources/entity/traits.jsx b/src/common/resources/entity/traits.jsx index e9ded5d..75cf195 100644 --- a/src/common/resources/entity/traits.jsx +++ b/src/common/resources/entity/traits.jsx @@ -30,7 +30,7 @@ const decorate = compose( // ); const Traits = (props) => { - const {context, target, traits} = props; + const {context, entity, target, traits} = props; const [tabIndex, setTabIndex] = useState(0); let listRef; const entries = Object.entries(traits); @@ -62,6 +62,7 @@ const Traits = (props) => {