From ff951e8787904b623ec0c804fbdc38e076f26589 Mon Sep 17 00:00:00 2001 From: "guilhem.carron" <gcarron@grandlyon.com> Date: Tue, 27 Jul 2021 10:15:58 +0200 Subject: [PATCH] Remove datePicker and bulma dependencies + add style --- package.json | 2 - src/App.tsx | 8 +- src/assets/icons/ecolyo-logo.svg | 6 + src/assets/icons/logo.png | Bin 7500 -> 0 bytes src/components/DateSelector/DateSelector.tsx | 24 ++++ src/components/DateSelector/dateSelector.scss | 29 ++++ src/components/Editing/Editing.tsx | 124 +++++++----------- src/components/Editing/editing.scss | 14 ++ src/components/Layout/Layout.tsx | 5 +- src/components/Layout/layout.module.scss | 20 ++- src/components/Menu/Menu.tsx | 29 +++- src/components/Menu/menu.scss | 37 ++++++ src/components/Navbar/Navbar.tsx | 43 +++--- src/components/Navbar/navbar.scss | 11 ++ src/styles/config/_colors.scss | 9 ++ src/styles/config/_layout.scss | 1 + src/styles/index.scss | 9 +- 17 files changed, 257 insertions(+), 114 deletions(-) create mode 100644 src/assets/icons/ecolyo-logo.svg delete mode 100644 src/assets/icons/logo.png create mode 100644 src/components/DateSelector/DateSelector.tsx create mode 100644 src/components/DateSelector/dateSelector.scss create mode 100644 src/components/Editing/editing.scss create mode 100644 src/components/Menu/menu.scss create mode 100644 src/components/Navbar/navbar.scss create mode 100644 src/styles/config/_layout.scss diff --git a/package.json b/package.json index f3679fc7..d7c0caa0 100644 --- a/package.json +++ b/package.json @@ -53,9 +53,7 @@ "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "@tinymce/tinymce-react": "^3.12.6", - "bulma": "^0.9.3", "react": "^17.0.2", - "react-datepicker": "^4.1.1", "react-dom": "^17.0.2", "react-router-dom": "^5.2.0", "react-scripts": "4.0.3", diff --git a/src/App.tsx b/src/App.tsx index ed7869cc..ecf84216 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,11 +5,11 @@ import Routes from './components/Routes/Routes' function App() { return ( - <Layout> - <BrowserRouter> + <BrowserRouter> + <Layout> <Routes /> - </BrowserRouter> - </Layout> + </Layout> + </BrowserRouter> ) } diff --git a/src/assets/icons/ecolyo-logo.svg b/src/assets/icons/ecolyo-logo.svg new file mode 100644 index 00000000..621cc029 --- /dev/null +++ b/src/assets/icons/ecolyo-logo.svg @@ -0,0 +1,6 @@ +<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M255.999 481.889C474.502 396.445 457.52 274.97 446.199 93.788C376.006 90.6997 313.738 69.0814 255.999 33.0508C198.26 69.0814 135.993 90.6997 65.8002 93.788C54.4788 274.97 37.4967 396.445 255.999 481.889Z" fill="#1B1C22"/> +<path d="M256 0L241.197 9.23729C187.065 43.0172 129.418 62.9075 64.5724 65.7606L39.4287 66.8668L37.8561 92.0332C37.3892 99.5066 36.9038 106.942 36.4212 114.334C31.228 193.881 26.3573 268.489 48.2119 332.782C73.408 406.904 131.859 463.456 245.82 508.019L256 512V481.887C46.0642 399.793 53.5098 284.438 64.4576 114.823C64.9043 107.901 65.3569 100.89 65.8008 93.7859C135.993 90.6976 198.261 69.0793 256 33.0487V0Z" fill="#FFC600"/> +<path d="M256 0L270.803 9.23729C324.935 43.0172 382.582 62.9075 447.428 65.7606L472.571 66.8668L474.144 92.0332C474.611 99.5066 475.096 106.942 475.579 114.334C480.772 193.881 485.643 268.489 463.788 332.782C438.592 406.904 380.141 463.456 266.18 508.019L256 512V481.887C465.936 399.793 458.49 284.438 447.542 114.823C447.096 107.901 446.643 100.89 446.199 93.7859C376.007 90.6976 313.739 69.0793 256 33.0487V0Z" fill="#DB8300"/> +<path d="M186.954 176.453H196.887C200.854 176.453 204.659 178.014 207.464 180.791C210.269 183.569 211.845 187.337 211.845 191.265V341.625H171.996V191.265C171.996 187.337 173.572 183.569 176.377 180.791C179.183 178.014 182.987 176.453 186.954 176.453ZM255.971 249.669H265.904C269.871 249.669 273.676 251.229 276.481 254.007C279.286 256.785 280.862 260.552 280.862 264.481V341.625H241.013V264.481C241.013 260.552 242.589 256.785 245.394 254.007C248.199 251.229 252.004 249.669 255.971 249.669ZM329.101 221.346H339.034C343.001 221.346 346.806 222.907 349.611 225.685C352.416 228.463 353.992 232.23 353.992 236.158V341.625H314.143V236.158C314.143 232.23 315.719 228.463 318.524 225.685C321.329 222.907 325.134 221.346 329.101 221.346Z" fill="#FFC600"/> +</svg> diff --git a/src/assets/icons/logo.png b/src/assets/icons/logo.png deleted file mode 100644 index 6e9f08491e80c9b5b19817c83ab15140f032525a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7500 zcmV-S9kb$zP)<h;3K|Lk000e1NJLTq006WA006WI1^@s6J<SF(0004mX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmKpe$iQ;S7f9PA+CkfAzR5Eao)s#pXIrLEAagUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwCr2km7b)?7NufoI2gm(*ckglc4iK7ErkXwDfT~$W zIuRFh`Bky^6#;}1#4P+0GxcO<F$>S}bq^n3?_xa5``n)+tQ1TJ_(bA4rW+RV2J!T! zrE}gVj<B+%5T6r|8FWG7N3P2*zi}=(Ebz>TkxkDNM~KBz7t3AD%7#ijMI2RBjq-(@ z%L?Z$&T6&J+V|uy3>CDM4A*H6BY`C(k%9;rbyQG=g&3_GDJIgiANTMNIsO#6WO7x& z$gzMLR7j2={11M2YZfOb+@w$(2)x+##|Y573$z-x{e5iPtrNii3|wg)f2|43e3IVi zXwf5}e;c^C?r8EJaJd5vKIxJnIg+2IP%HxPXY@^ZVBi+$TXTDB@8k3V$Wm9!H^9Lm zFj}JQb&q!kyL<chOuN4yVK#E0D0!Pg00006VoOIv0RI600RN!9r;`8x010qNS#tmY z4c7nw4c7reD4Tcy000McNliru<OK~04>;SvJ4XNj8%aq-K~#9!?VV|y6~(#6pXxsQ z?EA(5vopZ3%MRia5u=fyHxeb77$x2-qA@C7VQ^4f;vUhsL=%lMH`f>waY27BAj`0d zEV9cs!@w+OwzDtYUH8KbxroC|^_lK7=gg_+%Y2yX>h5~~UFWT;x85S)(p7W~l3~H} zV{1{M1hKq$8NTAJqMrzF0v%!AgsVXDB7nRjU*I^U7(gg~?^m#7SQT8ng|wHzn?MJU z*Q1bD<6}^)0+4sszYLUMkx9gXLl0pNZz<kGM>fdSu!3SS2<`=7J^O#1J@nx3UVwi{ z3hpki!g1bu9Oy`NFMbE0psW9P33P|N0G<oTSi#*8?s7yzuRP=|_o5(#Dy#q&n?xM= z_Cd_2ly@?`hwd9cIRyq(f#Saa7<ww-O%Hvpz7z#4DqMoyyp=i7`h)xt%t*lkP&@!2 zjrBSeKm&jTf>(kBD~2w?Y2NA_XzfAX4kH5iDS!t66so;mCD3Q&rvz^pB|K12g?erU z4s`E9rVy|R*8q3~Kyj$`gb4H*xe3K<f`~^7m!N@Lg##Tr$P_C;P}<x2dI|Iyxd6Oi zknvbS723F!IM6Jvg$)7B18^sRa*aNYmTx{KN39|qr_p1!0(eOwc%f`5>bTW7(BFq{ zE3y&9tpIKVLAplODhF%Lo8~^4HKf^LNV#ED+ooS!&{8I7SHBEkHKBN{co{ZwD{`Pg zH)AXm+yP)N0Hap*wmOAfKYJ|4y7RF4JMK!NS!sLd2lcy0=J_UrVY*L+z9JOQwPoRd z#{CLG4s<L*ya5RiaSbSL1u#L&x@84*551Xw<kb%or*+r9Lox!#9=+m}BgLYO)cEyI zQi7Kaz?+3jae@QgUm<=QBJyz&DCPtBF@SiDZ{hvoYwOnkdNy;M%PYpQUNmcnbKBk1 z?b#xs`8vGzR}^@Y%6O}+3U&^3|8XgP*6C7Y>2QnSt|R8nw?30qRNH9C4W$CJfqHMB zY~Omt5a)1#urJoAkPpE7Ab7Jq10VNim!#hTP1nEx6DEUT7J#d@nyKhQ(!m<zh6PV& z4?c3rI9Q7ctwzPOXmaze%gdbQgdka`=e7fQj}ojV5<V@df`bDcX%MeN1`L=1;3@!D z0!Y#EcFOU3<CdGB$j&}cYb?;?1~#MYUO1&?`>ZnOC;}wu_%1Slod7-{6z>;RVh16h z9O!TZT#Zx^On`zZAh;aBm@vExt!Xq=FL*jD?VF?KA>nw>M2qaYYg+T33kzK%2oM*B zTb>{Us}*3KLa}*BC5~~RwWer0jF2z_3MK-W0E!7(tlX&??Cm~c-oE$`={b9jnv46Q z4U(;L%fgAxyDu(rl?z0dalrZ12#PI)U<*;OS)te#=`Kpd08Q7x0y9cLPy(g%Z-@Uo z8t3f(2!|8}_3u^3@2h$vZB%o+m>LOfWDscZ+6u>xd1G1=<4sC=A3TBrU>^m(5rD&# z;*cWXkVVAdLH~``m;jpYg$d0_g8}IvNP~iO2*?0MIw*2F!7TwWFcLm6mzV5){$D8# zFRe<NEXl+YsXfuSJnz9pQ|#>nQ-Wil?E+122AhW|a7X}Z6aqT|njynZ2<${blPeC* zBkzGb;((^rNCj|DXU}N`kPHe72yEyW#8}bc^Q8eui~`ro`)!@^>&ic+C9dCX8y-zQ zV@^Ww)UT)750A_DmJ0-#(a_canhD^h9l=&kP<TP$0)Z2N4-`&9u&Q_|s>1_x$K3Ar zD4!fr+T6n4ch@JhKKoAc@D@j8xD}yFAW+8Vd-l#B+tyZ|=^GQKL8P9lDyhVB)oxjc zo>X$Qwvs<cj()n`R{QwhQVNfrHdUaXNTCom*VrmH*Vte-Q11`R9h>HkXg6fWOQR#i zB~h!8rYl2xQG%psnyn1Vq;|_b%h6}vNy*%@-%^eccAP}jM=KHQyL*x*y}Ks~nekHn z{4uQuFDi1U$8`)Oqh(`sa`=Fzx-ML3A*szR?EiRcT+83rCY*sdA2Fy#mm&Mfbs5=D zuFF7@Rc^VY*mdyIVz)FT!&er`J~yS|1v)v>X0R0nO^55uhu-=;UU+A1!f=O2r~ub@ z)b15i&-B~^fl`s>+dp%NvvF#HJ2lay42z`Rn+V|qn&`S5%jQN%<oLIBrjws+v(XQ? z#O3WjVJZZW!Leocxp&oD%6HXU${$~wfpnYPG<mS+$VG)Ne`%&KBhE-m`_%XD&pos( zqyBWOq2}vD7SCrptZ^Im*akPWii3e(@6qGxl-(m{tlF25v1(re0KjUb?vdHved7mt zTSw=340%aXwn?Oe0f_z2ht?+&%;yi1Q>`ws`S3}jXXjyyu;rjRdFLTZew$m!29V9M z3!l6}61Tb5Hez$F4QJAim_+I;$q0NqJk#4;k>d{(qy{XhRw>zHpxHV^2PTDvW+)wW zHCCY`vaKh_-lZsT24&**1&PP)75wck(O+vfNGBT&!ih$M@#tw|{Gk)(%u_957RM-h z6>n172d4&3=ch=H{P=)BH%XE+;w2%~Dw(Y&#cVN9i%~?J0GdELT-Ki0lZ%(as5bg9 zG@v(PJqV`uRBrOZ{JNS(V;(m**V+2y=3|G=A}#5uoM1$9(S2xFQ+H^iTEaGM*Xj}z zxcRuwm0uzrCd?%DZcM1tG%PogU0xxcn~&>Uc>;o;rJO|6uXpGMG^J>#l&9<E`o7!& z5@70~l`!<sbT3R`2z&`DgeULj>QXMhL1F?rEIo7^+gB3|=o|OS6}@Wn3rsT?R0#*r z1~#C5LBYdK$JHg!UIQzgVHgz3Y&UWHga9`kS66EB3QXJ)8V;ZZwiTRqmk{Kp<LXMS z9s_F*!9@Lmmf3)AbqO*z9aooZcttZ)!4QJr)C0|UlNP5)x#_sNQnN>3+QqLZ5d^fo zP2_XXTwS}PUV&-9BMD0nP1$bJ*e;6PbX;A@;TKs~ki!5p<4qb{L?bsHS66Ze#6)x? zt%(31nz4s&av03qbX;Bf#uP>hIJIIeEIxE|yI|v{<2o;^lqpAE<hUFy4l$0Kjq7|0 z%7i5}!gQ<(mdF6wDJF8Wah*?onRuCca-+IlIuxK;Kn?f;gvUa2omXDQnCO7Y5YkWv zg*`?<Q3@BpW1+duFP}`9LP(8N-ST%RgTfwfAj{y9c3j=c<!4(-mWhro2d#z`fQiB3 z_i~eQbtk8fu!TnG2{a6BmHUIl&rQbFEzo|EDdPZ9^aMJ<R=L+NaG<%mRl8qcOQE4_ z56u`0?eP;H3(eK796pgXCrsZ1?e+>1HyKyAJ#@gp8oZ|CEC*w7zmo&a)#IR$F|VSo zE(c-zS{!ac;U?qimJzRk4QNH*l|rU~BZr6YR^jTQhYk?dZCI*eg4CwdW!gI9aFd8% zB{YZ>b1!z{+UYJ7<pv>~lPaR7!H5sH#Nm&tli=|YPN2qe2Sp1b&}Kb>W_k#>Pl)JK zmuwb_*B94g^04!-|5OzEQBml}oM|pxzaks;Ee1}Zh6)4;+v&hm&uBZ!_O*EYB%-aq z;wF2yFrTf`0Rg;tXCnyjq&1aS5?GJB)-`;T=^<PmA!4^*<)urwcDhs5H5Ux=VQK|m z&DT;vh1mKYXo0PAmoIXGo>1<C5Q2w4X($I;Q=nzS#)wKETCK~$1hg*@xr4%#gwXQe zq$cp0NG&CIG^eB$bD_E%OqF{Bk?V1CUpRt95zvY`eS!9KY`9o>hOcjdCX6lz2bzlw zXn)@V&3MFwHz@G!S6n^gM45mVC}lsbO&9PaiSH-mV(A|lL!wojRVb)_1_p^D;mc}V zEHDXLF&C;2O&N>vM2%cM!$-6~F<#K=)8jyMvG~w^+(T2g$_0@F&Bgeeud&qnx|H!N z;mc}amO-Q#lqDg~^8Zcm4-%YeHo)nL%rUwiJ+v-Bivswr?=UGjUctR{TX4;E*LPq( zBUu49?6KnEzocQ`2~$KpJ0aTd1JUKv6%CZ{`VNEAlVq$~QHS}LIl6?ovva|PBfVJl za9zYj3^EQ1sh&VHMfQjS_!)&^&|?eiD9mN+J1i!O=NC01!5TT<Afp4VE6_|i>kOj8 zf!0|AG9=6#r|$IW^duRxr$y8e>_jW(LIs+sH4<zJKci4*jVSbo6gfDeAYz6$ln}6_ zTz2XQG-U%iHD2Mf96Bp5MAsocLR=0}pnkAr5zrB6#>&%@WS+)=tNRbqMEzPa7aGun zt%pvGmwEUoSNFdZW|?)I<?3^wljA4{nydRx&!n(T&ro$ewAzIgHkTuT`_TVxV3DFQ zCkTt_yIxqEOF&Iy?4C`UY?0WeXo#LbD{!$)v?Rw%l!HvMXigh$n$?cv_^!Y26AeZ@ z`F0Baxjy#JS4y!dOh6N&&gIahhfYaUNUX#B`r-!67}fn0>Y%J3R^Hx-qTC>!{NI$= z0@^D3m<m#T2ZgOn4!>22>1ewJSGM;E^Vzy%PAeu1@x>U>il2>VHs(SDT0%XO!*5k$ z_KZS8fS=EFsJ`aL%N;S*PFV>-!U%M|en8iw5e)GhaTX;dR)J1Sl#!dRKHvL@!q^H> z%t?@#*b@{TfhIqJ48Yz~IZ;H0C?F=6zisBw#>3}}mg}!dwaH9*5-HKMhwkvBS#Ds+ zOqQC!#dW@MmRV*x4MJAXpfAuAH7vynbAonmHm>u@B+^WVVu3Q~-9u9xXDL=u<actj zado9+i`-7wj%zzXs?=@gQxCL&V=To+76o`rG*_1@N(-E1EP6~mp6YvOrkj-K`+2e% zuCCe0^fApXQ^MvA^bTm?2uq>tG%1Cfj;kw`rL+Bd6N;ny1Koy0U`SLQXQ6`y0X#06 z>w7BB@G~vEQDCp`K$9!rXX&L0fvqGjP|MB7b*?hw<Xo0=N;rV-)IOF%(<;0tx%s%x zR=i1R69t;bP}EZ<<3zZC{)P$Y5k8)9hU+^TmFGJOw%y+Q)K1y;2I#L@3XLrCCUFyT zovld&-3~1o(*|e(+gOUFB`IYFk@A!VT>sYCJTF@$CdJmU0Zk_2B!E*rmILC(mii8H zGjerK6wu6gseq-dD25T}PBGnZ_7vA?Zb~iyC`$7m76{T<281VqY!eUK0Zp)prP#%z zy>Z->TmbNcV%I6gqT4R2f)rk$Db}(S%T1RmOgtMY7l4b3+^jp9)`WVG(1AXQuK=_$ z_)WH%<K26>Ib&N!k@_>@rE-?C3dI*;2b%l@GAP!ul)dpXM>{uZY->iLdlvy%+)s~? z9NK`ew}V0e_?)HC*fM`1z~ee%S+j>ZShvBiD_Io!2@t&lTEHsCpPNCGhI#q)U5rW; zs8XKk8^&1tgWe(83z11U4q!J+**mUjYviVlO-(Ow?-mF$Sf&~XVe2IIaybBsf3g&t zJk(nz3gELHF{pW?TUpb2?I>P~+P(#v;60`r3CO%^vg>PZ-q@1WNL_`g!4Zrst?KRl zdJQz0jIRM4U@3d=buHY&F{bNBwe2DVOeqT#0dMy?(4Ak_n=Hi!W=UfQWd-?Ccns;9 z;ce-RMXSs1XX_aC2b$syupRj(E}P$SfSWlsG(O+E(`KS&Y<(hL*QRgPNVFQC0JyBj zpA`j7Wj7XBy?)Xs2^|w`3R2?LN3^<p0$LnBCsj3w6uD{Y!w?ioaI%SgqkOzoL282f z_wf1!G_{8(IqYA5TDvhfF*t?gu>>P>ita<N7vQu^HSh)t(1L)B#XoIcU-f$Ww7vk^ z=@E22`&yDoSTggwyaHU_$UMUv01DFlCvp>mlNgKtQwx~2b2$JY3GV=4@{fOUxueW% zq<ni;KUU?%O{bXoB3P-_eKiA`3_}0}FR+vq1!Uekx22k!y?<(8O7K`=YTyFK;u}kr zVspd+-C5g9U_8q9mLIm4TFsQ_zw3uu@q_x4tnMr&ct%?UH58eE=FS<9o^LE5@9|rk z_(DrR)9769!GS5ksf@*sm6YON5esyOKY?cew%rD^r?|%Erb_i3gZ?2xKp&dfAc1}M z?5WNq`jHDXnTW%kGad|M0mQv=e*=%g>nFNyRNMM^lQN7E{^Ll(t6D#UUh_T=0PwOD zEFb8fcI8AK;}PwOHz|%=#<i5HxTLB#anE4|noLF=fR|Z|KfkCc!)D>rc+sq<uR66) z6p+pM%Y3j_!drSghki5jCOizrgE|ccI^flN>Nj&NqEi<ZdUlki2PUwVSAhFN-PPS^ zK$CH>gJ1<~`RNtjsWV1;zT$X9m*PxHd*vndSt<sCYfF~0#n4Aq4-Ei5JPpPjEdazf z?yJv9O;lPrCefo8=hS^;5Rk`MJOB~55u)GzQeA;27eRu6+rYR%RuqxD`mvM82;rba zgKnMJylG$(Q}EFlJymjlXc>_rqlX4SCSn8YVhaG|rAuQTy`_0A$0f2gG|P8j?#T90 zDlVz<Sn#mk&lR3<EgAO$VBRD<@6z@umrrnS;n+l`Qmt~+${(GM17Kymgc1d}j=Tr% zegQO@jwS#%f;~5f@eg-3l$PZOYB)ZTC6h>lf4;7^K@@1dipzdq`~X&m<N3lCP)jD` zV^F-rT%I6h^>6Eh^dy-N5+g)}fW9=RZhO308Lr~8{c#<?(CAk{0|3mp8^C_%-oQWy zeEDqc35$ukI8J@9hi5i?UYHt~q~ekQC~nBDf~Q{sO~%0kf_VV@l4nw!GHT<>+Py{t zUrFps-8s#^e)1sqr7C;$B_+!c*06@K@8KbnumcpgsJSL9MVheY>65z+B2_qA;ny$5 zwr-p~)G<|+oq>0Ymf)#yKWm?CN+VP7CJ3HWbIsuF;00@*KDkX4^jR|H>RLY=-L~n* zajlb}ZbS7hw*~X{TtJB^paB3r{02l_V(WsO;Dj%qt=(u4x%&|g-7>yq-7m+tj91Bt zU6L_798+}X`DN%k(d|e_09yeRsJX7b)v#^aqWs}rKe2M`^wHuOP3vcsIj5>*BuEs@ zEPf#L4E#|IGyu?Q6a!cfu!SC;QM*exFzt?kIW10spM|I;5CrtmnGG8z4sxqaGeIfE zO{L4UNf;BgKm!2XgfXC41F+>lJ0pL99Gvl+d{b?Mp@5^<dl>}kf90A}TMJYD(?S4g zQE{bq=?J14=uW6-fMPWOi@I(B%{M)fbMn*e){z{^(3NbJTi*CdZB3Fz85P3i%S$Rz z6%oHMk<_SkBd!L)J5Zm|$^XRPQg{CD-Q)=zP4ya<<v;SfAJth60&+vR{DqQAEQ}bJ zDbgC3R^!J2{szFL_S!A`EuUTYV9s<&CMJ$4o35>JY*;wSJ_ZCf)wTjwmMp~`eK9>3 zH9&VleK~-4!5+=^Z@Ii=-w*E_kZ|O*F`wglewjq-e`40@EhF=M(?bG>;_>2TSR8SK z+DL71x)IYs@Bx4X)z?xus{WjI;I$8v#&dMPufeH-Q!mc0b6JhFG{h=?TT+SpBJtfK zdT$8bh)E#$5I{;Omv7l;*>L^CIb;1nV&fQh=*F?F>wiA3bqwQ~f!}LWLU3>KQal-{ z?-%i#ojT{KKLAh`%Jo5+oVfXk?6%K$#P%#mx=n6cdG)DpbJ$bdesACnf?t*_)hGQx z%mCd9b!w+iePM`IC_4^YHqU)1XROCZ%&`XZoQn2M3nw*~2?VJjR$*5t=9DeN`bdA* zsM(H6KY|&_cm=@xQ0oXtq;|nmS&q-XvJHy`kkjJi`jtPbtI182dNY>TE6KRByb8yo z;hm#ue>J5b*o^x@u^d3C=PD?>kC@lq@JRNER;QTWA3+ucD8HIu-~1mV9K#3@dT0Q} z`%o~iqzaB`dH1MH7|^+@_*Vcqz4$oV{`5)G?&YtiO_dc0{RQSxIo<;g&#G7AjC5!( zs*wS#D3<XcsX|o6phs;647w4SAb1PFrM;=g=@Aay@<f)hVXt*aG=rRIk?oJnY}h?K z+cyKf3kz<fzzwC9_$(URA*xfl(6=EX50xOO?4=Qv<MqZZ^B>I`aP+h(supA{2I^Tf z)xK?3nR8UH+=~va4GOq^=n_QjS(5!CM-knK%RulNfC0U%%C~8sW!-|Ovc^QZe=Q17 z=8bOKF@H?U0M@LZ-N;V~mX(xhpMabL9V*nDkq8A(09c^G;M4W54e@*Kc{yX0FA#B? z2<Sz{?k)FS*qCZIguK#s*0>M5A>hW+CD_>?IOum-<me{M0>!I9NReaT^+Occ-~KXT zZ{;7;FYx;NezkE%p=-yzGwddtQB_`y^GO2mR6xeEVO0q97yI|iw1{*&(h<Z;P|Ve$ zK1D&}Ki0+XT>8h1Np2rW2&;hzFsszLYvB~T*=D4g3|uL&TcEh9cp3U#`r>|_=d;td zejY%HMqu0D{xV_j^4HVGIK6_dU<(AwmF3Q@w@tEZ;#zdd1%d}oN_bAMgyS4&{d;R8 z{J0AQRZzJbrW+sIxp}|k>)-r7qqwHgn5*UU8b#`#JEDF2{Bf<>Mu8S-SoH^jjN6K; z(693a#!Mz=x*mlP@jQT88de*uX*6uT=jDu~jeD%U@@vy<lKu86&3i8_bPp#$nuZoW zDp1^BREdvb!Ok(4TAXgeRiOASfO0MCZE*@aANfnF|L<QWj*}JkW%;35z5~CW+H5aL z_g?@&%fP8N3Or(zv9h2FzF4tuOy<g`6aqG39)QQti{<mKBr9n6a+meMlGiedYa0!D z=W{Er8tT|Fe{`!k*{Y1u`1OL6;7@{t%Hk^aoZKAf{s8ta#KDDyAXtJBcE<F?c0;RS z+wwoB;r;5k36z2iN)DX(&q>Y4$LD)1dJ)Rmt)EO}{JOXb-^Qv<`DrEq=mz9M!2JMj z*7#>101%MKu^k_ab?H`ViY{$V@QDH}D_e@Kv2IHa^x0r<L?#5>1&T!oVS{dWI`RdM zQ;NYFKk`NZOG_%TmRpYl9agZl1eyS!DHKafmw}%{!+}=qirn4liX`+g&<ZHtR|Gu5 zT?-C$Z^2H0fSW+^8xZ7&8E8L%w<+*wX(jt{9vo<{p26M@BLbKW;BElpbq2Z-z>A8E z=gX>K=dI6y))($-Tms-u09SxvbAbw=_kiL#gMz=r(t-#FIy1I0WLEJQaO40-@M z0N_0eyi&3hpGQ)zI1Y5Ig1r|ewBu@YY%sXw+_pUr&~*S_g@_kQ?ne`EMGkbN4kCwv z;8&eT*rl8Uv;^QIqTr<>icg|#S2YJZmcd>F3oN(>6gMAP3qoal5)|-yG;czUbp0Rg WSUH!awdURc0000<MNUMnLSTa5-vFBc diff --git a/src/components/DateSelector/DateSelector.tsx b/src/components/DateSelector/DateSelector.tsx new file mode 100644 index 00000000..9cce4ff2 --- /dev/null +++ b/src/components/DateSelector/DateSelector.tsx @@ -0,0 +1,24 @@ +import React from 'react' +import DatePicker from 'react-datepicker' +import './dateSelector.scss' +interface DateSelectorProps { + date: string + setDate: React.Dispatch<React.SetStateAction<string>> +} + +const DateSelector: React.FC<DateSelectorProps> = ({ + date, + setDate, +}: DateSelectorProps) => { + const handleOnChange = (e: React.ChangeEvent<HTMLInputElement>) => { + setDate(e.target.value) + } + return ( + <div className="date-selector"> + <div className="text">Edition du mois de : </div> + <input type="month" value={date} onChange={handleOnChange}></input> + </div> + ) +} + +export default DateSelector diff --git a/src/components/DateSelector/dateSelector.scss b/src/components/DateSelector/dateSelector.scss new file mode 100644 index 00000000..e9204bcc --- /dev/null +++ b/src/components/DateSelector/dateSelector.scss @@ -0,0 +1,29 @@ +@import '../../styles/config/colors'; +.date-selector { + display: flex; + align-items: center; + height: 4rem; + .text { + span { + color: $gold; + font-weight: 600; + margin: 0 0.4rem; + } + } + input[type='month'] { + display: block; + background: $text-grey; + border: none; + color: $dark-light; + padding: 0 0.5rem; + margin: 0 0.4rem; + font-size: 1rem; + max-width: 200px; + fill: $gold; + border-radius: 5px; + height: 30px; + &::-webkit-calendar-picker-indicator { + color: $gold; + } + } +} diff --git a/src/components/Editing/Editing.tsx b/src/components/Editing/Editing.tsx index 68490cdd..03528b3e 100644 --- a/src/components/Editing/Editing.tsx +++ b/src/components/Editing/Editing.tsx @@ -1,32 +1,13 @@ -import React, { useState } from 'react' -import DatePicker from 'react-datepicker' +import React, { useEffect, useState } from 'react' import 'react-datepicker/dist/react-datepicker.css' import { Editor } from '@tinymce/tinymce-react' +import DateSelector from '../DateSelector/DateSelector' +import './editing.scss' const Editing: React.FC = () => { - const [date, setDate] = useState<Date>(new Date()) + const [date, setDate] = useState<string>('') const [header, setHeader] = useState<string>('') const [quote, setQuote] = useState<string>('') - const months = [ - 'Janvier', - 'Février', - 'Mars', - 'Avril', - 'Mai', - 'Juin', - 'Juillet', - 'Août', - 'Septembre', - 'Octobre', - 'Novembre', - 'Décembre', - ] - const locale = { - localize: { - month: (n: number) => months[n], - }, - formatLong: {}, - } async function handleSave() { try { @@ -35,8 +16,8 @@ const Editing: React.FC = () => { { method: 'POST', body: JSON.stringify({ - month: date.getMonth(), - year: date.getFullYear(), + month: date.split('-')[0], + year: date.split('-')[1], header: header, quote: quote, }), @@ -53,64 +34,61 @@ const Editing: React.FC = () => { } } + useEffect(() => { + const today: string = new Date().toISOString() + const formatted: string = today.split('-').slice(0, 2).join('-') + setDate(formatted) + }, []) return ( <> - <DatePicker - selected={date} - onChange={(date: React.SetStateAction<Date>) => setDate(date)} - dateFormat="MM/yyyy" - showMonthYearPicker - showFullMonthYearPicker - locale={locale} - /> - <section className="hero is-link"> - <div className="hero-body"> - <p className="title">Partie Marion</p> - <p className="subtitle"> - Édition des informations et de la citation du mois - </p> - </div> - </section> - - <section className="hero is-small is-info"> - <div className="hero-body"> - <p className="title">Informations du mois</p> - <p className="subtitle"></p> - </div> - </section> - - <div> - <Editor - initialValue="" - init={{ - menubar: false, - toolbar: - 'undo redo | bold italic underline | alignleft aligncenter alignright | code', - }} - value={header} - onEditorChange={(newHeader, editor) => setHeader(newHeader)} - /> + <div className="header"> + <p className="title"> + Édition des informations et de la citation du mois + </p> + </div> + <div className="content"> + <DateSelector date={date} setDate={setDate} /> <section className="hero is-small is-info"> <div className="hero-body"> - <p className="title">Citation du mois</p> + <p className="title">Informations du mois</p> <p className="subtitle"></p> </div> </section> - <Editor - initialValue="" - init={{ - menubar: false, - toolbar: - 'undo redo | bold italic underline | alignleft aligncenter alignright | code', - }} - onEditorChange={(newQuote, editor) => setQuote(newQuote)} - /> + <div> + <Editor + initialValue="" + init={{ + menubar: false, + toolbar: + 'undo redo | bold italic underline | alignleft aligncenter alignright | code', + }} + value={header} + onEditorChange={(newHeader, editor) => setHeader(newHeader)} + /> + + <section className="hero is-small is-info"> + <div className="hero-body"> + <p className="title">Citation du mois</p> + <p className="subtitle"></p> + </div> + </section> - <button className="button is-link" onClick={handleSave}> - Sauvegarder - </button> + <Editor + initialValue="" + init={{ + menubar: false, + toolbar: + 'undo redo | bold italic underline | alignleft aligncenter alignright | code', + }} + onEditorChange={(newQuote, editor) => setQuote(newQuote)} + /> + + <button className="button is-link" onClick={handleSave}> + Sauvegarder + </button> + </div> </div> </> ) diff --git a/src/components/Editing/editing.scss b/src/components/Editing/editing.scss new file mode 100644 index 00000000..ea763643 --- /dev/null +++ b/src/components/Editing/editing.scss @@ -0,0 +1,14 @@ +.header { + background: radial-gradient( + 74.83% 76.97% at 50% 13.64%, + #343641 0%, + #1b1c22 100% + ); + height: 5rem; + box-shadow: 0px 5px 5px rgb(0 0 0 / 20%), 0px 3px 14px rgb(0 0 0 / 12%), + 0px 8px 10px rgb(0 0 0 / 14%); + padding: 1.7rem; +} +.content { + padding: 1rem; +} diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx index 72e3772c..eb7decbb 100644 --- a/src/components/Layout/Layout.tsx +++ b/src/components/Layout/Layout.tsx @@ -10,9 +10,10 @@ interface LayoutProps { const Layout: React.FC<LayoutProps> = ({ children }: LayoutProps) => { return ( <div className={styles.root}> - <Navbar /> - <div className={styles.wrapper}> + <div className={styles.menuWrapper}> <Menu /> + </div> + <div className={styles.wrapper}> <main>{children}</main> </div> </div> diff --git a/src/components/Layout/layout.module.scss b/src/components/Layout/layout.module.scss index 3f0e2345..c95548b1 100644 --- a/src/components/Layout/layout.module.scss +++ b/src/components/Layout/layout.module.scss @@ -1,14 +1,26 @@ +@import '../../styles/config/layout'; +@import '../../styles/config/colors'; .root { display: flex; - flex-direction: column; min-height: 100vh; + box-sizing: border-box; +} +.menuWrapper { + position: fixed; + top: 0; + left: 0; + width: $menu-width; + height: 100vh; } - .wrapper { + flex: 1; display: flex; flex-direction: row; - flex: 1; + margin-left: $menu-width; + box-shadow: 0px 5px 5px rgb(0 0 0 / 20%), 0px 3px 14px rgb(0 0 0 / 12%), + 0px 8px 10px rgb(0 0 0 / 14%); + background: $dark-light; main { - flex: 1; + width: 100%; } } diff --git a/src/components/Menu/Menu.tsx b/src/components/Menu/Menu.tsx index 1013998c..65b188b6 100644 --- a/src/components/Menu/Menu.tsx +++ b/src/components/Menu/Menu.tsx @@ -1,21 +1,36 @@ import React from 'react' import routes from '../../constants/routes.json' +import logo from '../../assets/icons/ecolyo-logo.svg' +import './menu.scss' +import { NavLink, Router, useHistory } from 'react-router-dom' const Menu: React.FC = () => { // TODO class is-active if link is activated + const history = useHistory() return ( - <aside className="menu"> - <ul className="menu-list"> + <nav className="menu"> + <div className="logo-container"> + <img src={logo} alt="Ecolyo logo" className="logo" /> + </div> + <div className="menu-list"> {routes.map((route: any, index: number) => { return ( - <li key={index}> - <a href={route.path}>{route.label}</a> - </li> + <NavLink key={index} to={route.path} activeClassName="active"> + {route.label} + </NavLink> ) })} - </ul> - </aside> + </div> + <div className="administration"> + <NavLink to="/login" activeClassName="active"> + Login + </NavLink> + <NavLink to="/login" activeClassName="active"> + Signup + </NavLink> + </div> + </nav> ) } diff --git a/src/components/Menu/menu.scss b/src/components/Menu/menu.scss new file mode 100644 index 00000000..f2ac09fb --- /dev/null +++ b/src/components/Menu/menu.scss @@ -0,0 +1,37 @@ +@import '../../styles/config/colors'; +.menu { + display: flex; + flex-direction: column; + height: inherit; + padding: 1rem; + box-shadow: 0px 5px 5px rgb(0 0 0 / 20%), 0px 3px 14px rgb(0 0 0 / 12%), + 0px 8px 10px rgb(0 0 0 / 14%); + border-top: unset; + border-right: unset; + background-color: $grey-dark; + .logo-container { + display: flex; + } + .logo { + margin: auto; + max-width: 4rem; + } + a { + display: block; + padding: 0.5rem 0; + text-decoration: none; + color: $text-grey; + &:hover { + color: $gold; + } + } + .active { + color: $gold; + } + .menu-list { + margin-top: 1.5rem; + } + .administration { + margin-top: auto; + } +} diff --git a/src/components/Navbar/Navbar.tsx b/src/components/Navbar/Navbar.tsx index d57154af..3c941759 100644 --- a/src/components/Navbar/Navbar.tsx +++ b/src/components/Navbar/Navbar.tsx @@ -1,28 +1,29 @@ import React from 'react' -import logo from '../../assets/icons/logo.png' +import './navbar.scss' const Navbar: React.FC = () => { return ( - <nav className="navbar" role="navigation" aria-label="main navigation"> - <div className="navbar-brand"> - <img src={logo} alt="Ecolyo logo" /> - <div className="navbar-menu"> - <div className="navbar-start"></div> - <div className="navbar-end"> - <div className="navbar-item"> - <div className="buttons"> - <a href="/" className="button is-primary"> - <strong>Sign up</strong> - </a> - <a href="/" className="button is-light"> - Log in - </a> - </div> - </div> - </div> - </div> - </div> - </nav> + // <nav className="navbar" role="navigation" aria-label="main navigation"> + // <div className="navbar-brand"> + // <div className="navbar-menu"> + // <div className="navbar-start"></div> + // <div className="navbar-end"> + // <div className="navbar-item"> + // <div className="buttons"> + // <a href="/" className="button is-primary"> + // <strong>Sign up</strong> + // </a> + // <a href="/" className="button is-light"> + // Log in + // </a> + // </div> + // </div> + // </div> + // </div> + // </div> + // </nav> + + <></> ) } diff --git a/src/components/Navbar/navbar.scss b/src/components/Navbar/navbar.scss new file mode 100644 index 00000000..ffb90dc1 --- /dev/null +++ b/src/components/Navbar/navbar.scss @@ -0,0 +1,11 @@ +@import '../../styles/config/colors'; +.navbar { + height: 6rem; + box-shadow: 0px 5px 5px rgb(0 0 0 / 20%), 0px 3px 14px rgb(0 0 0 / 12%), + 0px 8px 10px rgb(0 0 0 / 14%); + background: radial-gradient( + 74.83% 76.97% at 50% 13.64%, + #343641 0%, + #1b1c22 100% + ); +} diff --git a/src/styles/config/_colors.scss b/src/styles/config/_colors.scss index cbb90227..de5a63a9 100644 --- a/src/styles/config/_colors.scss +++ b/src/styles/config/_colors.scss @@ -1 +1,10 @@ $primary-color: #fff; +$dark-background: radial-gradient( + 60.65% 30.62% at 50% 3.13%, + #2a2b30 0%, + #1b1c22 100% +); +$gold: #e3b82a; +$dark-light: #1b1c22; +$grey-dark: #25262b; +$text-grey: #e0e0e0; diff --git a/src/styles/config/_layout.scss b/src/styles/config/_layout.scss new file mode 100644 index 00000000..8a3357ec --- /dev/null +++ b/src/styles/config/_layout.scss @@ -0,0 +1 @@ +$menu-width: 8rem; diff --git a/src/styles/index.scss b/src/styles/index.scss index 69bb90e0..cf4aeb0b 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,12 +1,19 @@ @import 'config/breakpoints'; @import 'config/colors'; @import 'config/typography'; +@import 'config/layout'; // To customize bulma variables, we set them before importing bulma -@import 'bulma/bulma.sass'; +// @import 'bulma/bulma.sass'; * { margin: 0; padding: 0; box-sizing: border-box; + color: $text-grey; +} +.title { + color: $gold; + font-weight: 600; + font-size: 1.3rem; } -- GitLab