diff --git a/public/static/fonts_7/icomoon.css b/public/static/fonts_7/icomoon.css index 4e7fc21..c71ec67 100644 --- a/public/static/fonts_7/icomoon.css +++ b/public/static/fonts_7/icomoon.css @@ -1,25 +1,24 @@ @font-face { font-family: 'icomoon'; - src: - url('icomoon.ttf?8qh3rt') format('truetype'), - url('icomoon.woff?8qh3rt') format('woff'), - url('icomoon.svg?8qh3rt#icomoon') format('svg'); + src: url('icomoon.eot?f9daqg'); + src: url('icomoon.eot?f9daqg#iefix') format('embedded-opentype'), + url('icomoon.ttf?f9daqg') format('truetype'), + url('icomoon.woff?f9daqg') format('woff'), + url('icomoon.svg?f9daqg#icomoon') format('svg'); font-weight: normal; font-style: normal; font-display: block; } -.icon { +[class^="icon-"], [class*=" icon-"] { /* use !important to prevent issues with browser extensions that change fonts */ - /*noinspection CssNoGenericFontName*/ font-family: 'icomoon' !important; - speak: none; + speak: never; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; - vertical-align: -.0625em; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; @@ -94,12 +93,16 @@ } .icon-order-rev:before { content: "\ea46"; - font-size: 1.2em; } .icon-github:before { content: "\eab0"; } - .icon-new-tab:before { content: "\ea7e"; -} \ No newline at end of file +} +.icon-eye:before { + content: "\e9ce"; +} +.icon-eye-blocked:before { + content: "\e9d1"; +} diff --git a/public/static/fonts_7/icomoon.svg b/public/static/fonts_7/icomoon.svg index 1400c3b..955854e 100644 --- a/public/static/fonts_7/icomoon.svg +++ b/public/static/fonts_7/icomoon.svg @@ -19,6 +19,8 @@ + + @@ -30,7 +32,6 @@ - - + \ No newline at end of file diff --git a/public/static/fonts_7/icomoon.ttf b/public/static/fonts_7/icomoon.ttf index cce7337..8f3d30b 100644 Binary files a/public/static/fonts_7/icomoon.ttf and b/public/static/fonts_7/icomoon.ttf differ diff --git a/public/static/fonts_7/icomoon.woff b/public/static/fonts_7/icomoon.woff index 8827eb2..acc1782 100644 Binary files a/public/static/fonts_7/icomoon.woff and b/public/static/fonts_7/icomoon.woff differ diff --git a/src/UserAction.css b/src/UserAction.css index 6452be3..e41c133 100644 --- a/src/UserAction.css +++ b/src/UserAction.css @@ -20,11 +20,18 @@ min-height: 2em; height: 4em; } + .reply-form button { flex: 0 0 3em; margin-right: 0; } +.reply-preview { + flex: 1; + min-height: 2em; +} + + .post-form-bar { line-height: 2em; display: flex; @@ -58,6 +65,11 @@ height: 20em; } +.post-preview { + width: 100%; + min-height: 5em; +} + .life-info-table { width: 100%; margin: auto; diff --git a/src/UserAction.js b/src/UserAction.js index 9177c84..0bd4028 100644 --- a/src/UserAction.js +++ b/src/UserAction.js @@ -1,5 +1,5 @@ import React, {Component, PureComponent} from 'react'; -import {API_BASE, SafeTextarea, PromotionBar} from './Common'; +import {API_BASE, SafeTextarea, PromotionBar, HighlightedMarkdown} from './Common'; import {MessageViewer} from './Message'; import {LoginPopup} from './infrastructure/widgets'; import {ConfigUI} from './Config'; @@ -387,6 +387,7 @@ export class ReplyForm extends Component { this.state={ text: '', loading_status: 'done', + preview: false, }; this.on_change_bound=this.on_change.bind(this); this.area_ref=this.props.area_ref||React.createRef(); @@ -455,11 +456,26 @@ export class ReplyForm extends Component { }); }); } + + toggle_preview() { + this.setState({ + preview: !this.state.preview + }); + } render() { return (
- + { + this.state.preview ? +
+ +
: + + } + {this.state.loading_status==='loading' ? : + + } + + { + this.state.loading_status!=='done' ?