animations, loading, yadayada
This commit is contained in:
@ -8,20 +8,29 @@ export default class BrowseComponent extends Component {
|
||||
super(props);
|
||||
this.state = {
|
||||
cableList: [],
|
||||
isLoading: true,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.props.socket.send('{"type":"cable_map","call":"request","data":{}}');
|
||||
this.props.socket.addEventListener("message", this.handleMessage);
|
||||
setTimeout(() => {
|
||||
this.setState({ isLoading: false });
|
||||
}, 500);
|
||||
}
|
||||
|
||||
handleMessage = (event) => {
|
||||
try {
|
||||
console.log("Message from server", event.data);
|
||||
const message = JSON.parse(event.data);
|
||||
const cableList = this.browseParse(message);
|
||||
this.setState({ cableList });
|
||||
if (!this.state.isLoading) {
|
||||
this.setState({ cableList });
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
this.setState({ cableList });
|
||||
}, 500 - new Date());
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error parsing message from server:", error);
|
||||
}
|
||||
@ -63,9 +72,26 @@ export default class BrowseComponent extends Component {
|
||||
|
||||
searchUpdate = () => {
|
||||
let value = document.querySelector(".browse-search input").value;
|
||||
this.props.socket.send(`{"type":"cable_search","call":"request","data":{"string":"${value}"}}`);
|
||||
this.props.socket.send(
|
||||
`{"type":"cable_search","call":"request","data":{"string":"${value}"}}`
|
||||
);
|
||||
};
|
||||
|
||||
returnPlaceholder() {
|
||||
return (
|
||||
<div className="browse-cable">
|
||||
<div className="browse-cable-image" />
|
||||
<div className="browse-cable-label">
|
||||
<div className="browse-cable-name"></div>
|
||||
<div className="browse-cable-description"></div>
|
||||
<div className="browse-cable-brand"></div>
|
||||
<div className="browse-cable-position"></div>
|
||||
</div>
|
||||
<span className="browse-cable-arrow">{">"}</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="browse">
|
||||
@ -81,9 +107,22 @@ export default class BrowseComponent extends Component {
|
||||
placeholder="🔎 Start typing to search..."
|
||||
/>
|
||||
</div>
|
||||
{this.state.cableList.map((cableObj, index) => (
|
||||
<React.Fragment key={index}>{cableObj.returnDiv()}</React.Fragment>
|
||||
))}
|
||||
{this.state.isLoading ? (
|
||||
<React.Fragment>
|
||||
{this.returnPlaceholder()}
|
||||
{this.returnPlaceholder()}
|
||||
{this.returnPlaceholder()}
|
||||
{this.returnPlaceholder()}
|
||||
{this.returnPlaceholder()}
|
||||
{this.returnPlaceholder()}
|
||||
</React.Fragment>
|
||||
) : (
|
||||
this.state.cableList.map((cableObj, index) => (
|
||||
<React.Fragment key={index}>
|
||||
{cableObj.returnDiv()}
|
||||
</React.Fragment>
|
||||
))
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
@ -57,6 +57,7 @@ class Cable {
|
||||
"description",
|
||||
"application",
|
||||
"category",
|
||||
"datasheet"
|
||||
].includes(key)
|
||||
) {
|
||||
this.dynamicProps[key] = cableData[key];
|
||||
|
@ -3,6 +3,7 @@ import BeldenLogo from "../assets/images/belden-white.png";
|
||||
import cable from "../utils/Cable";
|
||||
import "../assets/stylesheets/map.scss";
|
||||
import { NavLink } from "react-router-dom";
|
||||
import "animate.css"
|
||||
|
||||
export default class MapComponent extends Component {
|
||||
constructor(props) {
|
||||
|
Reference in New Issue
Block a user