diff --git a/package-lock.json b/package-lock.json index 76dd01f..e66610b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "animate.css": "^4.1.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-modal": "^3.16.1", @@ -4970,6 +4971,11 @@ "ajv": "^6.9.1" } }, + "node_modules/animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", diff --git a/package.json b/package.json index 37fd36c..70fbb22 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "animate.css": "^4.1.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-modal": "^3.16.1", diff --git a/src/assets/stylesheets/browse.scss b/src/assets/stylesheets/browse.scss index cacf643..487b491 100644 --- a/src/assets/stylesheets/browse.scss +++ b/src/assets/stylesheets/browse.scss @@ -32,7 +32,6 @@ $white: #fff; } .browse-image img { - margin-top: 50px; width: auto; height: 200px; background-color: transparent; @@ -50,6 +49,8 @@ $white: #fff; overflow: hidden; background-color: transparent; margin-bottom: 50px; + animation: fadeInUp; + animation-duration: .5s; } .browse-title { @@ -93,14 +94,15 @@ $white: #fff; height: 75%; margin-right: 25px; margin-left: 20px; - background-color: transparent; + background-color: white; border: $gray solid 1px; border-radius: 10px; filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25)); + aspect-ratio: 1/1; } .browse-cable-label { - width: 90%; + width: 83%; height: auto; background-color: transparent; } diff --git a/src/assets/stylesheets/cabledetail.scss b/src/assets/stylesheets/cabledetail.scss index b6a0c0d..dacffa2 100644 --- a/src/assets/stylesheets/cabledetail.scss +++ b/src/assets/stylesheets/cabledetail.scss @@ -48,6 +48,8 @@ $white: #fff; flex-direction: column; overflow: hidden; background-color: transparent; + animation: fadeInUp; + animation-duration: .5s; } .cable-main { diff --git a/src/assets/stylesheets/map.scss b/src/assets/stylesheets/map.scss index 8eadbce..5d9ccd2 100644 --- a/src/assets/stylesheets/map.scss +++ b/src/assets/stylesheets/map.scss @@ -48,6 +48,8 @@ $white: #fff; flex-direction: column; overflow: visible; background-color: transparent; + animation: fadeInUp; + animation-duration: .5s; } .map-title { @@ -103,7 +105,7 @@ $white: #fff; .map-box-row { width: 100%; - height: 70px; + height: 60px; background-color: transparent; border-radius: 20px; display: flex; @@ -114,8 +116,9 @@ $white: #fff; } .map-box-circle, .map-box-spacer { - width: 70px; - height: 70px; + width: 60px; + height: 60px; + aspect-ratio: 1/1; border-radius: 50%; background: linear-gradient( 15deg, diff --git a/src/components/BrowseComponent.js b/src/components/BrowseComponent.js index 8608829..4594342 100644 --- a/src/components/BrowseComponent.js +++ b/src/components/BrowseComponent.js @@ -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 ( +