mirror of
https://github.com/qlik-oss/nebula.js.git
synced 2025-12-25 01:04:14 -05:00
fix(nucleus): trigger update when Cell is ready
This commit is contained in:
@@ -48,30 +48,26 @@ const Content = ({ children }) => (
|
||||
export default function Cell({
|
||||
api,
|
||||
}) {
|
||||
const [state, setState] = useState({
|
||||
objectProps: api.objectProps(),
|
||||
userProps: api.userProps(),
|
||||
});
|
||||
const [, setChanged] = useState(0);
|
||||
useEffect(() => {
|
||||
const onChanged = () => {
|
||||
setState({
|
||||
objectProps: api.objectProps(),
|
||||
userProps: api.userProps(),
|
||||
});
|
||||
};
|
||||
const onChanged = () => setChanged(Date.now());
|
||||
api.on('changed', onChanged);
|
||||
api.emit('ready');
|
||||
return () => {
|
||||
api.removeListener('changed', onChanged);
|
||||
};
|
||||
}, [api]);
|
||||
|
||||
const SN = (showRequirements(state.objectProps.sn, state.objectProps.layout) ? Requirements : Supernova);
|
||||
const Comp = !state.objectProps.sn ? Placeholder : SN;
|
||||
const err = state.objectProps.error || false;
|
||||
const objectProps = api.objectProps();
|
||||
const userProps = api.userProps();
|
||||
|
||||
const SN = (showRequirements(objectProps.sn, objectProps.layout) ? Requirements : Supernova);
|
||||
const Comp = !objectProps.sn ? Placeholder : SN;
|
||||
const err = objectProps.error || false;
|
||||
return (
|
||||
<Grid container direction="column" spacing={0} style={{ height: '100%', padding: '8px', boxSixing: 'borderBox' }}>
|
||||
<Grid item style={{ maxWidth: '100%' }}>
|
||||
<Header layout={state.objectProps.layout} sn={state.objectProps.sn}> </Header>
|
||||
<Header layout={objectProps.layout} sn={objectProps.sn}> </Header>
|
||||
</Grid>
|
||||
<Grid item xs>
|
||||
<Content>
|
||||
@@ -79,17 +75,17 @@ export default function Cell({
|
||||
? (<CError {...err} />)
|
||||
: (
|
||||
<Comp
|
||||
key={state.objectProps.layout.visualization}
|
||||
sn={state.objectProps.sn}
|
||||
snContext={state.userProps.context}
|
||||
snOptions={state.userProps.options}
|
||||
layout={state.objectProps.layout}
|
||||
key={objectProps.layout.visualization}
|
||||
sn={objectProps.sn}
|
||||
snContext={userProps.context}
|
||||
snOptions={userProps.options}
|
||||
layout={objectProps.layout}
|
||||
/>
|
||||
)
|
||||
}
|
||||
</Content>
|
||||
</Grid>
|
||||
<Footer layout={state.objectProps.layout} />
|
||||
<Footer layout={objectProps.layout} />
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -64,6 +64,8 @@ export default function ({
|
||||
cellApi.emit('changed');
|
||||
};
|
||||
|
||||
cellApi.once('ready', () => cellApi.emit('changed'));
|
||||
|
||||
const setUserProps = (up) => {
|
||||
userProps = {
|
||||
...userProps,
|
||||
|
||||
Reference in New Issue
Block a user