summaryrefslogtreecommitdiff
path: root/frontend/site/projects/museum/views/marquee.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-04-20 00:17:31 +0200
committerJules Laplace <julescarbon@gmail.com>2021-04-20 00:17:31 +0200
commited14754441c174f9343859e78e7a6e6d162dcfae (patch)
tree881b199853aca63e823b917d5db6a5562d55dbd5 /frontend/site/projects/museum/views/marquee.js
parent5a6d9dc77ffd0124b96ad0998050ed5f7ba3e228 (diff)
re-implement marquee
Diffstat (limited to 'frontend/site/projects/museum/views/marquee.js')
-rw-r--r--frontend/site/projects/museum/views/marquee.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/frontend/site/projects/museum/views/marquee.js b/frontend/site/projects/museum/views/marquee.js
new file mode 100644
index 0000000..5d031eb
--- /dev/null
+++ b/frontend/site/projects/museum/views/marquee.js
@@ -0,0 +1,51 @@
+import React, { Component } from 'react'
+import Marquee from "react-fast-marquee"
+
+import "./marquee.css"
+
+import { MARQUEES } from "site/projects/museum/constants"
+
+export default class MarqueeContainer extends Component {
+ constructor(props) {
+ super(props)
+ this.state = {
+ }
+ }
+
+ componentDidMount() {
+ this.load()
+ }
+
+ componentDidUpdate(prevProps) {
+ if (this.props.location.pathname !== prevProps.location.pathname) {
+ this.load()
+ }
+ }
+
+ load() {
+ const { match } = this.props
+ const { page_name } = match.params
+ if (!(page_name in MARQUEES)) {
+ this.setState({ message: null })
+ }
+ this.setState({ message: MARQUEES[page_name] })
+ }
+
+ render() {
+ const { language } = this.props
+ if (!this.state.message) return null
+ return (
+ <div className="marquee-container">
+ <Marquee
+ direction="left"
+ speed={412}
+ gradient={false}
+ >
+ <span className="marquee-text">
+ {this.state.message[language]}
+ </span>
+ </Marquee>
+ </div>
+ )
+ }
+}