From ff332ca9a4aa55c58ad3e5ae5541263f8c4f30b5 Mon Sep 17 00:00:00 2001 From: ashawkey <963113090@qq.com> Date: Thu, 25 Jun 2020 00:45:00 +0800 Subject: [PATCH] "add preview" --- public/static/fonts_7/icomoon.css | 25 +++++++------- public/static/fonts_7/icomoon.svg | 5 +-- public/static/fonts_7/icomoon.ttf | Bin 6460 -> 6456 bytes public/static/fonts_7/icomoon.woff | Bin 3616 -> 6532 bytes src/UserAction.css | 12 +++++++ src/UserAction.js | 51 ++++++++++++++++++++++++++--- 6 files changed, 76 insertions(+), 17 deletions(-) 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 cce7337680d919f8fd0b696882fdcfba2a6a45d1..8f3d30be5a368aecb1d356859d80420575272be8 100644 GIT binary patch delta 1615 zcma)6U1%d!6h3!mGB-)X>c9S-t+a_6eo3?55Q`6M6aZ_qGD|BmFM6@xR{z#K_ z(-wD2C0!^Y`&4&8R2KWP=;D*Kf)xbu)Jd>&Dw*9yf~#xNmTh%>k=Q%1>^7( z`qDuaLS@RF?ZnCYL(yRpjYNI^Ao2S+g`z@EcIX63_*IDNIJ!AJ;Pd0gKI)KhUw9zW zA7TPbX0sdNaA#*YyphdL*0QRe-VSEk+A_h|wN&a_%)o*yQmey}4)%n@J;AiYVWpxh z{22=bVmw4}woJz3V`K67WQ+4Ce%GDt?#{Y9eZEcu36h|maT-O8g3dE4k`Z31iWhXi z!kt7HwxJyYFbHEXgHHH58b}alH4MR#sLTiL4@IIRGC)GiNrMFEv;6CWPWijg0m3&L z=FxVd9(4}$np8zw#cd^^?D;27o2Ga!Mz$1%HrZ@VRGe1+`o`O5Uv+oI4t__EbYEIo zA~1SFxFO32cbokVW47V5MEJ+Ywm}?zI%HPt$S1IgvR7YkI5j*U*utKa(sAA)aPW1P zd)40O4a7b|>kPwAWjqO2`c&HCZ$7vy%er%)oF#t4nNoISa&O13 zy2wfMblzId+<&fN=r^d7xWVvMYvAYFdV@r(9)s33ezx_u3b~||1TWXjNSbTY5w51y z*7g6;YJ2#aGy|(Yj$sD}{^m3AD;Xu%$$@ZF_)%OHzmwLbJ&R!3kbUx~T#+~BkLfVI zO+T|fYJJNFw)3_%d%gZ%dbDBU(z;k<6%P#7rEIoo5H;KD=I%6i zdn6Z2GJ%B!ytOL*H3zP5!3=t;^i5HITO-8$= z>i{@Ke7aQA8~3lY*8w=0gq8LA2H9f($^+7Jd3Jf`@XFvf0Kzmt=e3HVpX|ML>;(CK zA{nVvjFv9*LXZ;nkYT7&Yc46r;Sb`Mh(AATmh`cE`z}xdmH1dqUuwW^c!T^I;%Z&5 z8Gla|e*|FEB%W)S^UeHY?@$xHSBXFEZjLs%()ZODuSXC31z~}f0o)#y7Cp^Li`LsL z{dmv~O+W?0ZUpDPAAa%t@2giw5m)~m45OEZO1x~Xv;HoM8z*tJ_nfwn>n@JFR>#8o zGT@d0jFH7T_yG{$PtqAs2`OY#ZLoLRMf**A(O$OSv(MV+>^1vq`&(-U_XoeXZ`!vu zLK_jQfjyb_-QEEEg{`xX*crCUPO&96$6jGaSe}is{cIl#u^{8)8}Xa*8}T3FAIEEM z*$g$8-i=OED3UnM(Sy#Ox9*#o6ev7n#kgHtB-D~YrjM<_H2j7Ka0MT5A98p3CjYbW zmT*n@C!hol1!e;0#UAmL_^A|=n$itOOA}Lz1#7nh}YM~;@hzW&;g(Oxe+Al)~m}Ae$vN0;c*`e zgr|HQpix-zu}Jo_J`O=YeCHe_%`H-X=j%F{BdqwCC#(Tae-}9fB8PlO02m#Yw?HKO zijPB(g7Z*?5|~gUF`*7nEtxgbBybcAD8mBGf(~;;jq<{*PT*1ToA&6IMAmBx+X-;o zn47Pfb#-`;_Q)L89c3gjY1W%+*{B*3&E15-VX%Fq1qq*48O1Oi=(Gc+{ zU;sswP{tsJFpLr0h8-Bi71(pT>MTroo#xVhzyuwuGvU~7L)4v`2yy0|nPY`P66Xfl{Mp=@ PynTkhPqv5dCTa0M_G1o) diff --git a/public/static/fonts_7/icomoon.woff b/public/static/fonts_7/icomoon.woff index 8827eb292d3199774bbe30257c169ff43927187e..acc178285bb3740a97eb91f73296bc06e040eac7 100644 GIT binary patch literal 6532 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 literal 3616 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 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' ?