mue/src/components/widgets/message/Message.jsx

61 lines
1.4 KiB
React
Raw Normal View History

import { PureComponent, createRef } from 'react';
import EventBus from 'modules/helpers/eventbus';
import './message.scss';
export default class Message extends PureComponent {
constructor(props) {
super(props);
this.state = {
messageText: '',
};
this.message = createRef();
}
componentDidMount() {
EventBus.on('refresh', (data) => {
if (data === 'message') {
if (localStorage.getItem('message') === 'false') {
return (this.message.current.style.display = 'none');
}
this.message.current.style.display = 'block';
this.message.current.style.fontSize = `${
1 * Number((localStorage.getItem('zoomMessage') || 100) / 100)
}em`;
}
});
2022-08-19 20:41:59 +00:00
const messages = JSON.parse(localStorage.getItem('messages')) || [];
2022-10-30 16:43:08 +00:00
if (messages.length === 0) {
return (this.message.current.style.display = 'none');
}
this.message.current.style.fontSize = `${
1 * Number((localStorage.getItem('zoomMessage') || 100) / 100)
}em`;
2022-11-06 11:59:59 +00:00
2021-09-17 12:39:55 +00:00
this.setState({
messageText: messages[Math.floor(Math.random() * messages.length)],
2021-09-17 12:39:55 +00:00
});
}
2022-10-30 16:43:08 +00:00
componentWillUnmount() {
EventBus.off('refresh');
}
render() {
return (
<h2 className="message" ref={this.message}>
{this.state.messageText.split('\\n').map((item, i) => (
<span key={i}>
{item}
<br />
</span>
))}
2022-08-21 11:41:05 +00:00
</h2>
);
}
}