diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 667a1f41f..8f26e3cd6 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -8,6 +8,7 @@ const ErrorBar = require('./errorBar/errorBar.jsx'); //TODO: move to the brew renderer const RenderWarnings = require('homebrewery/renderWarnings/renderWarnings.jsx'); +const NotificationPopup = require('./notificationPopup/notificationPopup.jsx'); const PAGE_HEIGHT = 1056; const PPR_THRESHOLD = 50; @@ -132,7 +133,10 @@ const BrewRenderer = createClass({ style={{ height: this.state.height }}> - +
+ + +
{this.renderPages()} diff --git a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx new file mode 100644 index 000000000..64b15d98d --- /dev/null +++ b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx @@ -0,0 +1,58 @@ + +const React = require('react'); +const createClass = require('create-react-class'); +const _ = require('lodash'); +const cx = require('classnames'); //Unused variable + +const DISMISS_KEY = 'dismiss_notification'; + +const NotificationPopup = createClass({ + getInitialState : function() { + return { + notifications : {} + }; + }, + componentDidMount : function() { + this.checkNotifications(); + window.addEventListener('resize', this.checkNotifications); + }, + componentWillUnmount : function() { + window.removeEventListener('resize', this.checkNotifications); + }, + notifications : { + faq : function(){ + return
  • + Protect your work!
    + At the moment we do not save a history of your projects, so please make frequent backups of your brews!   + + See the FAQ + to learn how to avoid losing your work! +
  • ; + }, + }, + checkNotifications : function(){ + const hideDismiss = localStorage.getItem(DISMISS_KEY); + if(hideDismiss) return this.setState({ notifications: {} }); + + this.setState({ + notifications : _.mapValues(this.notifications, (fn)=>{ return fn(); }) //Convert notification functions into their return text value + }); + }, + dismiss : function(){ + localStorage.setItem(DISMISS_KEY, true); + this.checkNotifications(); + }, + render : function(){ + if(_.isEmpty(this.state.notifications)) return null; + + return
    + + +

    Notice

    + This website is always improving and we are still adding new features and squashing bugs. Keep the following in mind: +
      {_.values(this.state.notifications)}
    +
    ; + } +}); + +module.exports = NotificationPopup; diff --git a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.less b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.less new file mode 100644 index 000000000..7d14e8655 --- /dev/null +++ b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.less @@ -0,0 +1,61 @@ +.popups{ + position : fixed; + top : @navbarHeight; + right : 15px; + z-index : 10001; + width : 350px; +} + +.notificationPopup{ + position : relative; + float : right; + display : inline-block; + width : 350px; + padding : 20px; + padding-bottom : 10px; + padding-left : 85px; + background-color : @blue; + color : white; + a{ + color : @steel; + font-weight : 800; + } + i.info{ + position : absolute; + top : 24px; + left : 24px; + opacity : 0.8; + font-size : 2.5em; + } + i.dismiss{ + position : absolute; + top : 10px; + right : 10px; + cursor : pointer; + opacity : 0.6; + &:hover{ + opacity : 1; + } + } + small{ + opacity : 0.7; + font-size : 0.6em; + } + h3{ + font-size : 1.1em; + font-weight : 800; + } + ul{ + margin-top : 15px; + font-size : 0.8em; + list-style-position : outside; + list-style-type : disc; + li{ + font-size : 0.8em; + line-height : 1.6em; + em{ + font-weight : 800; + } + } + } +} \ No newline at end of file diff --git a/shared/homebrewery/renderWarnings/renderWarnings.jsx b/shared/homebrewery/renderWarnings/renderWarnings.jsx index f7c081874..fcfb6d0c7 100644 --- a/shared/homebrewery/renderWarnings/renderWarnings.jsx +++ b/shared/homebrewery/renderWarnings/renderWarnings.jsx @@ -25,7 +25,7 @@ const RenderWarnings = createClass({ if(!isChrome){ return
  • Built for Chrome
    - Other browsers do not support + Other browsers do not support   key features this site uses. diff --git a/shared/homebrewery/renderWarnings/renderWarnings.less b/shared/homebrewery/renderWarnings/renderWarnings.less index 407effb88..4b038a11a 100644 --- a/shared/homebrewery/renderWarnings/renderWarnings.less +++ b/shared/homebrewery/renderWarnings/renderWarnings.less @@ -1,16 +1,17 @@ - .renderWarnings{ - position : fixed; + position : relative; + float : right; display : inline-block; - top : @navbarHeight; - right : 15px; - z-index : 10001; width : 350px; padding : 20px; padding-bottom : 10px; padding-left : 85px; + margin-bottom : 10px; background-color : @yellow; color : white; + a{ + font-weight : 800; + } i.ohno{ position : absolute; top : 24px;