1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 15:09:14 +00:00
Files
seahub/frontend/src/components/system-notification.js
2024-07-18 11:58:42 +08:00

53 lines
1.5 KiB
JavaScript

import React from 'react';
import { curNoteMsg, curNoteID, siteRoot, gettext } from '../utils/constants';
import '../css/system-notification.css';
class SystemNotification extends React.Component {
constructor(props) {
super(props);
this.state = {
isClosed: false
};
}
close = () => {
this.setState({ isClosed: true });
if (navigator.cookieEnabled) {
let date = new Date();
let cookies = document.cookie.split('; ');
let infoIDExist = false;
let newInfoID = curNoteID + '_';
date.setTime(date.getTime() + 14 * 24 * 60 * 60 * 1000);
newInfoID += '; expires=' + date.toGMTString() + '; path=' + siteRoot;
for (var i = 0, len = cookies.length; i < len; i++) {
if (cookies[i].split('=')[0] == 'info_id') {
infoIDExist = true;
document.cookie = 'info_id=' + cookies[i].split('=')[1] + newInfoID;
break;
}
}
if (!infoIDExist) {
document.cookie = 'info_id=' + newInfoID;
}
}
};
render() {
if (!curNoteMsg || this.state.isClosed) {
return null;
}
return (
<div id="info-bar" className="d-flex justify-content-between">
<p id="info-bar-info" className="m-0" dangerouslySetInnerHTML={{ __html: curNoteMsg }}></p>
<button className="close sf2-icon-x1" title={gettext('Close')} aria-label={gettext('Close')} onClick={this.close}></button>
</div>
);
}
}
export default SystemNotification;