summaryrefslogtreecommitdiff
path: root/frontend/site/projects/museum/views
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/site/projects/museum/views')
-rw-r--r--frontend/site/projects/museum/views/marquee.css15
-rw-r--r--frontend/site/projects/museum/views/marquee.js51
-rw-r--r--frontend/site/projects/museum/views/nav.overlay.js2
3 files changed, 68 insertions, 0 deletions
diff --git a/frontend/site/projects/museum/views/marquee.css b/frontend/site/projects/museum/views/marquee.css
new file mode 100644
index 0000000..2fcfd5a
--- /dev/null
+++ b/frontend/site/projects/museum/views/marquee.css
@@ -0,0 +1,15 @@
+.marquee-container {
+ position: fixed;
+ bottom: 4rem;
+ height: 40px;
+ width: 100vw;
+ pointer-events: none;
+}
+.marquee-text {
+ white-space: nowrap;
+ padding-left: 100vw;
+ width: 6500px;
+ font-family: "Druk Wide", sans-serif;
+ font-size: 30px;
+ color: #fff;
+}
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>
+ )
+ }
+}
diff --git a/frontend/site/projects/museum/views/nav.overlay.js b/frontend/site/projects/museum/views/nav.overlay.js
index 501b5af..804837d 100644
--- a/frontend/site/projects/museum/views/nav.overlay.js
+++ b/frontend/site/projects/museum/views/nav.overlay.js
@@ -9,6 +9,7 @@ import TextOverlay from './text.overlay'
import JakrawalLinks from './jakrawal.links'
import TitlesOverlay from './titles.overlay'
import Flash from './flash'
+import Marquee from './marquee'
import { ARTISTS, ARTIST_ORDER, PROJECT_PAGE_SET } from "site/projects/museum/constants"
import { ArrowLeft, ArrowRight } from "site/projects/museum/icons"
import MuteButton from "site/audio/mute.button"
@@ -179,6 +180,7 @@ class NavOverlay extends Component {
<div className="footer no-artist" ref={this.footerRef} />
)
)}
+ <Marquee location={this.props.location} match={this.props.match} language={this.props.language} />
<TitlesOverlay location={this.props.location} match={this.props.match} />
<div className="home-corner">
{showHome && (