From 1eb98cea67dfe8f857959ffd27c39807aa111a39 Mon Sep 17 00:00:00 2001 From: Jamie Pine <32987599+jamiepine@users.noreply.github.com> Date: Tue, 14 May 2024 17:48:06 -0700 Subject: [PATCH] Added Peer screen (#2484) better peers --- .../Layout/Sidebar/sections/Devices/index.tsx | 3 +- .../Layout/Sidebar/sections/Peers/index.tsx | 45 +++++++++------- interface/app/$libraryId/index.tsx | 3 +- interface/app/$libraryId/peer/$id.tsx | 49 ++++++++++++++++++ interface/util/hardware.ts | 8 ++- packages/assets/icons/MiniSilverBox.png | Bin 0 -> 12328 bytes packages/assets/icons/Mobile-Android.png | Bin 0 -> 20271 bytes packages/assets/icons/PC.png | Bin 0 -> 16521 bytes packages/assets/icons/index.ts | 6 +++ 9 files changed, 89 insertions(+), 25 deletions(-) create mode 100644 interface/app/$libraryId/peer/$id.tsx create mode 100644 packages/assets/icons/MiniSilverBox.png create mode 100644 packages/assets/icons/Mobile-Android.png create mode 100644 packages/assets/icons/PC.png diff --git a/interface/app/$libraryId/Layout/Sidebar/sections/Devices/index.tsx b/interface/app/$libraryId/Layout/Sidebar/sections/Devices/index.tsx index 973fdb2e2..a8130c9e6 100644 --- a/interface/app/$libraryId/Layout/Sidebar/sections/Devices/index.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/sections/Devices/index.tsx @@ -1,4 +1,4 @@ -import { HardwareModel, useBridgeQuery, usePeers } from '@sd/client'; +import { HardwareModel, useBridgeQuery } from '@sd/client'; import { Button, toast, Tooltip } from '@sd/ui'; import { Icon } from '~/components'; import { useLocale } from '~/hooks'; @@ -11,7 +11,6 @@ export default function DevicesSection() { const { data: node } = useBridgeQuery(['nodeState']); const { t } = useLocale(); - const peers = usePeers(); return (
diff --git a/interface/app/$libraryId/Layout/Sidebar/sections/Peers/index.tsx b/interface/app/$libraryId/Layout/Sidebar/sections/Peers/index.tsx index 5f25e0b2a..2db27a401 100644 --- a/interface/app/$libraryId/Layout/Sidebar/sections/Peers/index.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/sections/Peers/index.tsx @@ -1,5 +1,4 @@ -import { HardwareModel, useBridgeQuery, usePeers } from '@sd/client'; -import { Button, toast, Tooltip } from '@sd/ui'; +import { HardwareModel, usePeers } from '@sd/client'; import { Icon } from '~/components'; import { useLocale } from '~/hooks'; import { hardwareModelToIcon } from '~/util/hardware'; @@ -9,25 +8,33 @@ import Section from '../../SidebarLayout/Section'; export default function PeersSection() { const { t } = useLocale(); - const peers = usePeers(); + const peers = Array.from(usePeers()); return ( -
- {Array.from(peers).map(([id, node]) => ( - - {node.metadata.device_model ? ( - - ) : ( - - )} + Array.from(peers).length > 0 && ( +
+ {Array.from(peers).map(([id, node]) => ( + + {node.metadata.device_model ? ( + + ) : ( + + )} - {node.metadata.name} - - ))} -
+ {node.metadata.name} +
+ ))} +
+ ) ); } diff --git a/interface/app/$libraryId/index.tsx b/interface/app/$libraryId/index.tsx index 3f6e36fd3..e1e9a8a6f 100644 --- a/interface/app/$libraryId/index.tsx +++ b/interface/app/$libraryId/index.tsx @@ -11,8 +11,6 @@ const pageRoutes: RouteObject = { lazy: () => import('./PageLayout'), children: [ { path: 'overview', lazy: () => import('./overview') }, - // { path: 'labels', lazy: () => import('./labels') }, - // { path: 'spaces', lazy: () => import('./spaces') }, { path: 'debug', children: debugRoutes } ] }; @@ -27,6 +25,7 @@ const explorerRoutes: RouteObject[] = [ { path: 'ephemeral/:id', lazy: () => import('./ephemeral') }, { path: 'location/:id', lazy: () => import('./location/$id') }, { path: 'node/:id', lazy: () => import('./node/$id') }, + { path: 'peer/:id', lazy: () => import('./peer/$id') }, { path: 'tag/:id', lazy: () => import('./tag/$id') }, { path: 'network', lazy: () => import('./network') }, { path: 'saved-search/:id', lazy: () => import('./saved-search/$id') } diff --git a/interface/app/$libraryId/peer/$id.tsx b/interface/app/$libraryId/peer/$id.tsx new file mode 100644 index 000000000..b950f8224 --- /dev/null +++ b/interface/app/$libraryId/peer/$id.tsx @@ -0,0 +1,49 @@ +import { HardwareModel, usePeers } from '@sd/client'; +import { NodeIdParamsSchema } from '~/app/route-schemas'; +import { Icon } from '~/components'; +import { useRouteTitle, useZodRouteParams } from '~/hooks'; +import { hardwareModelToIcon } from '~/util/hardware'; + +import { TopBarPortal } from '../TopBar/Portal'; + +export const Component = () => { + const { id: _nodeId } = useZodRouteParams(NodeIdParamsSchema); + // we encode/decode because nodeId has special characters and I'm not willing to change that rn + const nodeId = decodeURIComponent(_nodeId); + + const peers = usePeers(); + + const peer = peers.get(nodeId); + + const title = useRouteTitle(peer?.metadata?.name || 'Peer'); + + return ( +
+ + {title} +
+ } + /> + + {peer?.metadata.device_model && ( +
+ +

{peer?.metadata.name}

+

+ {peer?.metadata.operating_system?.toString()} +

+

{nodeId}

+
+ Drop files here to send with Spacedrop +
+
+ )} + + ); +}; diff --git a/interface/util/hardware.ts b/interface/util/hardware.ts index 3d06e3cb2..a4c37c20e 100644 --- a/interface/util/hardware.ts +++ b/interface/util/hardware.ts @@ -1,5 +1,5 @@ -import * as Icons from '@sd/assets/icons'; -import { getIcon } from '@sd/assets/util'; +// import * as Icons from '@sd/assets/icons'; +// import { getIcon } from '@sd/assets/util'; import { HardwareModel } from '@sd/client'; export function hardwareModelToIcon(hardwareModel: HardwareModel) { @@ -8,6 +8,10 @@ export function hardwareModelToIcon(hardwareModel: HardwareModel) { return 'Laptop'; case 'MacStudio': return 'SilverBox'; + case 'MacMini': + return 'MiniSilverBox'; + case 'Other': + return 'PC'; default: return 'Laptop'; } diff --git a/packages/assets/icons/MiniSilverBox.png b/packages/assets/icons/MiniSilverBox.png new file mode 100644 index 0000000000000000000000000000000000000000..58bcd38da8f7658174b77c305c3a61df09cd772a GIT binary patch literal 12328 zcmd6tWmg+aw}yi|f#OaLf)sZPo)(uW#ogTJsnKy*iNRw09tXq&AS5$SO z%fv+UaecgA=vkT5vUW3;w&6x{GxRqi4~2GejQY_&AFeDW2u-{GR@Ts5?H>XTY3-&p z`MGP(ZhpQJEE*~KU4c%3iHaN`PXGTajF?%JCkTQ_iFMN+f_6{{cH&tF6Z$9f2eJhs zmP-fIb~Odfjeawf%Z*``a6rKM1EnYh;fqZbQO+b3>BiY%-_}x+L|I454pU1;(x23Mx0L(qS>0`z2E!;MGuy}cS3zRa1 z5{8F{O!D&bphc6ahqIMoqF&bkS_9}di4GXnU^Yw{GCP>Wt{H|;Q?1N2$d$1REx@}z zT?HP_luwfBIs~lzF%IhzASXLj^(KN;>a~1Xhtr&TK-{+e#(7Ww);Q=0K%tB+REXYg zJ+`&Kpf=j8y@94kqa=jyCZiwn+ONRUH&pdNPlbwUPBvjI6^+Oo%D>siKV>&+0dr%M zAjc$=(!0lQ!qz;LLWN|p#>U3b(&-77FJ)CO`p(0=cQo!x0giP<*)_E0?-LZ{wMW|F zeN;8?FDg2+@IaS99&%YBZB3BRyDOZvyv_3e+`hnuLFvG7f28Jli9P{ zW!71Bn`!$&(GodAFVmEoE{n}YT24Bti_7+%d&N9-97I60F?ps-%>BumA~_EIqm~WY zd^0Qe->jci-2HP5!;NvN%R9FNTT?^qi^nBJ_IC*LC*Sd0nPqwQ*4l@)AfQ!VSrysf zI&0rNGoW~%dy1i9$w~f#5q$UQV#Vw9xnrYXu)>}XB9^i18F!a66F6}RFNs94r0@4= zVxt3b*1sv--jC?XgxbIqR6zh^C5TO@n8)W|U!jG}&a*#Ch7iN@g>JnIjneV#pORd9 z(ht$__Wwpq)S9^(ZzY5z7i&v|TbB*ta3yAubmdcQV@u|^*?wCbCh>=^)$P9@QawF! zTWt5%;Z?xgefEZQd&Ds&%9(sN7U3(R&MPw1Wxu8E)=xlQA@w@bG3+S2j60zb`9 z$jCp(Lp@FpU7E*^-8#9zoW4rHEG#5Z9>ZCHLfjur<_Hv1-SQObeI9mng|3>JaG3i3 z=9z#kwytMxX4oxH$}0U1lz240YwtBfUml5nnSdDuwj{dZTiguT#Vq^r0`$hO<)$5G zqfkyU`Bp{Q;R{x$wiFgKhErpv&-MI{X;Q1#HZR=*f)0|J_grsF0d8og_WJ`6*s1jE zdlWcu*+BYSpn&I~d=(A`;RQ|bTBH+4Yk;o9Zs%@MLO3{(EO>}{(iAy-7eupQ`}Zw; zHgg=0!tEErO^0|Rlr?)cgaBcu^RsRsf4$B8#O*c8YRg8~1^bhA-Z4M@q`S~gSSnqL z0ok&PV^6-2%E2XO(=~eW_|B1t*!3ocy;-sJEx@Sm=I}Pw`li`Cn_Pe5mtuS7zlo8t7J>fv@8U4C*&=;zIhSyJ1oGVK-zxk7kmLkNa0D=5OE<7qa!j5bze?Dv7`c zAg8ez5-7027}`yY9wjje~=L3@%R=D*eK$Xx+~Yxw10O@d@S<{Ulw z!XiQ{HiB&s{xpk2x^Xj6j4SJ)2)m(6++?X*tgszQapK}&7IWIT;5i$Ia}1YIe?1vT z;rQO)@0{UE%Qx-M*XHhzxBb9YJI{a$iuIbEF`a257zwfpNG|Vg_3^}=pOjT=tZ_Xw z*1+ZJLG0{p9-O~6BQMfSnR5Uo&>6dclpZaZLG?ANEV(QfY~>C*gIo*Vg+M87pMw zQq@_~PgIL>yNUTfQuhQ&BZSi0N4SuRzp9rA1cge`32i*IR(K_({kB*1&>Q`d!#U1! z_Pw6FV};&YYc+fR^Bh%FEFJiKcocD%_KbKu_48YlKAQMAo;FVfV?q{>iZzQZ$>%~I zLv)d~Rh{pofp3b+1)c3IM_tOACifHTeaCNec&#r2GiT&Jyc)I4ZgjOgEOYbk+IxSN2+e;O2b$P!SDoE?GVDlr$Mj>~cFgY``?bHi=o8|7Vl<9rkP50!` zX1mB2jenl@9@RbqutrJ5EnM7oRc_Bjz4$zlWVd>$yn2xt79CQPNlsS>_FyC{8z=^4 z6^8`9KKmH2k(`@UU%45mC5$|EBf^BsOz65jZF!?FDo*{SXg>!++nVpwAq1EAGO1_9 z|HwnB_!hH|hte`NQ{wn;`q>B3>~(Ut5HsrcbYc4zFh`_f53ql?GPZQrRXWJt4ukHE z<-|STYpy0ssoyMlY~uNaJEQlp?=4u!D4&I1q1%54aP&1?KS=>ary8$j zbToYtn_101D}iVYYoO7nJJ*an9ThbmW6sRi@J|{#|8UPXzRxH;5XmJ1$jQ`X`z4xnFSJu|yBDu%F-EQOVDQ%at*_n_;n-(?=lsE+3& z|7n|7OA4K&?7zse%QE4=kC*?(#F5tWL~d5Rp34tsDxZnerzA~0OYd5m=-&3rXuShm zx2LVkE%^Q`O2Cx2^z~gXoiXd11IGK||``P-tK_!^&>$Zp2M9*^w}948sU&JPhJEYAe* zy*&$UA)ZbRZWt8c&B?vq@GLdPE1|hD-v=uTU-)n9^X+AwLPa>RmSaptTC+ zMw$9o*td9~svSX?Y5uG2nR@VW^I@0EW?9E*=W*}?L9)BArb+Enl25#topa`Q%oa6?yO5Rn=k2M>baFFP-`Kj*dYxwY6H;hA+)3+W-Ld}eyN zwrifsw)-F!d)WSF1G|3p7U?@nE2}<5n{kkGU#+jvhRMqH?ocH&8k~#=fulqy!HYot zmz4L41e=^8&M46SXYm$Mf#NvH7_N%xSdWZVKf@=q=+*6JjZ1OLjOB4%*%~rD6iWamb)he_kHP3}vTkkLak_!G6+@01pB&)|U?iR%$#%mqL4OR5)YV1!%yL`a{92<`6A z0!vyqw`WC8vu!t=@(|v%tRh;=ln>uj>hbJFp79;YZ34Kvn%ACk?VxaJ__hKMaE~@I z3|r%n!fV+oy3DU%xDo-^Y`?!6Ma*X{Ur=q*B~$%C!L`T7EBLm2f;*s~WYUuT8SN&ym9s2N{=~AB;eorq2iG9MhYtBXA}zdowx^Iqog5 zc|vU14J%qksH;zD&3n(ozgQEm3Q+l39Zu4IEDgJ7GWX=9@Nl zFMsmt1vz!0j7U2{z(0T8B3&_@2&o%2)7ugQH@vl)1)c@$6pWeKdlB@-;YkXb>ax`A z>eJo;&!qmv3O1jmLS7!Y`EJ&0t|m?IHT?|MEZ3AQZ13)kdGjGIj`__& zEwQk5n^e{^m5LtnwaMqlfZ?+wSVj$A=p&~C(Vh?I-lcXI?vt?VD7;`t7;h3GCOE(& zglk@mXqG;;W+?Ykj~is|RsE-a&kyB_X>8!r=EI8iS!{ouvBZ*zDW(?K-+he&@DI+{ z>pQV{gLAL2ve_tpFP~I_L3FslhV3fE>$pBTjW@LEf{LB4e1>fV6AMYS#aNLCV1T5fiw>wK+z6d@OifBYm4fDO}xG*PN~2y&u#=4(5l zGPzb@zeaVa8OHv-pG}#xyE!QlO;F?g({ySad-{wua$r<);iFeC6y4>b5!-4r-xukT zpk8?lpZ7RE3Z;y#Y@{QERBnXrTR}2DGr9tZ!^E7VHN;ZhRH0DM?|E-k)YdFQSXO)2 zE|=6ZrxI(+?F0H!JW<)D=*g*|{IRaEI9GE7%Y#41JYZL!N{ z{)n~|AxYhSZX<%$PyADl%c(CS%>n-;WOz)4I9z@=FW?2Nl1QA`eS8hnRc za)!J`ZNg3Oyx-H)Q_LAaX{MCDM;C#V{#AnfBVdRi-t&IHh{~+EX4-DFY}-kLL(DZ# z#ma+(v+0y30vm1@j~dP$9Z?61LAiC*!cDWQ-z-JCn&g0HS_<)c-@oX=UnFUH#rI1* zQa=I~f6uxhH{rVD!tmFfHV|r|39UalarIf za5xc;WPCs8pVA~=YoAeZNfnc=jLkW|T8Pt+@H1AfB;P^bc0AVu9gO~R75&mZO07oZ z-U=VJ(KYx|z^(+yGsbvx6Gs*Tp@PKH+ODMoMs%*yfP0H5Ydu}2NqU6}g(>?;lwtUE z^{8v|IJK?Jo&MEP(1OaLbY?qX&w&AX2`p(M}M(oQ8Zgq-QblNRYMLm$nw_e=cF^cf=8;Z#)sdj1aPdq!_pGof2$ zC}9@!I1RqsLu%ZznXBsbeUH}OQ*FQMo6JXK*eFyvg+^K$C0)Cvo2yE+1Qz}rK_OPK^1Z1Gns1;#%}EG<8d_S&ZuPpJACAXc<=bm@*=^6v1PBBs?8{AUZRJ+O7I+K#_!Uk) z9w+c4p6)=rpye7F^$+j&$ASTUqs1=zDgTP`q^8)oIj;yBJ|}&N{Suv%3`Lg8+6=~KLkgUhG-X2 zP3o&oG&FdUTSkKetbw_(+}A|2HSn}!5oN~q`Rw)b3XCdq^dl(gjmGx;rsV{#lOBqW9?PVKMQSOUf5oEqF`fs~4|6~p6>V4+qNBSXGt>IxO)(u`KK`B8&$2~3$H9?) z47&m`@K4a6d$VShZSU;YToXa?hFK?~+53V8bMk4MBK@|yHMoXnNP*pE{v6e2@j6g( z(m_h`)=BglFqlXJ`wsiBfqG3G`1M6Sij(PkyuJr8e0el zEg3Pvp$kG~X%#)SkT*S?qQhH($n^?BH-P~}?ftQIVL_F2!L4S*P7l{)$8siL`y_PbRIe^gXn#3LyzDmt>rqZkY;`S&TA3liuzJmWh=o`z#jhP^vVD&Mp41rU}m~|Rs9XYF1<^% zdCqH!e9!G3JFlc5m+Jb%_sS`E{?nzJi$mj{s+}sINkqxI3A=5V8pl(`Eh?e?GDuZ1 zOsrj}&0~3d;W{J@{Coi`uTC{Nh?9eK3_liZlelG>m*;Z9&0(h8{MpgYW$aB`ucAf8 z!6rTtDknM>Zhr_9G^iG{lJwMG2_=BmQHnj@NqPF$&}`?u@0}Yph^h#J`b)z;cJRpW zg{nGkJJq`$&ft0hGOe*&y#e6sSPoJDgo{LSmbop_-pKqr67OI_SBF8|4YuRpva^A@A$EY`!olUQgrDRCnt+FR;%@NvIP z*BFR16Dh`4MyYh@jkU_02^eqF zWtNG4Z-19?`FgAN(dU!T%ws;s4}i$clCuDI{xOFI&r*s|5n*oTwSj_lS5n2hING%% zh|R-nN@vLhK%?-cJJV6*ST;b5engLx(c{)g|^}}~r13JT(y2kUR3Y9P#g-FmaQ%dp~|=<-xvK&ojSPK?z7&K=2o?Epu^1DM>fgWY+orqJ|%ngG$Ev2oZ^+s z;Jqetd?G5Ou{o4%tYG=qhzSh{IaV;gA%b3&-Atn{;rR6p7q$z&IM5VZoF`8w$=o9= zmLItl+~L%d)Nq#YaTC>=A6Ez=O^##$>L81<!Ebti2^=MFj20^GyJY#EdNr9KG&{Ug`4v?~UgAi*x#kJ>$y z{7p(+F3CukBVy?>OamSs{>bzm@Q8s+GkhEr27=qs@-Hd^xT(xyvhC4-j_N_qJ41iA z#~%P~7}*8I`jmsQG^owG);CDC)B`}8AHf%NzZgjP>%6-yD6oX&JNOifF@rTDnzxAT z@GQjK44_YlrX>5QCi!PY6R-YJg0NJwM-APMPlGwrmM3^$qeLlSw;Pe4UvIN?k-`#& zhW0@$dR(smZjEk8coSRtlbT71o8HfD7qkHX-6b`9z&YDyfk8coGNbg+p38p6CR*}$ zSrQkAB$|K5n;h_Ky_I_V>Y|JSM4iWSuF**otlik@J8p5lUo7+eK{HCEJLigltN+L7 zK(${hVCQmsVfx7a_^7_lSQ&<-*a4Snrm&f7NW#>fqrIy4dy&V%`B|h-wB4E~^w5>V z%$a>-=GcYM@$UY8_hl9z=98*g{CEQ&-TD@cVsWd$5RNv5{>vvQ>F6RY(-K&{|1FdW zWIC$KJS0hvqkl$8nc%2TY=!u&i;K}8Lo?{Gwo|)`RrvV%EF_se{b~DMxe6CQhpkb! zlL6s_qKP^3_NP8}H>45j%}Jb5iGN>Z16P>GdO&uNzz4XER>OdA8cqX~pzp@Jqt$02 z1;x?ExdJ8yT$_f;Syqu(*evAvMWR4N$88y4d$ypvq)COCW-~9YNvF|gJolxg( zCplRsuen=avfM}GTUr1S#XiyzQWTL5jUji>uhClJO4H>Nv=I=?J1Y9IozG^|o&S97 z{i#xR@N6koPAJzXdwpF-x!M=CwL-ocxNF=x5PP)K*GF!Si30L4I)n!r9~sU!O4Q@Ep75#BWlU`mGl(d@KIB;x!;O~;mQ>$k zJ;bea`XF5diYOVMLHPM1Zm}lGopEgc)wMHzL1TzHMQ)`J#+x{%d@$JVP3mxN3(}oK z`L(MHEUd`c(XaGqoxn>=+&~d8&zOlUG#V6&ckvl$Xw9!5*&R|?Ji*ezXpu3~Pvzoc zG`ZFS2mtp)_TF0n-jTn1EeRM{>9G8`CBwS8^$%Wz>sK31wA8B!-FIEl-`hrAw3Tp- z+z+Gk73e36j>ei=dFtYRKC4*uIW6xS%;aCi^p8ADUK-!_0hn!6$r+>YR;Af&)pu4` zjNeo6r5oMbb>8Z+02UU#w%1*fB^_i{woq9F9G#GN()8)K*=fMO*#Cj%{7yI~8l6k| z&%=e?j27o5*3vm1mP$}hE~DWN_pf?0J8;ft%=a5>Io)nSb>>fS&1Veg6zJfjAW2_t z>V`N_U#UtHNvGbXQ)>1W`PjH0pH7e$dcI4fu1=>@<5@>XGls>Od?b{S6vOuH>QLMN zxh;)Ea!lj4{71#+CEMqE1x>lR=MTtYK}!g?(|O=-yN}O2jsOIc!uzysHhXbDaX}|3 zf*_^U@P4WPbx!t02N}Kd_lrcYr+R+1Uboc7yruECka5Ia(>@Zu;>)mKsAb|OY7}HX z^`-l_cavcl!roJ+^`}dKf@r`bhHik$*1ag^gHHX9!3L>YB=~ED8 z%Hj-uLxXkWTiYM<4`Hvqbsq4V)3@_qLvX|MK5X`Fbts!eNAVodW)wxC+@DwYaPacR zk8Lejd-DVh824i%KUK}{Z6tZ_>yr#T zuSbX&`wTc?o=dmCC*_mahTV@BT<;kO;Pi=ME47ZGa|kUo-?lJ?5&z|LJBM1cd(3&P z@RP?b;sy;n#}hU&enzQzaNXO}A_AH30IkU0Vrp3y&pp&SRwN4gH;@nDrMxC;M+~&B zW%6tAY$CZGHPg})AWtBcwG3T2yp_cKo%$so%xA8_o-Wkoq0e=G&zVW7!#lz2j}+WU ziJQzjxfa%gH^u5ei-vm2jDQz&NUjkBnQUKwKN%&X@l|etJUi@YqV$B9M9UE_LpBFD zVkx%^1`JYD*v=0-=rmHCfM^}Lb(e_A_`7N9EK|MJm&_)w$Q2i@K_s>@RJVX2A+J9d z6h$=evL+ovAA0v?x;ZQ{qPZ%$vqI1(`)Q2t_tztzBxb&at<@C9czyrlg>{!G7rdVL<+zVKeMuc2&iNGA)@c^~?3 zPrifitHYKFn=O<5f|LDv+)8hI!Nh=v$3F_t^3Cv1pDyTwK(2_ypRodT&ETk^tK1^Z z6!<1(q5k8>9@0fwUif&HCp=_JTpd~HM{AaFO+S`6Ox^|Ft(R-gIvG!}Mu--vU}f^O zo7sP5c|Vq^$Bx(!K=Eowjhw~3pyTZ?VX1^w+lGQK^dr|WeZcW@)7fm>2c?ynE6uKl z!LMH!tW>2P9gX$lu0|>U%Jq`-Vp6-$re|`yp%~A2e&;ygpqlyGL=cg1@yF2QmYQPa z>P>cFo+ugj-cjg`Lg=!fsDb%`%jPcK9VN7f{d?iX>lgZs)#7&CCxTDoVLQtYr1Qml zzrJ@cU8+nek)mB=7EOcPE6A#_sEmoe!N3(VROV3s!l)63*K<#g54#jh`gQ}lbvE+{ zk*oFa4PmpPtBLoK>#&QNj=4FDoN3j~mdEGTotsq@a;71A>wBK#B2B83MZgwE|I~oM z*gU=+vf%N)mw&|}l4RJdm9Ge;;wl3-rdQZ?)F}nW@`_JoS7%UIoH_pS^5c?bEUhR4 z_UZXxsmU3bw)*csENv@yNN$=Tyx49JZDV|eN|(;*}q;=lodeceiZo9Iy-4;3;pwmsdB5QwNiOt$funY|L!Dfn$0e% zaf+biVlR0&yfH|(r3%Kds&9&)!KPX<;?=Y1O2xBkw8+MOF?zTcb%F5=vj~g?w^xUa z5%`LzCgcSd1E_k#IQsCw#|w2BncfE!0^Ya9gqbB-#~d)T~> za~67@P*@SHgm$iz^{0gY=?g%?NHvo#Hf8A9p+Y95GSjo7G=k^89~?Dkvg&4(h3q24 zZ<#&f>HXjtaO~&=&?c_szC{u zU}!!eGXLSlVbau{=)+(-GfhRWky(-c)#$Ih3~?FYZ_A2A;rjS~iRHumo}DzONVTd}d>zvNcVg zOZs#VRa=x(yl}D<(mXbB?r*K(YU2Z!?|P9wdIr{hE&rLBRHo+uo>5XQIm|mq4i!q2 z`|}3eXK8gXcH{dSzdJks6XT@S{i#<#7sMrCDspb}B$(m>Jh5MYqo9#f{B(p+Qw~=#a-e2& zFLSjw74j$Bf7f|&35EAJ$x8MQ5r*_&+7>S5fB!&M2bN9`ywUYI3%2x_UQ%bRFf$@y z>wHKiD|CgTJFH_TK^v3oIrMhA9JB6N-T6UmMPb|JAiQw`1F4>n7{2Y3Z4vxRmPm6l ziE4qiOw}gJM;1uE+*HQGM3J-Y$zs$SH6IGRw)8Ts>WaMjPt$Qp!-so=CN7rOM{yr( z_lt0)l#^GPE`$Rl4SAk}*J~`fF?fv`TAC|t(-p4Vy^RAykp+A9OgBfyh22kvzEtR@ zh(2CU;z>;v!-29<+B~y8RNQzx{Q`}7FQ%N~KbF*_Wf@Ms!LGhcI=XEK6+xl-0(-3M zg0xs3F;Jtgq^o?tBV%i3Qxm!m%bAq@Gryp}3A56f|L|6k_E&7d>U8A!tZHK=`)KSz z&q3E>(8m4wt6G(ZxmvbNr{f$@G>&q?g-a9P#RV5z8#}iz{%2A@B{q@ogXi+&_Gn8> zqe2$^WLKx;5}6XR{9SyOY(-He#SveoB3+C6wxDN4=Go@q7MK}V&o$% zho<0tG|F41f;#J2v(RrxW_lm&lgs|DGXHxz_)bEnn*?^2+K_9jw zuf*@ald3a1>?cIp8!QK{Tz?#xfsX=aTWb)%24gMOuX?M7mS-yzZ64r4W1?iF=|ny; zb_Ng_#Ar%?@+2~bp`7pP+H^f`a-{25UdUd(3nlugp~zce5UShz>VK8iJGm-dRVR&0 z6z#~H=3ZgbPq6W@(3urbANG8uqoIA3=^&}FWoTEG#dvP${`({OfkH3qWI1NU3JVu1 z9~)a3)yl5$fLlrLFw`AOH3`G!`f7bjvNRuB=jHV-=l z=kdTrSCFkjhf}z3Zg*Ym2aH2I1|g(awl+Umj~)SO#(IoU^^7R(pGJ4EM-IG|{@u+A z-u5KV7;=mYsl!PN58GQ1zZ@@rcedM|e?0 z6Ea90j#^U1T);WX+&=9ujfx?EW~;)gqN5}C6e9M~$awMf)4X}M!*9;0si?X)J=a9Ne;30$=6_sv6#q`fzhE?a^Ytt> z3@)NLUl0AE`s0gwTY1(e^Na3i^eQ$ju)eZLkz1#88PPP-q5S1H@|B{;R1O1HpkG8q&s^`um4op~iY~JI-mR~oo~fH6n|z9OL>X^w3w0f8QC%i# z4m9nSluCAGY_}G$bW;{m1oi*rmiq}6D$$t906cv2WsYRv-$V`KZCN_NEn8nw@10?> zZxyv1X)yxe9^Ol}I1Tni9KP%$!m@gl)N*g{Z$)t-IZD0TP{IwE`u4csbY8`gzNNbB zk;WbDyol7b4^&7v>e);}kmysv$g=96swu(zuFWdx zCs(+KZ#w#39Q&1-#FCMPnNeqJ@)yuA>6ysH=33X|DR$cJ-ixi{lEHa>PrI>LzC`v* nuRcc~wJX&BQ^UGFl3 literal 0 HcmV?d00001 diff --git a/packages/assets/icons/Mobile-Android.png b/packages/assets/icons/Mobile-Android.png new file mode 100644 index 0000000000000000000000000000000000000000..14100d02510902df0312c2c77b3a6c6c79701e64 GIT binary patch literal 20271 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