ADD: added util function and fix problem with updatin entityOnFocus

This commit is contained in:
hwinkel
2023-10-18 22:17:52 +02:00
parent 32fc4ba9df
commit a4cd331152
7 changed files with 107 additions and 26 deletions

View File

@@ -33,6 +33,8 @@ class App extends Component {
PositionClicked: undefined
}
componentDidMount() {
console.log(config.apiUrl);
@@ -48,17 +50,46 @@ class App extends Component {
{
// console.log(this.state.EntityOnFocus);
this.setState((state) => ({
Entities: structuredClone(dataFromServer.Entities)
var tmp = []
if(this.state.Entities.length !== 0){
dataFromServer.Entities.forEach((elementFromWS, indexWS) => {
this.state.Entities.forEach((elementStored, indexStore) => {
if(elementFromWS.id === elementStored.id)
{
if(elementStored.onFocus !==true | elementStored.onFocus === undefined)
{
tmp.push(elementFromWS);
}else
{
tmp.push(elementStored);
}
}
});
});
}else{
tmp = dataFromServer.Entities;
}
// console.log(tmp);
this.setState((state) => ({
// Entities: structuredClone(dataFromServer.Entities)
Entities: structuredClone(tmp)
})
)
}
}
/// interval for updates
setInterval(() => {
// this.updateEntities();
}, 1000);
this.updateEntities();
}, 2000);
}
@@ -103,6 +134,22 @@ class App extends Component {
});
}
resetEntityOnFocus()
{
if(this.state.EntityOnFocus !== undefined)
{
this.state.Entities.map((element ,index) => {
if(element.id === this.state.EntityOnFocus.EntityID)
{
this.state.Entities[index].onFocus = undefined;
}
})
console.log(this.state.Entities)
this.setState({
EntityOnFocus: undefined
})
}
}
setFocusPosition(props)
@@ -114,7 +161,10 @@ class App extends Component {
});
}
Functions = {
updateEntities: this.updateEntities.bind(this),
resetEntityOnFocus: this.resetEntityOnFocus.bind(this)
}
render() {
const {name} = this.state;
@@ -123,7 +173,7 @@ class App extends Component {
<Header />
<div className="Content">
<Controls Client= {client} Entities= {this.state.Entities} updateEntities = {this.updateEntities} EntityOnFocus = {this.state.EntityOnFocus} PositionClicked = {this.state.PositionClicked} />
<Controls Functions= {this.Functions} Client= {client} Entities= {this.state.Entities} updateEntities = {this.updateEntities} EntityOnFocus = {this.state.EntityOnFocus} PositionClicked = {this.state.PositionClicked} />
<OpenSeaMap Entities= {this.state.Entities} updateEntities = {this.updateEntities} setEntityOnFocus = {this.setEntityOnFocus.bind(this)} setFocusPosition = {this.setFocusPosition.bind(this)}/>
</div>