From fceeb9273f2ecc75f8e1ff42555390e0ab54c989 Mon Sep 17 00:00:00 2001 From: Maud Royer Date: Mon, 14 Oct 2024 14:48:28 +0200 Subject: [PATCH] feat: homepage Signed-off-by: Maud Royer --- public/placeholder.png | Bin 0 -> 31936 bytes src/app/(container)/layout.tsx | 13 + .../[CIS]/DsfrLeafletSection.test.tsx | 2 +- .../medicament/[CIS]/DsfrLeafletSection.tsx | 2 +- .../medicament/[CIS]/leafletUtils.tsx | 0 .../medicament/[CIS]/page.tsx | 4 +- src/app/{ => (container)}/rechercher/page.tsx | 2 +- .../rechercher/results/route.ts | 0 .../{ => (container)}/substance/[id]/page.tsx | 0 src/app/layout.tsx | 14 +- src/app/page.tsx | 247 +++++++++++++++++- src/components/AutocompleteSearch.tsx | 11 +- 12 files changed, 273 insertions(+), 22 deletions(-) create mode 100644 public/placeholder.png create mode 100644 src/app/(container)/layout.tsx rename src/app/{ => (container)}/medicament/[CIS]/DsfrLeafletSection.test.tsx (95%) rename src/app/{ => (container)}/medicament/[CIS]/DsfrLeafletSection.tsx (99%) rename src/app/{ => (container)}/medicament/[CIS]/leafletUtils.tsx (100%) rename src/app/{ => (container)}/medicament/[CIS]/page.tsx (98%) rename src/app/{ => (container)}/rechercher/page.tsx (99%) rename src/app/{ => (container)}/rechercher/results/route.ts (100%) rename src/app/{ => (container)}/substance/[id]/page.tsx (100%) diff --git a/public/placeholder.png b/public/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..9e326147bc81cca7b378bf8bcf37910b98a8c649 GIT binary patch literal 31936 zcmeHwhg(zU`+g8dtph~`iU_F1g)&rzY`3ByH~?jeiUSBiMvxJrRuK`=qEbPIT7k-l zh>$=CiDg=f$dZu+0*LGcWP}y?o%5bI+TWk>y*}x6^`hat=N*nG_8rIJ7SV9H`H4TxM}G6O`*S_y$3nuP(>^%dT7C3isr^s1U65Z&`5ZsE z2bcL#sR#Km_u_7g-8fuU)S~IL^KiJ}Q-}BMJ{cg@-@IE2w+x5V9-;I_DDbm78#z-P zDP+9(pTvy+ev-OjD87LFTqyYj(U2e^riBCv2@(=z5OY9+gaio`0f{P#c_2YTf`r5$ z#2k)5Eco$Jb>8*=J_*_U(|;eDNS2fUi<8g? zCvg&-L<%HQAdv!`L<(>cDZojjKq3VaDL{&d|FNuKq~+>qSEdZ8o&qglIX2SLb9r^` z<<;P~BXO|u>dr~toWaftJ^FsBqr^oU>WI!lbgq3fThs2xv7&=Rw zs&jVMIP!1TI#4l^3zv(h+#dJ1(Su~<!3j@p>6O?~3vAU2e#fT=YFd9PTi@o&2b`ebU3fFrv?I zIca-VJJ{%h`Xiv?X7Mr_)Rc`jIcgat#>~#nHc%Sa)&<}Gu`U>kwODy|VtP1YVRcN! zM#{}Ny(oYU*#ROaed63$zLh9(HgC2lO3m^ZTf-w%PUkA6TCm#7A<~|jd8cL9A1FCW zZe5PmooUz1EUixii<+%FSaD&>qqQFFQ#FT96nb}kG%=YtKl|_Qsi-{fj?_h5uU1l1 zvrdc~J#u`cHpJmwqNslpX~riEd1Dg!XFIg*h@GSR?084n5WUsdgqkV}3@WhUe3);QznS1;lcDGRxI%PdZ~8hCcR zb)b)Z8T`K2IT*s^guEc43R5(ot8Ap-A4BYmof=?kmQ}`mrtDHdc$t#O?|3V!cV1KC zJk$9Y?2$JJkutWnWt&bD)GP<(uWUIg-Z9+P$=eR> zkM~J@pH^Z_z^th9y)8Sm+)z-klIrE$cY_$99I-#VwpMp(XNsxuUFYe)?}E+->p3*| z?`hS7DS_$T$_>I8A1{vnU13X*8op&^o{uiu)6uK73@^W6v^UMxfeE&`!0ql_^gmRy z42jCZb$Ci|ez4W!zyiH(c#Xmy4+3 zZf_K<-w>?}ru;r`PfCjCG@GgR$2-ze=Y#ydobvdTH1{4q9pmWEx5ZaFn~^tLaX9^z zaN6yDqG<#^YswQgGwlF>)Pz-gG{v)DHlag**JZj6=0zHbm~*N=%_liY4;9jbsF9(w zLQj_P+W4Dd*N4Lfl8*;ZFHG-NV)URT}m z5pZW#CsdYS2j4F!(zw*nC#ynAl~tw#jivMpmq&-M!o;m&9i|rgZ=O@Ap&2bziupS% z{pN)j3|!n)=pdJ91`I(s45_qWjNUrxQ8PI&czUSA<=OoxVf96eT7P$}Vdk(EI|@t6 zVuL4#-cWU_uWP9K;2fcLY^8aBAnE?gQbcp3x^mEWnsJ0p5L9VJ`$2|N%y|Ef9gXMS za!pQ~s@y1fQGDeTCKM6t;TDtV#4`Dy&~M?akfVj;FCzWTin@MiCaVMb`9frdF@1*)JCA%hYn!YA*e=w7;hhYeL!?>@l+Wi5tm}m-sU0h zo9(>>xRAqKc%bVXhGC1^@a&|fI)ATTd@i?n!ivk(#5P9zNqmrBhVSOh6P`tdclBF@ znZbMmAfozS;t@}eHY=npkSPsn4a1}Bc^ffDNuQ?{p@6U^pc*N$0v+?&b`~3+P{OVl zc%Gw1ST_pFLaYGGdFx=$aj8poxbdgP|$lEOK6Cf!D$y1HVhy3Px}Rviw`_&jlB=Wz$YAL^p_Yx`*Ax z!{J*-I#1v37!Od{$Dwb;a0sw2ya`OkdPOIRHYwaj={7I)P1B=l%_e|n!6q?5I5cfO z%bsVlnCp!q{UL%OPRHh`9dGEivdZ*1liOD7= zLDE8S`Qiphu?P0l(h0TZzJ{pwNWIMYBAxi$>Rxu@Ym~P^55U-u=3??t82+y!7-h*V zUX$)wo4AoGwkj$0|C|FD666Xaz;J@94nA}sXJ{VZi*bR$pyaaeBxjkEu1MR zntSLf0~IG2 zt@JAJ*6B_Jxj+FKC9=j<0Q06}h7%E=`-`H~G97zdreddxv~m3nSOw z2ke-442Cn=iLTI@YRi?wd9NSY-sQdno+?-;2pjEEhE}NvAn2Cv@K872VroJeky35DEq@M517O z^d9oVadZbLwUL1I@RUd>sx@UOAt}R>$;*hy#0X_qzsrv`O^l&k8{Py~Ddk_v^9cD2 zKA6b_fBRrE(_xzH_*2}6J_@q8$29M~&)BwT7I8woJ!!2AFUR|sg;?5u4!UCZb3@|TP+M4- zy-#RIWZF>F?D*UIF{#vw0l)Y0N~DPj^`Yp*07qcB4w&+GXH_iax;G;DYL;Z!+uoc> zI~%lw^P!_Tr`yTdmQjqs04s#WW=psN&NU^XfZtKz$Rw@wV)*HhM$^*%9+PUCZ9D!~ zLj_*`*Wv8MH6>M{Bur0AVV$6*Dx>^}h9nHfOq$9rCJvlqkP0=WT4~;DEy2U)@;S_z z$;Sbmk6*gj@mn>u<4${3^?u$)0gmbN47#zj?$dYLi81^#MP>t=$fbF&Y@nEiH}_S| ze)ak-XD^j|Ab7H8f+F%EktS$==7bYqe)rpyzXO zI2wxn#If$|v{+6R?yG&rZ8ibF_yanb%dc0q8pr4EHU)`57l=Iy@|ZH??iC}sM0X70 z^D)j(z(fi#&&Ay{t9{fsa6{R^*b{~kvNrT_7R!^mJp1(OkrR>ZloM5;Ow(G5X$4M! zrdfFDW&J^6vxkjq&K6)YEno4)H%O>23j4czt^O`=b8t<;1ny;V9V*o?x}P@=tV=#o z1*AgDLwsYZ;@*Z$v2A};niC1&K9^Jot(IBD{vQ0|3X+QUQ#)@U1GkUB3Qzikd|}*y zxyC1vpgF;517hv+hxkSW0k4W13J|K}`-z%F*;NzsCUy6C`{FMkev#!4}98i$j9!#!{`6_?w7~5o@4zGU=GHcc{xLQ(IY_ji>mV34gtVFwQ1`lVPi%#dMg+~wP z@CB4;BQVd!1@WO{-SI67wK(_ zQ7fE&3-)2=3^gq&EV)+qOo(A?$H+VJ(Y}|`#@R?wJHIuhbYK*R-KHYG?I0Qimun9D zqG$VO?N8`-l0wBRuJ?NyL|rs){Ubtt+6Zml9bWRnS1&+rRJAx5KLA+PEhg>=3nh!| zg^x(>%FO{#ev%j8cYUJ3H-bZun+hpD-|hmo^GO9>JcQ5QtQ{Br=$c8zg`TB{05&7n zVS4oY6cVcpHIpwl<10aZt!fBS`}OlqHGeu;{&>gOhvMBJKT z4UMPp_^N+(bcC?38GJ8A$m#It53EoJoAdD$BRO~r*vEsX;(avX_m?|7Yf2ZV#j5MY zYwdV?hn;69F7wG^eR)vsYVDf0QpG1rH%@jquWvCrVfjJGl*1m>LkGL9!)GT{ZW+e78*D?=@J}mB$pq&*5H;Q#Y!s`zzH@BU;Du*j z)HdOzsajNKU3HsPU zTIqwf=EGS3~s`$o4~!Z&V_6=wi$?T32LLW-b>`j1NVhBGP_B zyG~cu#&KekBN;NkpaXGBq2u2Bj3oT?go4?e@%PR*<-LQ`6*n*ysmC_7%ta9 zEyB4PE}z_x+DdG>X=u6k`Q_tp=l{FTttRE+$!~%drr0QVn{UL+6o(>cPPYJ^tcWe zO>@29Fyo5;+U>O@=xqPk)E&*j!87RAaN-(O;kS+Iz1~`W#xrS@bXruUZ?i!oZnmqf z=m&Nskk7kQ&vrgHCQYB;pWtnWRN>My-9Msk0_-SvGe-0OJYAis{!NY%=7m(@ipO>a zH{gX|qL+YmzmLmNjBZFZia5UR$&s{{y|&UVir?mhUO~I9*Hl0ZNr=LPqdVu`@(W86 zOR9=;(4aT{CP-Lt0G*561+%rlzUr5UC> ztPenJ_O6#nnV+!u$P)jI;iBxn!gjw^-UGzy8{`1v-I-43L#-Zr78|SjJr32)ZdqD& z1?@f;xPg_$RV8B>;Y#HeLgb5IZr7f8uJPXM50vRw_73|87m~UR*=Qnb|@hNJw zkcOQlil#;>Q$jY3dc4yRU?*h9@{z(1ZYvm5dcy}1?@m5(Ox1{@NDW#7WI*hVBc;(g zBi-@&2DA0HHk_&6@y3yz1*vHK>ckv;+#6$6lAf|jzn2oKlB3rq5mD~JP4CYRfgiN2K@p7q8u6- zG-1j4b;Y-aZA@3aPdSYa!ySW0sj<(vy<+d@c^!f4sZHtn_i*xGW_4q=#6!V zN@a0Nlj;chI!hC57%gr)jxBR|G^wng7y**G?^R>X>*eEtYi^zpG`Owj|BLi(GWv_= zxySkw!eY=F$zlhoIg@dl?u&TZ9fRj+Fy*--{dni#wrCL9$fi(yjt7pUE+%n_c`J`! zMCg*gWr@T6FqtF72SB5EagZ$rulA)kXb1SklNfSDH|_Xbo6)x4<9|p-gLoX`ZS4Z> zMi1AWLY-`|?$!FeYNG@&9ZNiH%Q2hEb31#_h-{q~rpf%3c~CEsCAaj#56<&Ko9GSP zo%z0wMViSQ@19@jJ#$e0vca!&u5aCF<*_I7@fMfKh zX&BzPd4){F=QZC>YcS*i(J&Qxuuq;yd`QeN4{!9?s=&;VQL&Wz^5)FrnNQ$cR(f#Q z-~Q@+6Xiseg2<8=0flQH)^2t+p<>T4a$uoqOKr6u5XIn281+Oa2VtPShH>=+3*j&0 zOB(X$vl#vRULhZ|}R6os9@?FyOUjA3n1vv};JtW%y;xr$jfUf$bi zzWiIel~tO*el8i{zd;X*8-;Fco820tuXIDD(IcJayhj+g;^Q7t+NmBHGjPaJ7=CT7 z&G*&LHLcEQ){CSKbG{-uDd%ojSgtcxr1ZknEz^~%9#ULcHQ?X2%iv{Mnd>hq`0^oz zET^eus9uqqp%?233oMnVBk`RxeYU&Db}21g9&yV`4qxeNJt=LC?#|2@o*^zMP*%OL zj_S3RZ*;Ts?Lb4)b@uQ?c9j`ADm5IFzkm}KCno0+oigp|!e^qwva%XeGW%WABRdKs z3_V7Y9Oml0O5cb6^6tY1uZ$KX6tuK0%d*p7gQI2!sSpJh(Ft9~#mge;ZZoqlAec00 zP;sH}+D$3__;p`>!cL*1l3-5Bv*;I=O!8HFZ8-KJT@ij&4IMA{uF_h`4Qk%K867At zBnjS*kGMPEtMn$6aV}{Vm_VacAZkt(ml5He2q zIY~K1;59M9c`gU0gMv!%2UgRd*nbc@m}>4)iIO_$mc2R4$*}wXD?~rOj>w>Q$5O5T z@!_4$E?VoFWi_!kBVRcCVTlr0R|^{Lv?uk6Z|fPVgVS)}#MP!VSz&kmyn}?h&_TGx z@L8ySoTzZby}5va_*rTB)KJ!lOcFlrls60DHXlCUc(z~OR?mW<#vNv|>sJx|!#2w; zN~>gL|DZe`w&3(5@Vls`^M;Q4)9-X>zs_>VJtYdg?%Zc0^V!{bAG$K35AIKeEjYqV zt{nB$^-HIjnmn128bq2`fAR4E7OkDovQdv@t9R~}<=!RLE;i)%FFmnU&L;M{%GC5} zOq-}s2Bsh4H&g2sQ{J*ml0r9BTv%Op4mWK@+!!%>2CKZOFfpCZ?aCQceTqLd+t+Zm zG~SUmIljqZ9w~!fv6n~%-3i_pbj;SVkzaRy>_trHCwe|HUOg~}%p@A@|F_FT6Fmw~ z4o0Qc8dM)QQt*zUhfH509h4yjoMsJosI5YNK^7SK8O~_i_o7E5VFUGef^^kdeI+E7 z*|>$=FfsDiKm!)O*f4K%@}%e72~y858D5*75IUY@HP4BH6u5qZ+IQJ3j zG1>}!vNqkkGjhGpF5~V^5LyX)A=VLo4}ELr>LpL*4fs=kK@FI$DIMBdyAfkN=V$Ea zpeuI{f1Bp@1`ldPoWt(f*4fb;(lZXk^0Kp_LZU5!M%h0$RYSS#L)VRCpV4y4_@`2% zN_xUKadTlAdRlSeJxDbVzZAm5A&F3fAhj*dkk*JOieGreGWZa&6 z*FSBc(r;W1eEY>bhg?LYS*QJoZ|x}DUqEiO9mWObNWtWq#rvqGv!m{O+Azvk@)5hO z%_OWLP<|Mr#dJ+=^rwJJg&{#somJh0fcwX!G+srpO+&|a0e3nLO_z8jwnme-!-%^j zv@~(xYEvmxTzig|Wf( ze3Sop{;QF#?mdp@^X+JkxIzE?D&}Z&7wG?-hsn-Nl&G+{ZQ02rdvC85Bk>g%4zFNK zk0MEOzyDHSRHe-}K&(xDvwUjjKJF&9G~73&7p+Wtyy^naz$8=-G$4Nr^PujMV_Y+& zJ39Coi%?~AIPxF%i!;Vh;B^)u`K)0@xrnRvH07jhyLW}Ns4-L*Vl?=quJ+>c4RgOV zk;QQC!yx%+jTpQ<&Y`turFPfx_t{J{Ng;7Ggs6yp&9)?(fzfRo}X= z8g93lThv^$^Nw;R#_cr5yriF16y3ZD-Z&s^!hae!jEC8ssUME`bT&y&yW9b@s1TLbx*lzGQ()LWy`VFc(MsaEpa^ekAKew1h~ z-$;EnD(Y1zj&t`vIgXbF++H)jivDjUVZeW=EUk|_=bLNWyak*DzNK7WP7x65!6%pp zTRlZQ{k?X6D=Bi%6ziD=fk(HpJ{2jrS|H<||P&trYsCYK?wMMu$=VdP(YQeFkI-hN*Sh08aUzh|5Ft@Z+u zycUQSF%2C`K7#exS!SM8Q>Vt;K1~Ddt-FJ$=Q-OHrRy*U08c2$!x&vzxB=lSnfq-u z`K;`0hg_tISN|W$htF79EHu(ddA*2ergx5&9aJwh3(2S3`7Q_sYknWq?_ct}u2(M~ zzp}#{ck*%$QV$t?0h-o@<(*`yp1=M31`2ZM0^8V&+19wa-nRE2wxhG?!}jdr^4jQm zr!&uO|D{C4C|{FWi)5t^cR>W=DM46~J~@&_(w_AAiWlW?_i2}6x(xQIgd-XKDt55>Q!ZOao~Ugc1w>223(rL-aX;@P5WW1 zSZ!WzvEo5+1jkH1ma+T6pYz-G(5aw$#K3y(Up<^puge@YUn{( zxZmXn`m_szmPps_3&~rMw^s^-ha7>2hr;Hwo(oeGu`H*csXr4bU{b5gqCA<{i*M7< zOxL5cnO*fnn)y;UwUiGYO?in+wU(!9#(1JvaHjCoUjY1CD}}8aec#VcE!w+DgStz;- zjg23Z6_0LsN&2uR=|G%C_-Hc`2+#CmjE}!xMg?l`w&Ystdu0e^OJ0bRvx^w0hyGl| zj@yv51+nl+W~djk&Ix&HRhMNhdR`V2OZ8MA4&=_Q>lX7qC8Zs_;)5H9IoGdQXr(#l zwN4xtNn~(3Klqp$ZwkVW*&KlSsnt>Ik*(nBx&!XnX|Pey$<0_)RlPotJMz%5jz2?M z8GRUtfk*&+)CxXLa%cj+#Y;p`&%7SE4VHerUnyW1VLw_B;X<{cVXNIvxH9DOP(E8} zVmx!G#@oK|lpfbaENkM6(8IMlpALd-JruXczGvy9{^MDQ+)ys=Q0JS)Tc+HZ;4B0Y zw)a!&|j5TK)2D0 zHKNISZ(1X2cuENFIbvPBie6uw$OO={Zaqfj{@Hu6+MrC#2bUJZ$4nX?RP|~_hg;cs zP;BHPV2gqL9AZDu55-=ef?%JEVV_S6F(F<>J)GPo9)vI+_t9(nFQZ2gqV{Uf?@$8vV)-h0QTN|t$qRWm_=V1Gq}i6chE^#Z+OB!N zzhf&wZ0C7U)yNe=LcExcq%QQ#E(9pjZa@RbdfOrCCr7Y!o%M$H1-u|}u`U-;0oH0o z$oWfD^(-f>v!}2WBjmGcfBVVuH39ZwsfpO%$Ja)eS$rFF;E(5-n(fU^GdQz zIf1O)jv&V7~NJ9j@&Z>mQ@oE(8KSx;PmQ6=$rKAJHNQgqORH{9=sx_si~d)*LoQ_Y2?2W-T&8n2&E2tInCn2=gsbH88_N z&{l&i$3;Ob_Qw*jlYYTod?7mn-n*C~y#FN><2^UCIB*+y0ZSEX0_As_8IkX0@r58)TOuu41bAPE;vr`f~Y z$Rz&+$ebszh{9U{Vl3+o0tx{CN0ajbZ2iqt0J%?+&3<~M6M&!R`vQRP;E)5>VQxZd zyE&=lV%0(7w7>!ABdid4n*MazjI}3HKZ-=DGF+)EKlu3Iy(tK{) { + return ( +
+ {children} +
+ ); +} diff --git a/src/app/medicament/[CIS]/DsfrLeafletSection.test.tsx b/src/app/(container)/medicament/[CIS]/DsfrLeafletSection.test.tsx similarity index 95% rename from src/app/medicament/[CIS]/DsfrLeafletSection.test.tsx rename to src/app/(container)/medicament/[CIS]/DsfrLeafletSection.test.tsx index ba397d0..24ea576 100644 --- a/src/app/medicament/[CIS]/DsfrLeafletSection.test.tsx +++ b/src/app/(container)/medicament/[CIS]/DsfrLeafletSection.test.tsx @@ -2,7 +2,7 @@ import { afterEach, describe, expect, test } from "vitest"; import { cleanup, screen, within } from "@testing-library/react"; import HTMLParser from "node-html-parser"; -import DsfrLeafletSection from "@/app/medicament/[CIS]/DsfrLeafletSection"; +import DsfrLeafletSection from "@/app/(container)/medicament/[CIS]/DsfrLeafletSection"; import { renderServerComponent } from "@/testsUtils/renderServerComponent"; describe("DsfrLeafletSection", () => { diff --git a/src/app/medicament/[CIS]/DsfrLeafletSection.tsx b/src/app/(container)/medicament/[CIS]/DsfrLeafletSection.tsx similarity index 99% rename from src/app/medicament/[CIS]/DsfrLeafletSection.tsx rename to src/app/(container)/medicament/[CIS]/DsfrLeafletSection.tsx index def457b..e0c118e 100644 --- a/src/app/medicament/[CIS]/DsfrLeafletSection.tsx +++ b/src/app/(container)/medicament/[CIS]/DsfrLeafletSection.tsx @@ -6,7 +6,7 @@ import { isEmptyTextNode, isHtmlElement, isListItem, -} from "@/app/medicament/[CIS]/leafletUtils"; +} from "@/app/(container)/medicament/[CIS]/leafletUtils"; import { getLeafletImage } from "@/db"; async function DsfrLeafletElement({ node }: { node: HTMLElement }) { diff --git a/src/app/medicament/[CIS]/leafletUtils.tsx b/src/app/(container)/medicament/[CIS]/leafletUtils.tsx similarity index 100% rename from src/app/medicament/[CIS]/leafletUtils.tsx rename to src/app/(container)/medicament/[CIS]/leafletUtils.tsx diff --git a/src/app/medicament/[CIS]/page.tsx b/src/app/(container)/medicament/[CIS]/page.tsx similarity index 98% rename from src/app/medicament/[CIS]/page.tsx rename to src/app/(container)/medicament/[CIS]/page.tsx index 8171458..e660139 100644 --- a/src/app/medicament/[CIS]/page.tsx +++ b/src/app/(container)/medicament/[CIS]/page.tsx @@ -15,8 +15,8 @@ import { parse as csvParse } from "csv-parse/sync"; import { pdbmMySQL } from "@/db/pdbmMySQL"; import liste_CIS_MVP from "@/liste_CIS_MVP.json"; -import DsfrLeafletSection from "@/app/medicament/[CIS]/DsfrLeafletSection"; -import { isHtmlElement } from "@/app/medicament/[CIS]/leafletUtils"; +import DsfrLeafletSection from "@/app/(container)/medicament/[CIS]/DsfrLeafletSection"; +import { isHtmlElement } from "@/app/(container)/medicament/[CIS]/leafletUtils"; import { dateShortFormat, displayComposants, diff --git a/src/app/rechercher/page.tsx b/src/app/(container)/rechercher/page.tsx similarity index 99% rename from src/app/rechercher/page.tsx rename to src/app/(container)/rechercher/page.tsx index 1783020..1b14a57 100644 --- a/src/app/rechercher/page.tsx +++ b/src/app/(container)/rechercher/page.tsx @@ -30,7 +30,7 @@ function getAtc(CIS: string) { const SubstanceResult = ({ item }: { item: SubstanceNom }) => (
  • - + + {children} +