From 0b3fc76226cf09f3b3a06762d0c2045b2217ca75 Mon Sep 17 00:00:00 2001 From: Aamir Azad Date: Sat, 6 Jul 2024 14:41:41 -0400 Subject: [PATCH] feat: dd whishper table to show data --- bun.lockb | Bin 258644 -> 259476 bytes package.json | 1 + src/app/whishper/page.tsx | 123 +++++++++++++++++++++++++++----- src/components/audio-viewer.tsx | 8 +++ src/components/ui/table.tsx | 117 ++++++++++++++++++++++++++++++ src/types/index.ts | 17 +++++ 6 files changed, 248 insertions(+), 18 deletions(-) create mode 100644 src/components/audio-viewer.tsx create mode 100644 src/components/ui/table.tsx diff --git a/bun.lockb b/bun.lockb index b7d0b14317e000c7ce9f1f97319d2033765572f0..89a38a0c340affafcc919df670593c6cc217b3e9 100755 GIT binary patch delta 47217 zcmeFacYIXE_ddRRlZ7lDArJ_?Ndf^9NH!425_<2Uw-5qJ2q}b)xQQ5g3l|uAM-qDI zib@v{k)kMAKvblcs3>6J_dIvzhKS(%{rP^spFe)Dm)D#7Prolb z|90WIwS400U%q+&VzPc~%f`e9?V3qmttbNQ(!Jh=`0zwpgw~rd|yw(U6JY?9nQvZ}xCDWa7i4MhuM# zuvpB7Q}nCWlBL25OMhuaEEZIl(g7S$N}^s=D_^lRhJbZ{1cd(o#PioUV-Vmb^b?I^zjs2HAaZHdsmV@5;#X0cEKl`JXE?D~K&8 z4KgeG9-g7Wr@`6K9Yh#xOF0LQwo|2I#rh4xB^bRrQ$P{-k69H@iFm3EuU18^_>K#8|dc%%#p~5_|Xx` z7E8TqMhNFm85x0Aa9Ll~N4R&W*v3b?(+N)ZJn#Mp{i=KIUZ-lvKI{jl^QYC6gL4_2 zy{Y3TOQ%4lmD`|4=MRk-HIz}%rj~TJ87)r8Y%Nfav6U}+61LIi=5-{Wp)aDF&w?%b;e(6Z9zWk@KvQPb!8iO1EfcnL#Az5EsSyplxMbqvkw9sF^2k+ zMn%NIQ*p^-sW=gyMc}!Nnj8S9lipH%WO7{0Ak<$wgt)gQWhpY)a5^~sQ@Np(r|ReOlyuc> zB#ZZhd4{i}Vv=cJ7iF$5IQv=JDb48}D#xaNV_D0q&}HrWA+vnqP`{Dm64Bi->G!cC zqv8=jmcEcV(K>+BpN%Ci%>ps;BZDnl(Eu|VG?jdvo|?C$E2){R1`9Z=wKRY^^or?b zPso_kDIYhN-moZnL<=c@XSG-`HB+MCm3Z{)d@GBkD&$?@n1Lw^6|Vwb4DtkUPPY%+ zSS*;@u9QIlI4o_!OM*MV>GtB_^vlq8(yLgEMx&dSuOZVPL*gPvj*J>?aaVd7?PUY8 z$$rL06ER|FV#J8#sAa(ExAPq&KL$=e4eUriSHVg&G(KSjqMu7uO zN+~KiX;jpRahAyFh`3>>byP2DCALyOcyMSvRKnp->urHAEGaen$gQ_MWa1V2=s()4 zxnAuj+uqSvRg3Hj$UcYB$9kI5w!bv~eaIYTbNNH#qu@eIivhAT#&QYcqee%?k4&~$ zf`D_7tAcY8=@lV^pe;C^SsxtryHfm+pjQ_Tk{LI^>BWi)FDw;Pc0@{pN?}S+9|2*tn)UTh(U(t0R{U{G?J2+?3M61-z0~u2+nON{vy{s43u#hSA{cY;P2x zTpyeb?ZpJH1pbr0xVV+>pdryo5Oe}Zz9zk7omE04L-1WuBJ zJUC&bUnI_Y@d*aARC!bXwqTHJ-Bjtm(^I6wnogJXoCIf#90X^3JfjWA<`RoTN+9eC z0!}*%&y=w^7@T^4&XB`Xc9wLw4crU(``{d|GP9K*z%d}MlwnA)U^Xh?(mXUF5!1+G zd5DULXU&lgtgZ~}K37(JZ=P(ZjV=usk}$##=cQsIk=`7saRnh!`;WDJx~qDnot+av^Y9{ur(# zzX{HU_JK3#SAnyKB``G9?=(#gm3dm5hS;Ls;DpGLBVyvCo+6*^xzJq2#gPoW-wgl0E$b+;HJ$DPIAnfni&uiyew%tdpZg z@=nNactoPb@*(u-$(`UdV2uljqDVxk26}+g1KYRBii&QR!D$080Q?u=9I7uMvx11R zQGSs)VYF7|oZuYechEx`e0GQIn0fcR2QoXD0nT<@DM-*IL%Q3u5JqDkh^h|s<(Qo4OE#1e*Y5Un7_nW$3gAjXl zo5g}AQ{46JkYN3$kJI{&?&IsU{;tR1vxT0C&++hF#sqM6Hz(inu?zGkR08$fuOGrZxOk4%S=rMXs9j84D7|n9i{cAhy z_mxIoJ-b)12j(YxY%_X18BzmCdD%PbK|RyoY5!een&E{Y-6z0lovX(LIPFI)jfhjs)pOX2ma$m68$mV{DRv$8p+oDH z1V_MW4OE0;dGxGchdsEwYyrUy2aeEv!kn6|f*uoh$RpBMF;O`Y}vmF1wk zVgyfLNOe((AzA0>navPvz}Rzm5QAMw_i665_p2f?J2A~(RrjqOYIjzZor4AS9M(y? zPYb905HL|?Rifd)bdfzcaM zD}6Y8y9Ox^n6cVv-}vaad_%3J^~^R-`!HWQ>K0?+*Z_$}B1#azSCoVy33Av<)}SGN zJ|VWYNY&A|Gz+m$AO?LIm)}C_ZZyLP3a*Lfjk;j2eGw#11~)xxSg;2Kh77!l&~odBqSR9ZktL2vS>pOOJ+nW>2T}XZM?zs_RoP~Sfqcg-ulfxTo8QvI<4>OF@2p{p2qsdzMS% z^|bCY$f@FAFIWBCFM1C{zs7LQk)8~2Gr{&O_S%1ct~n}fcG{- zqNdz3Z|FY5o%YUH1~@ucq7ht+A=NQ7Xyr*rQXe5;w_#JEWE>5&u4id2A6T{dE15+wQ%8!@EgkXW73l=Z0|Gs0nan2gcwD_5rcj2GK`kOGV|-+iQ5 zH%2QZ*rT601nfmDB=$)Tbq1vVY{s6azq}tp4+cBzeIQ|h;m{0r*p@+R$^~8@)=28k+YwW-5)7?RW2FcKr=;lP-G z_75P@K^Q$aDBmEtp&E;-)_st^acro49YCqVqxDaa*cq6K`0$UEE<#KrMw1}13o`PL zLTaZE4+ybW9W1qs1&5io=GjpIYDSM{6Yotk%)?mHpW-YH5Bw4q^N3<;AL z9pTaHI;8rB#6wDjA##~BRs(J55Iy#_Q2Tv=_+y;(b=bm(GBj{pvM)r6rlaRr%|Dg+ zwubJ}I4l~gRxnbG9k>k6h=s&?3}@7HXe*-i*w;ff_ZWTS>!J3>F*ySa&GC?0KodT} z_HhuBzkatxh%Fl_r|uWq&>E}Xa)sJA#hQVTgi<#lIZ-MfXRTI!n7%P3)IMaG>=0ZS z@30?%BqNYZfLok7{TNkUA#pj8N2Ilo8tHxwL+sxm#jO^d81Jxo4@W0-zhE4lkizDJ z-Y3O4>>D7pGfUeWCdd;Ub|5SuuR}sKbDDPz_JF`<aA#vc0XtI|bf!8x~q=}Gt29wqwr(_Jl_+;r=S!NfcoEmJ}NJvIA zNJ!(^%rZz^zhsf`A#vj~CYu&AN{^iqYF|7`y4qqamlq*%X2^q==V;k?S-b}%X=M`5 zs}K~hV(|TJA@Yc@Y}P&i~^KI z6bysZET^7rkYrytyMBe##i*6B-e-bz4MqYd%LSB-{rU`2xbJKjVypTZYBmNt5~=Pv zwZ0AMnXUGTvQ}w%A4uJDG`B%|R?haiDH*dH(z7Ak52=~HrCx~rDN+p$E0bPx*ju{H zImG>A93;+G>_vSY+76fQJ15lMKSi#4*kt1!wzZH#j1BT3Qnh47z|2ov z0*?8N4eEPH4Gbv>&nL>gVJ=Q=Zjh32-{ncd~AYlP*>ac$bslOp5O>x-1n~XYj zKdgY>Q>4$aLcr+ZkZ_Dqr}WRJV)j5XmMbk`ntp43s5W7`?zvsb}Y^g|L=kW>AcFxd!eM9Z#W|~uztHW?e^b!UcGkOCgIdlx9>a)xM#IV|i zKY7ujF-zA~kgqJvNy>!kIuF)%z;xNFSxX;Hk!lh1|=X`{y zaqgakR9|TcEW85AC}nHD0PbaZ+lNS@;kqF<_l2ejp-AEW8|U`PNJ&3n>e7GUt&oyF;9+P!BpjsS#U$K#UxI{*hE{4XVv2Y4X-G-^>?Xk;5Ttq80~~h0#pWFy zr8G#K%UD#$pC>wW%{kvp|*r&h+V_An~;)~a2TILk}DR6vE_1XG)9M}AVtfJ zSz$X3N#62!uQ0bFIL6io5+2mTbpokwM*X*u>Mr{<$6*g!Y4(sIw*XQzBaf5z5+phe z9e^cOSDBt+*o~oNtZOHcl8;S_t~R$7+L{2Vr(x@Hq+~txaIrOVv%onPQUs&`qaXfD z9h$yIkKGVz&j!folFPKu+8l#%P@e~>gVB+1kdn(K7GYbRb=U;-;qf81c}QW&O9`=l zru$?%?bX)jEY_HD@sL`hZk$y|JM4QQ1sN@|`*$Jrh9nQ~sc*?GN*+p2KOMQ2_M1B_mOj9+`nPas&35V=cZS+hcXFC=6+D6zE5I~Q zaoF^_efh{ z8E!w%Lkcyk)4ccU8~23T^1sd7?=5>mY`u|cZ=^Qlq<+pxg}r0u&PECkY*6A7Qmu_t zrTu1VSWaqJPU?@GREu{_y*W9li#e%^?;*x@zjqqqTZ`Ct_}#@u%e=A8Ky~Lc<+c_!isL{uR4XsD@*n>`dZZtk`9dx=M zGkSrhB6Ct1IjOrjseliZo_!2b>@A-9WBE7$seg`C_PCsaGA{`dqghIOAu*bzRPaP@ zDFsreoV>G;a>{8XPU;(vhH4{D>bJo5oz#7gHE`9o;N?XSFLEoW4yXhOMJ*Z#MjBUc z?hXVCvBeG4(a8Ouan{=z-zQsG5f(M0qMoXv+?)pW0+IJt`Q()QDEXf_^)L+$eJr}h zMNR_-@SA8}13&~KDCiSEDCuIc!IW^lh}(eUUeCD5sUHhsEpbX74$h05cmjxei6CCN zxd-I225NAZp*Riz3yfD8v12P%Ja#Iwa3eM|AoE@13V!d-fyykE; z-1Ozgr61-?)RLQ1eWAj0b2f`ZlhOPll}}FnB}yjG16l>5xobfzw+_UMocIRD2QMUy zi=2uXiesBIE^-#Y-elxszcDUy;@hS8kDPi~$qhrX7#r7a)xPB!U}pTC)37}t^1U+K z;OsdTV#5$DmPS67N`qq!G%j+M!&1k$Gb|q}`IPLx#c~P&D>@D0MNW&)g6yD6AiDGl zh!uUK_*HOTvP@02d~_m3b#S5@Ggi~ZchBZfl5yO2OxLQ&k84} z-Y+0_iWQx(66GrzXV z&&}!I0N~83tMbX2tfzP&cxlKT!8uM{72eHSSq@MS0KCYV?5SjOo8JDTl7^lA75XC1 ztN|*YoXLUspxJ{IA50KeZcZpl;pFU2w35kLKGv$HDiQ_|2VM;s^ORz4&I0olPRkod0l8JMd}_@1;|;^VI`9@ zd4ybF{;}M0K7d566Ds#4RdA7W$NCtYTjpor)Vrwi$(g*QWO8F&RPq&YCcjZ~Zq9nX zWgKw;u0esob?}1VKP&kcaQs<*#Rv7CPNJjYqY2Ao-W@j=-`>3L{!+zfy{ zEvOU=D_&G7{u5_~uP8lo%EgpSo)>ayaCV@q$}gw#%N0O^3+<}}^hRe(8iCATrm&hC zN{yUyO(m04_5&{fUSHw4IrI6G5;h;E^2v!eQ8GCLy#+YC-&Ru-8wtbS4&X(Q(I1=z z2PnnCiu0F0>{lE({w(oI<}Vy6C*y+=F;2-7l$;7)2>2XuUgWH29tVU8{tAqF0w1(& znNnD(@YT%3MNY%ksQmTd^ygM3XMyt~XFYoq-w)0;$;9r5$Q{U15bjfvaUgR|B z7C0-o56%W3sC;tj|E%zb;0$36g{a~V&bdVfkj zXGS163pl}PNHcI&*cKdrmJax!UPlW5fwO!!Rj!B9Cx^i4#gyJ_HY3>J+&B|*NeEZu`GcCb(Z6U6|PVP$eCQNWOC-OQG6{p zdzPW{b8|wQl-_2gmj%w?+zXCB%RBg}#RcI860GPhI2*X9_6hL8k6 z;4I%x$sHB%qIkICJ>B7dPM3iI*w7$w{8@(JgB1)_JQ|z^3{!F(IQ}e&N={PpC~$gm zg5s$v{|#_nEKjc0M3h?1}#)Lf1*u!vC1be3VEZ-->mYt zsC;rJv+%){@Blc6+I18O&g)a)T-!ef$Did(e9(ZeDZGT!fXm1yzoPgzN}rtgRd7zn zpTJq)L&bju$8?4NVFnegH0L=^Tm#NKc~5W}SP`5)TOdUbI{wJLE;;EPsoH-B0Wd9KZtPK}A4eF(MZ*X4Z#Q*7O81y_Y`~ zqt>&BVzvlM|2`G__o*1;0Jo0nME>tnv45Y6$%rV%^Y;Iro{9}&aR2W=72Emtoi{r+p8mxv z73`Kj`c!zl@8Xw9UB(YBcH&Xr>wol|HFHV8hkt}se46yxrR4=$hR5FQJ@J(d1G_uk zi`DB*n6PX`_OO{t3(TG^CN{Kswey`HIXUm@N+qt8KVWH*@IjTp4_1i8tJ_yyerxmX z>Yuf#_0>mP;AuC+y9K3vW!WK5N%I+r0zcvOUV0j%jSQ{8{)<@SDQF zp|ytyZe%Se7BsZBwcZw23EUviyb*xABE1oSMWFy561Xq$)At^tl@q}FPypE?o4_Li z;Z6WQiPcU38I1wh8UuJJIyVN;GYr6P0>27t7yyqZ0HVSGJQi65_7U)G0^m0h(F8zr zQvk;Z{2_`q1>n^Tz^JAGo{B>RP7tWt%-UA7TE&QF*6w0#b08OhSlvX$=1{5L0zg`G z05)-sz(oRqEdb;dsVx9ZZ3*BS0lV;T2_U!?fCVi97+#t}r6@Y>wy%m5(t&w_2 zps)yQ4WLyU0P9-=C@QiEJR%U@20$^fx($E~7Phqo;3+z{1<Ih&|2LR>8Ap$1|RP6|$qDblpU~DG< z7YI}q6*~c_-WfnzCjeE&IRY061a=1Ssz~h&U}_ft*9iCs|1JQ6y8>9y1wajPmB0-G z&AS5d6X{(6Eb0c}A%WT=tQ&w<;Q-cm1K=;R2|OYY9uAG`g?~Q) z!TkX&=m(&!xJuv#f#&@Iv={090W2B-;30vIB5VMFRs#X79{`}U$R_ZJK=?oaUB&8w z05T!~*dhRgi_Q@MdJY1xn?Mg?9fS{$NB~iT0Q3@B1ojc|j0Dg}L_`9J9t_|ZfqtUs zU;tiG07eZ4FhCq4aDqV9C;$;6DGI>YApkBAh!hov0H{6`K-v%hQQ{ndiv$9P0vIY% zhXR-y4d5Dq7~vlcAUFoVf@lE4#8m<}2sDoYFkGa^09X_Y;30to5f%%e)i40-V*wOeodDn%fr+AM0syZ>0HYEBxWpj>CkRwc1du9{5&?`&0&s!ABvCO5K=ly- z(vkqAiE{)l5(pdtV2Vf`0bpt}fNKP%3IAjO!6N}INCq%NTqSU0BrI()5|+*q=_3Iw z8U>AqBcU-zgpC5wYBYfLqX49fYyyu6gpUTGi`An6WQ+k|8v|g0=sX5M&#?e@6A;2W z7J$b%08wKBEEZV=_7U(L2Vkj)7zZGFJb+^amW!g}0eDRSFls!2mEsVA69lSG0I*sl zO#m?VH2@a~tQ8es15kY;fV9^DtQY49TqF=U5x@qKIuXFs*8yB3kSY9M2N3K6u;6t7 zo5WQDHwZL$0oWqaT>uuP0C-4Xn+Qt*&?*(c`V;_JBAdV?0^z9uc8b-h05aYHV0#0= zZqfM-06ixG*iB%suucNt@g{(%NdVp!Sp@bG@O%@%ei88|fao*;#|XS9ilzbZnhao6 z8h``h5P=f}s!j%QNF+@LFm?)n3j~gcictc9D$1j0;d8vE>fogm^ux> zH3BDv|1(*Z1)2H=#qO5g^8=Fy zo(td@fv-i;xd6P<0gRdp;EFgz-~@rH=>V>Zq;vpd=K;7t;5$)q9)RjPfV6o4u8DI5 zE)odT0bCcUI)JJ30bC<+Q~1vZ5WE1ug82Y$i>m}~5NN&tz+I8P0KlS!03H&!FTxfA zXe9uwUkD&uWD|HqAY1_WNvy{HAu<*Luq^`cP;_1dpyy%$y9xX%tcwA7ECCR;7{FtZ zMPMHR&m{nU6A?=QL@xz!jKCkF=u!Y)%K(g83gD?YMBoI0s>^r)(Zq;lJb)|*asdbr zAj_dreFcEDVf zMfxfLi&i7`kU(J(wi-aIH2~JH22fOF6L>@*d<}qNV)YsT8EXO9)&lSpo!0{BxemZ? z0wslY9RQE@0HW3bC?&E8>?7d09)P!qSPvljEda*|lodta0^qd)z^JzXloy8xoFGtj z1AvMmX#;?<82~O2s4OaG0H~e`AT0wxRdJ5MMFN4D0A3ZTnE5LXG@Akcgh06&qw3BaPw03H&kEy6YfXtf2v`pp3RMK*y)1j4rfs4G@)0g$m3 zfNd*)K+$?Yt4)@=YhwgZUT2B5ykBCwBu=XL-gB4RrZDGkNjWQ|18EM$A_ zK=!CCWIM$n0M^E$)DEyPkwn%+oFr>1D((bpCdQF97w5=Y2%lYGEk!C>D{+aewea5! z)<#StYb&mjwG;LCfVCItWF5p!vW_BbFIXqBn5?tNChH9R+DuTkIBMC=eOC{ zci7jrVQLRyeFu0?(Tl8?$Rg`4?EAs`hzPR2;%%~iqUgI|{Y4Df0C9+HpeXeoScFI- z8zfGWMT&~=gAEqr$fCqKvLV9f0N7BGN)|0Hk;MrAgJ7{@8rd*$l`KxwKLj>hq=Sh? zhhgf&LohW#gdGOZ>Ii`KhXEvsYyyu6gdYKrELI-@kZ}}%?I?gzqVrKyHCkknjS<#k z)=zA=@H8WzD0;@)760aoyQuSl)x#Ey*B}ZJD`{XoKd|<+ezZ611M4SlT7ai0bO!%O z8v1>z!K>A!5uc+#yOy~NtTHklTttSw13Sr@ateHO3HbM&@Q#py zvp*@?-rv8nR>+5)rR;U#! zms7!fEu_4WVX-t;7#~wrQJDEMEWhD^=ZuRl#Ii~ZvSpNdSEZ@K_)-?%ZRFJq7?W%| zQDH45<}zM-90`yWwE@UR`R3+mrO20Rna3Ap93WmD6~-5;f(-;eEmIg@CvB#%&I;oz zV>ej|F8+J=Ocn;kTJco{WJ_0kusyz^>8%vID@DGSHUYh3FMBAAuY~c9EM7eo#<#qt zE2DcUtT-^f>&C0M!uW0TG+=z&vkzaOWqW*kr>iR5S7Ce!s)oY&ukusR3sh5K=4-~K zfVD=EBprd|b5xH9lHg;fN`SB81)k>)j3VSY$2F%XQk!fHWYs<7z_t343FG7znrp+LUPwF1Oz zCNTW*pHZ`{B!FwS(hESEuOIW`E8*-2f7$SW0Is<#D~2a)-aeNlV$qda5aewj+Bsig zoLrkkR0-wEJaq_7aApMq$`VudwCnm>r5{t|_C z8jS?5cT+SmE8DHIXfjgUf2%vf6BvG3?e~%P3}!l8fY?T3TP^58fZFb28b^S zjsS5P;wzI4Kp`Oh)@C>;9+U_g0ZImq1dRfX28{uYwOYiaQCdaU8xSUe-UOwArhuk` zrh)jBZw6>4Xf|jLXf7xn#I=rVTM}plC>b;g#AR#@h_BwY2Vt);Ue}|0Ie>v6jt0Gt zrOd^Dpv3SMec1@)1T_YQftrAtf|`MvgZP$v5Xb=v2Gs{O0EK`&K_x&XL0+Izp!ebS z1E517u8mywx`Dz$T(a6~V$Eo+lHYxF=m97j^dsn7P&9}?apJGAI)OTax`0ZEtD`lC zPgNw}g-HiNhd_rxM?l9wAAkxVe=G)MoM=Br>*yMeWIQMVlnCNt+6c4_YTH3sApWlB zJrI9za~#B1EjEFUfewNWfigjTQT=-GTi|=a_ks3<)Lah&xPWP!$(GxV3OA;g3O%gFXa(0=fXo1aV>ILdrFb zYZ%w8Q>geO&>m1L$lP|gY1abP1_glXf`UQCL7pHlP$|$;c$sUN739+J;RbpPkiT2v z>qT8b0U-W5BmI()EA)3ASc|;H_~??y#aar0oGyAZKUsjbkID|Tg(T=BOM1? zg!Ez%w=}-l{u)^?=snQ;plu*;=#~SO z2UP$qfF~D%1ZWY+3XE^DR{%|g5z|03Kr=y;IR4v_$O7#k07?TzfX0D(gW91I{^}$g z#LW|%rLi}D1HKG&8af|?&VcGeE)S{zstBqKssgGC;+_}^a)R=K@`Gw{bM*%Cr(StL z-Qb$;pevxpusjTO1nCS=0vg~?3OB=$?I8ZJWEF@%0ND?E7xX^p0O%m-80Z7g3D8;4 zIna5~C!h__zeR0{RAY74$9WJJ9!_YoH%M*FpSY$YHp#8psdy9q1b9I_Ng& z0Vo^9U41cVK4>;*CulNg5U2<0xQ&k90e#0~$4VqtfeN8#g+WC?XQ6lwbRP66=mLnl zy$yNX;a>%Xfr^421J4WI6M4Nry+M6IeL+V-*N}e$bQ8p1z_fvZ1!*YKA9DPEgYY}( zDd=Z_4?(|xEj)zsI_r*gMK)uJE#ZfJCtKR{A#@?%4Va?Ezot)_aGlo zVGwnefqFy7j{3er+86jX@O7ZgpiIyv&}vX$==}-)6m%7I1q7Wch9V2_cVBL(h-uP| z6x4>RlQ51r6$sAk7tyJ0R+`_=B$mEdy~HawX$o zWGZM1XatC-8=i6+fPz6>5gB;bK@8|?*ciLIw6Zo=5+v@E91QxLEwlfnKt7-h$a%oo zmFl31ph_S{Sy|*UFe)Hj9>g&!2hM;9N4f-fbMP`CPo!S~F;Y3T)HHKhenVzW&@Ui{ zEu)K3#;|1wGpz4{?t++418Ec+V|f1xVw64tadLAWvIC~!G?d13plB@1F`_wmR^IM0 ztThlPHRl881sh_TRu%;Du)?{OAH)}hiz)I3FAFLIDh;C7yg=jyw(pAsx3}6L_SON;Ezj&}0Mco|>Fy4oI*_Sb3q(ViW>5ry>VbTKvB$pPb-@Ec zrha{-sf#~@Gi~gP!;lyR;=x6ViP#aJOP+L%YP&-g(5cNnANDlz@2XS@9zT~omBQXn^ z3qY9W#{B`8+CCsIy}dvjy&fP|$VS)z8{&$03}r|Ik!IzlQL#vyJ{W?u*|8|32ZQK? zNQTX76gCU7=j?SfXeg)@@?yYE>sgq)DP`(XW>4ZkdJ{AWG!8Tt zG#Zoy;`AQLN)kceqEG@sRRLuxJ&&`{UobIos#X$@?NX;|#YDlx2xOAdctB?ZOIX5K(LRZ;GuriaXC z(_YXN&0*a}U1q+BK(Ac6ePvcfXVcNsL9BKp=y}tqyAWjddI8cLphX}7deK152Ts4! z933>nihn-x`HJTuV-AR+I2(K>$h3Wy2%oN%@0<>3ZZ0?(s%8;WmBn9VBkeL>mD4X{ zfbk8gj5B8cEj&;i^Ub1$)kZN_Zm%s-DlaOYTkm;K{VkkPkMhvp9JB|ftU&&9(D%F< zVuC9H!PTG)&<4;d5Kkdy1ToJnXkwJ#0<8zF1FZp>c_&eJt&)kco$VmAolK;+Su4vs z&W#W@gXs4yif>i?7`_F?r0O(NtLfSSjLSH0h4vuLTcBc~S3m_oJbPO}yOHOwbh&Za zf&B@YOL<Q2rSBQ4kwr9`WNK>X-q`wBgm}tnQ=|AOCsYw z=nUu{=q~6x&>heP(3hawpj#mJ^d{&B(D$HkL03hi+4z4Le}UwA&_^KCzK@Y+o2Nl^ z2AensVxKO7hKlK8Hi1O3Su71k*H73GEAHGvL7@Lb-G^Iu&MB(Ld58BR=~75 zvM);0`E;yVhW=sNH0}sDJz9KCWw0_*!Szw&Pd@xc0#0Mq3m1Nzl&y0BT zSAm;x;^O@v6?o6cz+fY+oWa7%`A8u5^1;Z?-Joeax!DNoV-H!UX%NSq_0<4IkI)Es z)n(yLGRG+pR1d@@pW{;uN_?uuq2bdu4iBHa(fy4;{z!A>uLI8EG7ZTcgfxUxj>fQ2 zu78}`>;!|n7}__!6f(z}QEFC{J8f3_d{jR#bGoq{@o-Q#5FZor*%kM^MxX|uhM*8o zR|ZuVaaz~97UUkuGI5|`!f(FT!$l|&Vge`$6c2jQyyyTu&I?nQ^MYwpc0*oy5OoTJ zMk0^*qRHT9-K>|l>THvG(5ao%AS>c+Ty7)A0OMC2Dg3eoR~4VV4HjtmwY=8;{(mOaRR``7!xw3F@dmeStVYX|1@lSZj`# zHp(y2KKGuD2MsLj?_5{)wMj)wqi|i6MUw(==s^b7oE4MzH_iB?&|Am}LeT(B8L@>; zTo#*FgWVBVDLoOtu|W@a>5DRTUkR>yw#ssp3ak}C!@NZ8Wzef3+Ar5ii9yS>($+=d z+$pVu(3fdt@$z2QGHs|;nuYh_!gguJ^B4t<5_PRxMJftf4~wPCwf0&e5An@?t+90u;GL&W=0^MivjPlXTds+U zD-E+kz`Q3GlzP6kTmAm1Pw^k2=Rl`nexgXALP{aozXLUwei0Jx)dmXw=wDst|RUdc2 zVit;8Plzv9!LZVJy$SVQ7Cx(A){g+hjO8nl&e4#A^5Xv1sZ|f_nz%x}@5STQsP?Y# zTZ6X#6cg3}JSP4iJ1Zi#!TEJq?bqVu8m)%C8dexuYiQK4kHkbM4RN;cUyA}lv<35C z1(Xq!R-|uS+?&>AvP-OHlW;*nb1Naf*{^xp;LbuN#IChk0HXW)TJ$TrBsNME&3Cg$ zS?8*mPf!#iOTX6=9oNACv&HX)cL9ubeX)EUT0Djuc@|r-ao+6`p6An04D*gLdS0A^ z0$$R&O}$hY3xB6PdNLvUaL@VcHES#ow3(7F%CFZ-#cYR&p-LIt>&W31g;&`$>rx=- zPs;n?oN3{o+^I4?p-3;I34dDlC34uff4=P7zAcKoYu4jH;HZ>J-qH~rY9C%x>cb<& zQHHY)W%`TNXbvy8?g#UZfgUGcZ|kxzTl~5*5qg2pgWKs=?(_5?8E4T;> zoCdJ`oCw>1mhOl?VBXy-$PNr_9htwP9DwMf9Yooe8~9MC(kfxmU#;NR_Wby*esWFwi>HWKT5_r zUCLTVq;JJktXfMtR)t`oxB{I(Cs1~0!#mc<<#{%5Q{6#C6vAPWIq!FgIimgf$z0^9 zAU0-0@e0QB*#_k~n=Tf7W0gK5^1Lz$A!jT{rSOjMgl$@>V*N44xDx#lXWgDysTm@w zv)HgrtB5xUPj16fHba!$4$IGow%f6t+!Z?^dGq}SR{qgk`H+;5SShKVm zYKU#?1M#R>_-ARJ-i{z1sa`bN4lyB13-O)`1uhI*Gk%)VWl7da&FWtdQvh==U7X8; z*OrRgU@>n&j|QLWzVP(TV~7WWJ*=K7LuZZpWM+DF$}_!qai4lqg?%R+xkfbF32BGuL20CzL8-P_PpPuFv{S3$ zQL7=&>8MKlxlAkR4g+&<;-#!LMW0<-jWX{vG9Hnnn6K=mp8WZevrGTwMXdHvv1XU{ zSzzx_>CycKm-_TL@om%MR$qC*vP7z!33rB`p8Cq|O3!lQ#FpK#WDH&kgkDgI6Z^jkp!p619 zvQ11xQST$DoBKk_fWC9`u030oMUji^qR4^*LhcmxG^ZQ~+t4<{uH>(Am3oLmT&2ZR zDg;1*12Fx-+eNbtaO3T;K*y$ITMP~f5-oxJtwlfs)~G%GieVAO!4&|b7uS}Y~& zEq3q47FxftoMv+Z@0a*7`Nx@Bj`#M9visnp#-j5+sCN*>yjDcTh4SK#+RD2uiNg^D~>*MA!a?Sr;v}O&i<&V8XJlLrf zuL4&Eu?K%&Ld~2JEyVPutNw4$+Rlr zV)P*xQY&2QA1rh|v*pgg+0f?zVbgMii=)s83WG)w*f93(hYnkV)@+;J!kSzKIh+(b zPrBwc8M?WuDhsPnw&r12g;rV|hR2Tfka66-^QjIIMRpyBCPN4wJ0tYN*kX^0tA|bF zii^TWG+UV$o_LJ|#i(AQ&Joz&zPDTt)4yzO-EnT<6i#TlN+Wb$Kcacnih@Q3SQuaK zrvn!*R;m9?BMmt?e5GWT{rbd(9nEp~R;{JLV&J7^_7<0qXz>{I_D6ApQK64WsfrkX zd1E#E;OPOX(!QGf+M;Q7Q=X_80e#X(?9YSX?UbN`JW)EEqG(k@jmKkC7N~2Gc#{ z6ooZCKJQTHqwROgBL@!;cm{te-upl+6;xz^+^IswOsY|DSEnzf0*h8f4vWSu%XqEn z1b>-Rk4KlF0iw=X%}Z1{j-$0acxf#Lh~CH1IpgqMT&zB>m9%$44Y=n}hij!Ner73o z2+m`ySF#4t==0;8?0(<(-YZz%gk zh?-}xEY(My+_YPl$QV}lUL`)|;O!40wrzx{byD*R>;(-jZHM+f8GiU)Pz}Qu#?tn} z93$ET#DtSrwHFSO2Inn4p!kHFO?a^7T@q&h4Y3Uhs$&{X+TWkl+LhT6DUCUJC%NmO z-@mS77-O6uiVPO*K7`q&28$sdY5{>!gXMm3r|P94_xgoDHZ+ZZKg ztxi+1Pj)P**2$$=zYyN1wQ$WePj;uw%Yz~@RvbJH8)ZzFd3lVa#EL>6!@1AL%7R$Y z7dU<}H|k@pZs4j|xww6OEwp&Q#0NN38J>m5PO2NWxxcJm^-fv0H;kMh%qV$>TIwH+ zG~?2Y$1TI;LNR62H{ZnU^yKhytAk_q4if_rvGQS7@d`$aI^*PqJf@WE>#CQ=&NsA; z9Oa#tkFx5VcycCZg5^vSGjGsYtzOBKSU$OQMQ6MkIVNz~r$wyuhGTUwZgs@(7c~!@ z>`$FVF#jaV|A2)wPyE7jaAu`=(dim^{df`o19(a}ER&1k#RC@D9xqm%$9nSdIT(0SG`fx^?hCi`+JG{J67X;bCjI>^SSUe! z^SxFAcecK$ikGaW|38;0{fRcD%0JaA+ml@r?|!1y)MQHm`OH#vlEgA}OoV>=f=pS^ z`nx#v>3?DVvr3f@RKZZQtrzuMT39q$y0uhV&!%N<{XbPPitu?gS=9OrZhdZeR12Ci zU$#^#s3Gd%t>C-Au75o4i(Xsg@Sqw?H!((psw zg%`C~a@>c)AAhbj`oh>Dx~h5QGmk5c#|w{d5TG5#8@SEDMR{y6V#-ymq^X|^uV^gWttZHXce%x1eKU5y z=S{;-Bd5y*@#8m|uUYc12P5NApiP=q>t!wAIXkAL9O-`^4b$z<1#a$f|K}AFtLn35 z>BVb^*!rC|@V}S>s`PWFh}XZ@TKs1lUNRw7e3$9-x?KN?Jl^(N!5>;zezvWs<_shM z>kxl_wfyIx{y*E){&OV%7wi5+d?U#F{>B-#{Fi30s)Og=>dU7PmzaA4L0avG)}hRC z9Qt^}S|@JS_A2izxy|Q7#!=Ry)bI#uz)jrQK5@yD>(s-q9X-_T$P)U|ctC0KND-G& zpH?D8Ji389@9HV|a@#lzRBnx==L@%GGe_30<+7=?*nCrarHZNW_npnmF%7&deuIJd zk^pC;0ikB@^W}JIMe`apvoio8DVbiP$fb7>^1oKMEAY}@_t$e*5-O-mE^P&RNWH2BcZ|Gxi6 zH4p80@QMSwsrEy|$rHV&? zy4vTN#@5N=$GciP>pQ}E4-eN)Pm%t~bM41s;cmr8V<>Plgok{VtH|M_>0h_cZ|T-& z^c~~`)pGDS_^X(OqFSM;BIBOs8(M8Dq790P;B-d!k@v>+dg^&Zv$h1{17sRFoe?#& zSjfCnI|mu#U6+qB)=d>f?qdZ%HkCL26#^SilMg(i@9(NjUK}^dFx0`D+}UE&eK<4{3Va;rS*UgI$mq`-K%pLPt+5!(FPGclUm@{(fIGm0 zP~_uePp{=QOK7JjSM`nV0mSK7L;?P5k)) zd!YITTeQg5%9#(XN=z3i*%*!L(`Abdt7Z5XX)<>;TI3A`Tp2W7?8-*zrqjiZZ0tLo zrwe>b-N1TKbo>z}oD?xXVi$ZU{QrdXr%1QEmC_2&6m!eCd1-@ZE~wz1SDt;ybby5r9Mum0&iR}`_sKda`7%MUd# z?|pM+^gT#9)ycQoW2~Eo_hIfQqUbO1t1Rw)6M97u7awL!DSXk^^6O`gd@Ke)&%02% zTq(YobjYj3$JzLT$Gi{xOTTjlsB*gKTNs7}rirYUxx(%%z8w%yCPlS?E+(am!M`Fyv|I*J3dhW@eWV8~%39u$zoVCH?t?45A5zg)Ji#KA&t zp5+7K-FdQmm0c}-e!5eEU!?nEio)h<^F$m%RCCM|4+_G77W2d^$U%Kjg7-X$jbGbz z&=pe1C}DhSl8hWap7pABz2fD$OK_?%1_RH`XU!A$P&RNSH0bW)VS!CX9X`XyVrtgy zQ8}sWj=b`P`z${9W=;TKrwDn1k-h>2`tCu2lCja}pR|9ba8D#a0beCQi=6ga8(pj_ z=H^M~tHCJqLLVD*Bxb&7jM;^#OaC3qR@DV^Ff8?d9=)dJj0w-0QdI@jfd)4y&)H)u z{(0&2(j!=9OtkiD zsqw;-enygJI>c}-Um^Ibb5)otZ8=$=uR~2?b4gPn`qyPaEt^X9xyAH3R4ySU-0N7L zmBMJ1uwkwmOHu#|aQMtln+BL`s~WonpSqQnnkD!}s#?J1qNe#Q6%|TjV!$!~X#v#U zTq^3gV_y7a(W6D~fjQNxHglGHX`$J(9G@6w!_K)H>Ql@5Va=_yR(OSI?CHkg8lM!sZJ_~NGGT*tOVZ}k}l>uVg44?yO&KGMC+85BC)ueC%;HK zBqq9J7c_&=^thUX;;Oq_S>^Ja(el#N!uDL>o}qsk+#Gdt3sLpu^0l(wc-LVtHek-e zs_iSTI_mtYm@!d|eNEctSq`)5<*Tu=#&Q#)4dvjum#h9Ypv`?wg{bJ3*R4a&F=Ss} zw_sW4%bf07D;j&anSm_l!{0_mDw#21P8zdiHOA(FL@NKoj%+HLK_NGla@bT#te5Ll zxwPYQmEm%hxtXPmnEF@4z#m7h$r@p36p~ZHrMW$+P$6`C!(zB0n5fi6B znm;$2J!kLko^!wR?e4h=feZ$hJ`81l8Pk)#U0be`21~ zw<*=QKn`a2Kr+FoF2pRa#w{QzFiceo$E$4$fc=X&P=R6?uZz)mCLOnM84y1>%LXD8 zfG;UfycmC!&Dep9OZ@IPdO=Q<>wIhCQ5-y6iYa^;F7W06LA-;N^c?Lh4lv-v09A=4Z zUH(cSom`r$z=3ITEncqzui99PZ7Kk?Jb;1WU=9Cymv2Xgom$Cg_gOB9jdsC*5QUK|xI>L1dST1mgXrQ(y(>HJ$7~_$nrH?Ao;)BL zwn8Z3gFPxrwEPJ@@s#)8yV!SyT8W3c*$Mz>==&?v=>v361!ltk{>NyKPl-q?%&x=j zuqUC(sAFp`-@`43X5sJ2P7ld%fCuFamTSS~GK+Ae7DWsCdb~&rsU4f@S!CGKQ@6ic z?GFhYG}0L1)m*3<3`YIwUSrVdkiV}&4P?HM{hU+>t|7Wv4t9*xVYB{z(9-p#7o=js zI~Nc;*72IAJ0+FFRmqQ~nj!~&0=i-uND%ilPAW}v3>qd#5;YEN3`S~m6PGCTs$QBV zPt21fZtxm!c~XQ^_EC#e(}6bx12%T!&`_idrCk~3Wby0FfCtIpox%i3ILwJ#;6`FR zmoO+s#mI_pACx4fJ8e1`XBrpSGwxnk&d$<8Nnj1HY3|ynTVFAEk5seGiBmw=ybmM- zV4Sm)u0)7h`C&<-me&kbP3hcUv-W~i(~Qe>C{WYR1(q!;@A;;rVWK4P2!E|Zuljs^ zilJgF)`kF?O68ND-7vl~c2MrmR6c>6xVtqJty$;5%g82H5!a2I(Ncf#!!PnB-7*J0 z021aJKI!F03UVHJkGLjDxHS}Q{RX}d9n*AxsuJd)`Gq&})VsN7BvooC*im!h@uAR* zFg~4an-@A4>4?`UCGE|0rnx H4ORRLB~9u= delta 46333 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 - item.fileName.toLowerCase().includes(lowerCaseQuery) || - item.result.text.toLowerCase().includes(lowerCaseQuery), - ); + const filteredAndScored = data + .filter( + (item) => + item.fileName.toLowerCase().includes(lowerCaseQuery) || + item.result.text.toLowerCase().includes(lowerCaseQuery), + ) + .map((item) => { + const fileNameOccurrences = ( + item.fileName.toLowerCase().match(new RegExp(lowerCaseQuery, "g")) ?? [] + ).length; + const textOccurrences = ( + item.result.text.toLowerCase().match(new RegExp(lowerCaseQuery, "g")) ?? + [] + ).length; + const score = fileNameOccurrences + textOccurrences; + return { ...item, score }; + }); + const sortedByScore = filteredAndScored.sort((a, b) => b.score - a.score); + + // Step 4: Return the sorted array without the score + return sortedByScore.map(({ ...item }) => item); } function SearchForm() { @@ -160,22 +193,76 @@ function RecordingsList() { return ( <>

Search Results

-
    - {WhishperRecordingsMap.map((recording, index) => ( -
  • - - {recording.fileName.split("_WHSHPR_")[1]} - -
  • - ))} -
+ + data={WhishperRecordingsMap as WhishperRecordingsType[]} + /> ); } +interface DataTableProps { + columns: ColumnDef[]; + data: TData[]; +} + +function DataTable({ + columns, + data, +}: DataTableProps) { + const table = useReactTable({ + data, + columns, + getCoreRowModel: getCoreRowModel(), + }); + + return ( +
+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} + + ); + })} + + ))} + + + {table.getRowModel().rows?.length ? ( + table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + )) + ) : ( + + + No results. + + + )} + +
+
+ ); +} + export default function WhishperPage() { return (
diff --git a/src/components/audio-viewer.tsx b/src/components/audio-viewer.tsx new file mode 100644 index 0000000..25b5022 --- /dev/null +++ b/src/components/audio-viewer.tsx @@ -0,0 +1,8 @@ + + + + +export default function AudioViewer() + + return ; +} diff --git a/src/components/ui/table.tsx b/src/components/ui/table.tsx new file mode 100644 index 0000000..973c6e5 --- /dev/null +++ b/src/components/ui/table.tsx @@ -0,0 +1,117 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Table = React.forwardRef< + HTMLTableElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+ + +)) +Table.displayName = "Table" + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableHeader.displayName = "TableHeader" + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableBody.displayName = "TableBody" + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + tr]:last:border-b-0 dark:bg-slate-800/50", + className + )} + {...props} + /> +)) +TableFooter.displayName = "TableFooter" + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableRow.displayName = "TableRow" + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +TableHead.displayName = "TableHead" + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableCell.displayName = "TableCell" + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +TableCaption.displayName = "TableCaption" + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/src/types/index.ts b/src/types/index.ts index bd1bb75..3eedd6c 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,3 +1,5 @@ +import type { ColumnDef } from "@tanstack/react-table"; + export type PaperlessSearchType = { total: number; documents: { @@ -104,3 +106,18 @@ export type AdviceAPIType = { advice: string; }; }; + +export const columns: ColumnDef[] = [ + { + accessorKey: "name", + header: "Name", + }, + { + accessorKey: "status", + header: "Status", + }, + { + accessorKey: "link", + header: "Link", + }, +];