From 9a3c41bc6e75ab68e58b3928a4a651242b867dd0 Mon Sep 17 00:00:00 2001 From: Nate Kelley Date: Tue, 7 Oct 2025 11:17:19 -0600 Subject: [PATCH] motion blur image --- .../assets/png/skeleton-screenshot-chat.png | Bin 1471 -> 8934 bytes .../png/skeleton-screenshot-dashbaord.png | Bin 1539 -> 0 bytes .../png/skeleton-screenshot-dashboard.png | Bin 0 -> 5654 bytes .../assets/png/skeleton-screenshot-metric.png | Bin 1031 -> 4090 bytes .../assets/png/skeleton-screenshot-report.png | Bin 2442 -> 5344 bytes .../GlobalSearchSecondaryContent.stories.tsx | 7 ++ .../GlobalSearchSecondaryContent.tsx | 64 ++++++++++++------ 7 files changed, 52 insertions(+), 19 deletions(-) delete mode 100644 apps/web/src/assets/png/skeleton-screenshot-dashbaord.png create mode 100644 apps/web/src/assets/png/skeleton-screenshot-dashboard.png diff --git a/apps/web/src/assets/png/skeleton-screenshot-chat.png b/apps/web/src/assets/png/skeleton-screenshot-chat.png index 52cc8ab965855c78d2b6a40a30b387545540bf7f..8353af44365dc8af08a500c81d7fbc43b5039598 100644 GIT binary patch literal 8934 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 Xbe@3vW7MzE2Qofjw!dJX)A@e@yGMXT literal 1471 zcmeAS@N?(olHy`uVBq!ia0y~yU}OcdFLAH|N#|QvHvuWm0*}aI1_o|n5N2eUHAey{ z$XFcY?!>U}oXkrghb7(7*O7r?V?XzwM4)!o5KkA!kP61PcYX7M!x`EhCaZ5tUe2P$ zW{@yp&4O5_SkIe`N$fz{F;Vp{lQoC4gu>EHrP~{mzt7v^@mC^NIdW6&eD@-!9-B>n zp3R#-=eG9$oqP7wTzdaKzW?~+>CFcpq%!i|s@l76*7@i1X`65U?(Xg`kDveks=lwl zx!Dqbetvm*`Sat)kC{r2pFQilbMM~T-+z97Hvjs(U8CmLmzSSzZccyB`eMn`qDZ^? ze}BFm?H13kIvaXu^)vbU9Zn5-yLatc)i3{h`SRuKSs5*?tykZV`#Rh6=zQ)Am1mut zCHdOzzj7b=-@zo{!pO0RfhCZkNrS;rq(OnpL4Z|Z%f0)1cI?*v{BzF*U3Yi)RGXP1 zyB61qh;_H`U$Q9rRka@1-J~BVnlfZt#>N-+`eF0x zmio2VU$?W%XcYq;)cQW*#R0`^+vNpDa<}hZdm%5|$;7_4R3u9vOQPZMvv7NeCt9u* zbA7&fCiC0|)R5t~W#w z+&LmQLS8>~-W!xqU$Os3+%s78fqb~$ZpO)b`iC#BIPe`9H;Wf5Z(r2TXHWx;<_lGR ziG}6qvyId6nFbkXwdw@6>V_x%ryWyd}y z1Z-RQx9?cm8>3C$e0=jBG7FeRO`7AkyfshKWcrH7Czo81mDcrK7q%K0?|U^DUC?dg z2PY;uyDM{p+xYJqOYm{uy=2Ap)sD&DrYfZ2a2jeF0w%nilKr2mE(e+Gwf?>I`m3B= z?$$o1yF0#o|GHJg(}()AQE@0oR2{U-m4Kd$BPwH80HL z*GcW?U@i&fJv3cE-tJ7=W?*@9@B058d-mAK_qy%xJ^nbp{cz&T@5OwZDi0p+Zu}c; ze}3{wm3gb@KR=pOc-2SoPnMJwPzY$0sw%Z0h&ru&ew1#C|rL W!oi-s3QoZCmci52&t;ucLK6U(G)jX2 diff --git a/apps/web/src/assets/png/skeleton-screenshot-dashbaord.png b/apps/web/src/assets/png/skeleton-screenshot-dashbaord.png deleted file mode 100644 index b07d4223763ba37db4e21c82b398cfd2f14beb75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1539 zcmeAS@N?(olHy`uVBq!ia0y~yU}OWb?{k1ik>c8XAjMhW5n0T@z%2~Ij105pNB{*H zi-X*q7}lMWc?smOq&xaLGB9lH=l+w(%D})n!_&nvq=ND7-B`b9cjn^{H!?Q!vM4>Z zOJu+66#ikKb;jf}xyvfL)} z^2~?J6*W0kPvg&>KY#zt+qbpWGJOB*M$T+xhRe9Z%`f51*c%{;bEvdc$w} z^yy!}rEV{(sNQe#BF^fM64!>ie*XTaFJ8R({cGL&bz*UQt4i<5Y8)ury>qAL`}_Ot zS8KQFvo$+1{#eZ#f5qTN4$Hg0SDS)e8JY|j93>hQcpL=S6gZd#%A)7h6xYU1JDqy7 zjGdi5b;JJngkaOwhwt94`|!L{fX!^?bRnqHS>GgHvFp4sp0eq=b9&B>Wd=Qb{M;LU z?wJBIbK%RSM@p=8xvP0>ioaU3^R*p5ROOqvL$;qgr>UxOmcB;R`I(GBbq7m%a^}XZ zf1Y|IeMcW7$0kmeM06+3T9-WIY})tv(<9b~wLV{8cl+xueqmp=$wqJUj{W+%TD*kU zeetDF;csV$@l3uQEu7lybM4Qg>&eHeimw#r{AEZ9miXh_d3LiNPtLS!hFgy_VA{~a z$Z=@63AZdW_)@j^P+Db%Pw(evFTdZu#^8J2PJ)kn_TvW+5^^PazCK&=c<24z((b#{ z)Zf28^|M5j1I1ayi`+VAVo!Lf4Zx0=Kd}f#D z?+HI^^tgCm?VRPioZrsuZD04H$39Z^<+BeZ2*~B%-5J&CWc>Nv%c%1U&$@%s?r@Ao zw8U!Cy72mI(Rs`6Uw;(#ckW#F{@MNg*R9@za&1LPNZ#?so1)foy}s%wAuDJ1<3>XL zejTxHqxt8#=WpM>J)EuiU~@k(vuxV4(@=3W4@d}cTUf~?$3{Fs~9Ev zkK32}?ua*>^0MUD*{@%}x-xFNcJ=C2*YB?$wpab1?|mFp2+GLI|F0`5`m`)=Jws0W zuBjg$9&Yc>+xj6jR`*JBp>L*m$9nh07ytkI`!AExENc7Bh;YvRrH((o-ar1IA=1Ro V_u8sMmB2Ea!PC{xWt~$(69CPXUF-k= diff --git a/apps/web/src/assets/png/skeleton-screenshot-dashboard.png b/apps/web/src/assets/png/skeleton-screenshot-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..ed01430d807b3678367f4e9132a6f583dc85527e GIT binary patch literal 5654 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 literal 1031 zcmeAS@N?(olHy`uVBq!ia0y~yU}OcdFLAH|N#|QvHvuWm0*}aI1_o|n5N2eUHAey{ z$XFcY?!>U}oXkrghb7(7*O7r?V?XzwM4)!&Ii4<#Ar*{o?;gxlPM2tS7$4=nriY(x zKJRP3OHNvzUN`tAtyR!nGFe4-3G?%$4+q;5W^YyH*1YC)XrFmDzv8`0Ie|-wZI&GO z{Ee0W&gxAM4-dE3n|}KH=9_Oy7$$GNoA-au-o1Yd3JX7;e)H?sujiXLZ~pG??#?`8 z-S6MO3yX_C->umg@kfEr#x8X0}%^x2hIto0PdLwW9{I(wp`MM7MQ#kPYqpI^AQ;=qk zKn9pOqfAJ64(f1tv_Rub+GfT*a-V-bEdIa1cG~gd@g)Ke_HUPelt2A+;flr1W^p=V z^W_d)KYfE8f6R9L%-b%_@PCHAo!!4}ck|c{a%Z1STXX&O{q*V6r@t5LKDvJS^5yT> zOl7#dC2H-lyLa!lfByV={=ZnSmzI3@?d<3BC3OAUv17-N?EjDQ!*i1(oD#C-f%%rf M)78&qol`;+03K;fY5)KL diff --git a/apps/web/src/assets/png/skeleton-screenshot-report.png b/apps/web/src/assets/png/skeleton-screenshot-report.png index 8d99c22f1a773cb22920b501da4702f00c1508e7..d9ac5f3037ba3f1cc173bee28d7d1c9c442f34f5 100644 GIT binary patch literal 5344 zcmeHLX;hO}8omJq1X)h?s6a$f3N3q;RW@6YRW?Odf!LN!)=&~cl*M8bI~ZxDfM^i` zS%iTwQUL>j&`f0zAwqxvF_7S(kjPHL9_GgBuQ~0pGp){_{z!6ib93)|pZ9&A=lSl} zULH=0@@nz`07VyPhf@GZD*+&tBqsw$ny)5>z>ggX&H-NlplKm_Ax`9dgo1;JFHSjq z0&07ZQ}D~Sh>zVr2HOZd0u-o*)>eMg&Q%>Ir6}v6(@WHKnKDvK7h*sbEV%+v{M%TobYadLJiZC*|@^UF6}J&SBp`)h2Y*`nm?0lv%f3Qs5nz)mK*(Yo5roUnDeQT$^5 zc?Tn{TPJdK`Ricg4L7DqQL=JTf1^{W_b`VOOm4pN0RS{(gZ!=|MU1Y2fdPE#bhF_h z@zD0avt}19Keb3|pS!C-AXA9hB9Z8EdwV?wY_oS~>Cp29nY)yr$You<>cZ90~fKvFr zs3`v>qlmSr8Al?v$r16mQ+pM+f=YQgp0*!8pKpR&vd@{_$~};_Qv8UX%$lEDt1D}3 zLY}gzC=RlzdU^B;%}Jhu!AVX-iAX z4_Wm}V}r}o+vv#>-m;MIQi1@WflWM+*3`QBqcB!=aFFK}p-ve%+za>h5iWhzQ!4OX zu|!g?uQUekCK8EowL2lf4@Lnc`YVQj-7TE(D;g|OffYt0`H@3%_Zo%tf3aVKrAlP* ztvF=3JdO#G?xr(F;u?5G{By1tIM#$_?uccJYkMrLM>rei?&7}rlGpJT8hSrnA!JM!xk5h47w@Ov?npq zt>y*0ff*YYPX-CgB-d;aWp7S-)Z&08Mmlf@*vx&YS7c7>>=&WwE95e^()qyj+c5B@V@IMCuW}2qSggEc z@nea0P060tGz0CNuiF#>%FD6L34=<)CHd^hIuT%yzkO0{NGTxnRw0H5&f4%fm3n^~7S8ZQn5CT^#M#(qakWK% zPuBhP1h0kwGEp}eD=BJwzm6Jq+U1jE9(PU)fEjtopo-j^8)4L*X%cozsHOyWf|P3C z*xam#bj{YzaTykjpJS)*fPt_gO?1~~Wy9DcR|emx-3ZPjbX)#ve^EovOg(~WgTZRW zM%%5EM(Moqjg}|j^*+`N&ghGUx zXk~n`DK?CMQonL2wHpI#sRCq>kqj{mc(``yKWAj@a~V5_zN# z-VC~diKIZ^>NAKTvsiXsr&x?v1op5Ro){W+t*)jZhQcwjk9#-Q%c5>d0s8@gVQrTo z5;SlUAD(5jNYTE5&7#C>>p_`@ZnlIflvM$co3Facu+2p7GyREWPNT;q5e89KnO$;8&zUtmK>pm)e< zzH=?8aq}tu*Zb)|K&fOU42jrSX^>#vj}|m!2VdBn(OF-Iwt^66t&txK&#y*uoDgTq zPC$`_FhExL#>D+JwmGsAwlHhm^Nzz3dSR(O#3j5pou$i<>{Ne>$R~qRfa&$c%)pZP_omh4FH+j~GHPX58BYU13&j zc)jFndkU2IIl+=C0ej%h0{2#(-rMA+cWzt%JPhQEKZd&hUr!!?rtr@czJmwccT;91 zYD$b3iz!g)aBPg8bu}-c#b5vR1AhpSe*VE4Gsa90raQiwLeULAx)EB4UWtPSd@3mr zj>h#nR@OXSZ6MIiIf)n1Xm82b_l1QV>y3ugjg@({xp1ziqN2jw6s{lh5Fck>h>pDZ zLNKz^JpZ%Jaz}b+rwjb0a+iXs2E}9Lek)apSbMN_+IOr4FRW@Zfjh@Ej%+guZEY!t z#rcjcugN69t0_CmO^Y<~h9u|)R<@nk-;WU&u3p9BdAXH5vbVW5^;6bf$(4(3M@L85 zXl-$HrcpfnUDU0E*_y+oeq!_aJr8#nD!bItemX-Cxw6)s9zB+pxO~}&ze^xHP$26U zC;Eqxk8mrp9BKGkqry0p&mY}+3 zv??W=5gQU`bW$u%D>$hwFrvh=7lI`AZ3UASZPAZTwz)pJu#mW4fz|F6 zFSFSZw@Jk3G={FNEXxzCvWP?uzh01mOI#GIDYcnu^BO)D+{V z>$Vyc2wO9Qp%p0H=2qSq_t+s@YKR7gH+Kg@lG%U4p87ezK5n(va8_L*el0yvIV${z TmDA800N`@M!=d&Q)R+GP9MPgG literal 2442 zcmeH}i&N8A7RP@9B^ZjqZA2uPU|p?pC4m)drA-M?UG`kT3P=bZbych32q z&pmT*_~JZGVU{oe08G7(dz=CQ$XalC8ykV1w${52;I!`Y@t`;WF!@wJAV5i(1?Yst zo$_=8>bk6EL1Rtyk&{ON;9ic2HXPi(4(;V}-_!+oj_}E=*2MRcsN^lw&d^ z5=mO_$UCrLK%}$os5GmB7km$=V%%Zx=$(>?z~o|n7^n4qX&Ey#JzO+Bzi(HO+IG$n zQ>xqX@ah2+cWnMrs*v~qGGYxoTy&68<&`=6*GLyEmYfrsZ1=Ss-^rv5O2)}8bAx4j zw}vI4=?Nip;x`60xx6O%YqfI8rqc#Ef=B^(o2|9JZeTWVl|F2^_rghsdJKko;=bEu zdTcDkxcyO*VEpRU1dh2AL>4vQv_eO|dSQK2L1n0Twop7aj)TY`k9RSoVwp<)d19hs zn3UK!iz7`w?!B35?+BwDwd-yQt`@R#t23bi$pTgQ%rp05bv~ugk=x;k$L?qOj^8-{ z=~Gt~ZTudQ-?;_TFPf#fUteKp8T7!ZQ73QPNjFPWv4yMsb^$+@tQd^;!n_A}76H}GE&l+fw4S2E<`?pLz zAjTEI8b6>7O7;>Br=4N@+9Ek(oBqEYo3?48mmt$+wJ#k5?E@@!nLX-NOw9V56cJxA zdTB7$q+Nlt_yXC-N4%m?sp_-0_}o61eNDg8vvbUvQr^bHHaE9@4y)NeZ3Bd#L!7T` zp~2+uI;}7vhbkY7OA|3|q-mRwg&#u#7j%y8ykZx&Z_~DD=CG^GHJ!H&Qd8F`)~TLx zl!&>5aPb_h;@pIc;ttB3fbqG5nfq>XPn>DX+zJtKDK-j_bvIcVqbZe_H#z)NRHHW7 zQ6Ld5uFtI=*2wH(8`B&)1di$puK@RxY2q{|G^ejjv@iMyadW@;vt_BJ$p;C(-T7Y( zfXXnBg}2k=3ew)JE{kWI8ouA9#HM!FHXA`*T(UK@@xtS8ysM>yUEST1O8;`T_gszd zc-cHhNs8QPBnb$o(3TDU6Ds|I=n-dz<}oDeibRUUo@V=1weJ&3uNa!Mu@>>X13%04 z)kwp!e0^R)%-I>Hp$p2Hc-)=xpOqk`Mm2ldp?W%<32Zyd^@Tdx-yJ&dN}O6WddHb> zpoyY0FuxSZW{f_MmoW%>F!R>@lC{+)=mW~ip1QuWTK|-RSHU~XelPkT8PCKs+lHtk zW6lj5&3{~vAHq7#EZ)x7$5GlWe;9+W8qObyLVSYO-;kO3cfQdG3rx$@#U(nEEC&Tv zWhUO|ic<$D{>PRln1WA9m8O{nQonk zAT4XMe|f2PUYmEce)#t#*^V1%6UG`8G8ejAK?6mue$&KYuEi!ZZ0 zuvtn>dyoD!ay?N>nWeqeFf6v^o%i z^#9`7^=DC2&GsXaOan8ZFe>%Yxv0BfBz!o^&Lqn}Yp6U) z@$_wZ&)54Ay8}Y=6Rt&F!hL|Hgn@6^lexZ90_|MV1m>X%Gd9$lZA`2D-feaAF_(+1 z=Y=d7-ceFu^M@~^;a4_yuHxA(r>YvOc;j8u(M*FAt>Uh?c5Gmc3@o79IsGit0Da+k z?d!@O&}b#TOd0rvj{b<&nZ<(0FHYC4!nvDYzkb4jh~ zNx7(dAfr&{a>3#psr;V=TbP_?@hc`DTHfx9vPIIZQi`@9qH#hwyEyOu=7%!MPZ|>2 zbpdVlP}%V>zBn2=|sn5J0F1QH3Al|aE@3qRptgI{}S6rWM z+ST~@#f2ESF2SM4$ue7~o*SqpgzRmRp4w!{AqXxdYZXFxpS89+Owyn>Sr3N`ke?X6 zFG_kcI5G>nP5n&W-r(zX97& B1-bwL diff --git a/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.stories.tsx b/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.stories.tsx index 75971a6ba..1219e7cf9 100644 --- a/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.stories.tsx +++ b/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.stories.tsx @@ -57,4 +57,11 @@ export const Default: Story = { args: { selectedItem: mockSearchTextData, }, + decorators: [ + (Story) => ( +
+ +
+ ), + ], }; diff --git a/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.tsx b/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.tsx index d8570e96a..3fb56ef77 100644 --- a/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.tsx +++ b/apps/web/src/components/features/search/GlobalSearchModal/GlobalSearchSecondaryContent.tsx @@ -1,9 +1,12 @@ import type { SearchTextData } from '@buster/server-shared/search'; +import { motion } from 'framer-motion'; import type React from 'react'; +import { useState } from 'react'; import SkeletonSearchChat from '@/assets/png/skeleton-screenshot-chat.png'; -import SkeletonSearchDashboard from '@/assets/png/skeleton-screenshot-dashbaord.png'; +import SkeletonSearchDashboard from '@/assets/png/skeleton-screenshot-dashboard.png'; import SkeletonSearchMetric from '@/assets/png/skeleton-screenshot-metric.png'; import SkeletonSearchReport from '@/assets/png/skeleton-screenshot-report.png'; +import { CircleSpinnerLoader } from '@/components/ui/loaders'; export type GlobalSearchSecondaryContentProps = { selectedItem: SearchTextData; @@ -22,7 +25,7 @@ export const GlobalSearchSecondaryContent: React.FC @@ -37,33 +40,56 @@ const ScreenshotImage = ({ screenshotUrl: string | null | undefined; assetType: SearchTextData['assetType']; }) => { - let imageUrl = screenshotUrl; - if (!imageUrl) { - if (assetType === 'chat') { - imageUrl = SkeletonSearchChat; - } else if (assetType === 'metric_file') { - imageUrl = SkeletonSearchMetric; - } else if (assetType === 'dashboard_file') { - imageUrl = SkeletonSearchDashboard; - } else if (assetType === 'report_file') { - imageUrl = SkeletonSearchReport; - } else if (assetType === 'collection') { - imageUrl = SkeletonSearchMetric; - } else { - const _exhaustiveCheck: never = assetType; - } + const [isLoaded, setIsLoaded] = useState(false); + const [hasError, setHasError] = useState(false); + + let fallbackImageUrl = ''; + if (assetType === 'chat') { + fallbackImageUrl = SkeletonSearchChat; + } else if (assetType === 'metric_file') { + fallbackImageUrl = SkeletonSearchMetric; + } else if (assetType === 'dashboard_file') { + fallbackImageUrl = SkeletonSearchDashboard; + } else if (assetType === 'report_file') { + fallbackImageUrl = SkeletonSearchReport; + } else if (assetType === 'collection') { + fallbackImageUrl = SkeletonSearchMetric; + } else { + const _exhaustiveCheck: never = assetType; } + const imageUrl = hasError || !screenshotUrl ? fallbackImageUrl : screenshotUrl; + return (
- Screenshot + + + + setIsLoaded(true)} + onError={() => { + setHasError(true); + setIsLoaded(true); + }} + />
); };