From 946f0dce33b1ce80a1f5f28777a67cfdc11e0d44 Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Tue, 9 Jul 2024 13:06:09 +0200 Subject: [PATCH 1/7] Update vue client --- client/index.html | 2 +- client/src/App.vue | 76 +--------------- client/src/components/Header.vue | 7 -- client/src/components/HelloWorld.vue | 41 --------- client/src/components/Logo.vue | 8 -- client/src/components/SearchBox.vue | 36 +++----- client/src/components/SearchBoxResult.vue | 12 --- client/src/components/TheWelcome.vue | 88 ------------------- client/src/components/WelcomeItem.vue | 87 ------------------ client/src/components/icons/IconCommunity.vue | 7 -- .../components/icons/IconDocumentation.vue | 7 -- client/src/components/icons/IconEcosystem.vue | 7 -- client/src/components/icons/IconSupport.vue | 7 -- client/src/components/icons/IconTooling.vue | 19 ---- client/src/configuration/index.ts | 1 + client/src/stores/counter.ts | 12 --- client/src/stores/search.ts | 41 +++++++++ client/src/views/HomeView.vue | 16 +++- 18 files changed, 74 insertions(+), 400 deletions(-) delete mode 100644 client/src/components/Header.vue delete mode 100644 client/src/components/HelloWorld.vue delete mode 100644 client/src/components/Logo.vue delete mode 100644 client/src/components/SearchBoxResult.vue delete mode 100644 client/src/components/TheWelcome.vue delete mode 100644 client/src/components/WelcomeItem.vue delete mode 100644 client/src/components/icons/IconCommunity.vue delete mode 100644 client/src/components/icons/IconDocumentation.vue delete mode 100644 client/src/components/icons/IconEcosystem.vue delete mode 100644 client/src/components/icons/IconSupport.vue delete mode 100644 client/src/components/icons/IconTooling.vue create mode 100644 client/src/configuration/index.ts delete mode 100644 client/src/stores/counter.ts create mode 100644 client/src/stores/search.ts diff --git a/client/index.html b/client/index.html index a888544..7b92b5a 100644 --- a/client/index.html +++ b/client/index.html @@ -4,7 +4,7 @@ - Vite App + Search Engine
diff --git a/client/src/App.vue b/client/src/App.vue index 7905b05..b5722db 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -1,85 +1,15 @@ diff --git a/client/src/components/Header.vue b/client/src/components/Header.vue deleted file mode 100644 index 711c39c..0000000 --- a/client/src/components/Header.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client/src/components/HelloWorld.vue b/client/src/components/HelloWorld.vue deleted file mode 100644 index 38d821e..0000000 --- a/client/src/components/HelloWorld.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/client/src/components/Logo.vue b/client/src/components/Logo.vue deleted file mode 100644 index d2d3908..0000000 --- a/client/src/components/Logo.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/client/src/components/SearchBox.vue b/client/src/components/SearchBox.vue index 25f6c4b..cf0d73a 100644 --- a/client/src/components/SearchBox.vue +++ b/client/src/components/SearchBox.vue @@ -1,34 +1,26 @@ diff --git a/client/src/components/SearchBoxResult.vue b/client/src/components/SearchBoxResult.vue deleted file mode 100644 index a452573..0000000 --- a/client/src/components/SearchBoxResult.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/client/src/components/TheWelcome.vue b/client/src/components/TheWelcome.vue deleted file mode 100644 index 49d8f73..0000000 --- a/client/src/components/TheWelcome.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - diff --git a/client/src/components/WelcomeItem.vue b/client/src/components/WelcomeItem.vue deleted file mode 100644 index 6d7086a..0000000 --- a/client/src/components/WelcomeItem.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/client/src/components/icons/IconCommunity.vue b/client/src/components/icons/IconCommunity.vue deleted file mode 100644 index 2dc8b05..0000000 --- a/client/src/components/icons/IconCommunity.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client/src/components/icons/IconDocumentation.vue b/client/src/components/icons/IconDocumentation.vue deleted file mode 100644 index 6d4791c..0000000 --- a/client/src/components/icons/IconDocumentation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client/src/components/icons/IconEcosystem.vue b/client/src/components/icons/IconEcosystem.vue deleted file mode 100644 index c3a4f07..0000000 --- a/client/src/components/icons/IconEcosystem.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client/src/components/icons/IconSupport.vue b/client/src/components/icons/IconSupport.vue deleted file mode 100644 index 7452834..0000000 --- a/client/src/components/icons/IconSupport.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client/src/components/icons/IconTooling.vue b/client/src/components/icons/IconTooling.vue deleted file mode 100644 index 660598d..0000000 --- a/client/src/components/icons/IconTooling.vue +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/client/src/configuration/index.ts b/client/src/configuration/index.ts new file mode 100644 index 0000000..8be0d3d --- /dev/null +++ b/client/src/configuration/index.ts @@ -0,0 +1 @@ +export const ENGINE_ENDPOINT = 'http://localhost:3000' diff --git a/client/src/stores/counter.ts b/client/src/stores/counter.ts deleted file mode 100644 index b6757ba..0000000 --- a/client/src/stores/counter.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ref, computed } from 'vue' -import { defineStore } from 'pinia' - -export const useCounterStore = defineStore('counter', () => { - const count = ref(0) - const doubleCount = computed(() => count.value * 2) - function increment() { - count.value++ - } - - return { count, doubleCount, increment } -}) diff --git a/client/src/stores/search.ts b/client/src/stores/search.ts new file mode 100644 index 0000000..d8424ee --- /dev/null +++ b/client/src/stores/search.ts @@ -0,0 +1,41 @@ +import { ref } from 'vue' +import { defineStore } from 'pinia' +import { ENGINE_ENDPOINT } from '@/configuration' + +export interface SearchResult { + title: string + url: string + description: string +} + +const dummyResults: SearchResult[] = [ + { + title: 'Dummy result', + url: 'https://example.com', + description: 'This is a dummy result' + }, + { + title: 'Another dummy result', + url: 'https://example.com', + description: 'This is another dummy result' + } +] + +export const useSearchStore = defineStore('search', () => { + const results = ref([] as SearchResult[]) + + function search(query: string) { + fetch(`${ENGINE_ENDPOINT}/search?q=${query}`) + .then((response) => response.json()) + .then((data) => { + results.value = data + }).catch(() => { + results.value = dummyResults + }) + } + + return { + results, + search + } +}) diff --git a/client/src/views/HomeView.vue b/client/src/views/HomeView.vue index d5c0217..a8d5173 100644 --- a/client/src/views/HomeView.vue +++ b/client/src/views/HomeView.vue @@ -1,9 +1,21 @@ From 1841a7985c5040b9be606121edea5a84ac658285 Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Wed, 10 Jul 2024 10:57:22 +0200 Subject: [PATCH 2/7] Remove AboutView.vue --- client/src/router/index.ts | 8 -------- client/src/views/AboutView.vue | 15 --------------- 2 files changed, 23 deletions(-) delete mode 100644 client/src/views/AboutView.vue diff --git a/client/src/router/index.ts b/client/src/router/index.ts index a49ae50..e58491f 100644 --- a/client/src/router/index.ts +++ b/client/src/router/index.ts @@ -8,14 +8,6 @@ const router = createRouter({ path: '/', name: 'home', component: HomeView - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (About.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import('../views/AboutView.vue') } ] }) diff --git a/client/src/views/AboutView.vue b/client/src/views/AboutView.vue deleted file mode 100644 index 756ad2a..0000000 --- a/client/src/views/AboutView.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - From b93918f8265d8e99947595e5b226b84096ca004e Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:42:16 +0200 Subject: [PATCH 3/7] Add tailwind and update packages --- client/bun.lockb | Bin 141081 -> 165310 bytes client/package.json | 25 ++++++++++++++----------- client/postcss.config.js | 6 ++++++ client/src/style.css | 3 +++ client/tailwind.config.js | 11 +++++++++++ 5 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 client/postcss.config.js create mode 100644 client/src/style.css create mode 100644 client/tailwind.config.js diff --git a/client/bun.lockb b/client/bun.lockb index 8b50fccd827a25d1203def71cdc8ccc25f6195f8..345f33d46b4e3598f5f5cb2c4b358d9b8937431b 100755 GIT binary patch delta 37739 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 auy7eF-7Yj1 zqA_|kgC<6!3C=?Xqc}vPafnglkT}G7h;e@3J_BHGl6Tj??#o;2U$2*6@7lX|?W)?f zt4^Jwtt~G*&)?@XE2Pzs)?HU^dgDRt2PxSdzc}LIdTVQ)O(VuP^f4tnj@c2Jd3$QP0gOYq6 z`atq4p!GlxX!6aV)Qw}Pikj~Zp6FB*CiiTBTf9KW6_im;X78K?Qk5H>8`17ERKo4kiqeho$bQUOi z^f^%SNWMnEXoW_XYIF`LMTlLaMH(Hf(PWJl zW1Prd>F~TQv2Kc#}rH z#8RdNO9bR-v3*o=VR31Jtt>Q1?e_wV29+*qAqX&J_i3s6*$I^FJcOJEJhPSRN2@K@ zQfSGuCWEI|M1xXuTZ2Nc+V6%=MXDt* zX~YA9)q$)BN)jFvxAEU`VVc#8*YF`toPGv)w+K}9Q zOW`Ouaz1!C!Jcoi1rIN@jCc_|wR|Edd0=(8+9M%CoddOD5W!_%1fD!sJ5r6PY2Ycc zJ^@dWGtvg1!2XEB;v9?I*wCQ-44O_&>i`R+(GrxpbPr9X7L2eK*(Ma_3L|aBMNugE z2ILgmj-WoEdY8+wn9O;)=7>07dorWI|ZH`w;z;7Y*-hy`x&6*=!c*rA8re_jxQ^<%j&-~>*Mf%B?V&c{Nq2PwZ-G)i#eVQ8>xAYL}zf#mGvJ*V5g&%`b;FJ{Pm6ckp!gb`6z8-Kg%DaQN+6oJb$^_xVUYP0NUj?O6 zTA8NOQ1Ix#-3DqTKP>H|4&U!r`8j>n0U8KJs<;a%MXDa@0pQ)hJ7uVPr3Ir)EyLBw zMO%c;kW>CApya25qI_#q zjV&uce}@+oEiw4jl_5dEEs4Xncv)C|u&Vi>O8(W}y5StohJv!dwZcMmD9FD#69i$_Xte_`fs)|{@E^H4r__>bwF$yZ zjXwxl5AvX5Rd2MlbVRuo%b`AIc?G4)pw%x?6>Nn{M}$gL9DsuLHJXAzrgfMph8lJR`Q(|*GQm-4aon2eF5fuHPM!(1)7pK$ z#JlnfxrgU5dAvuA9N=|yj)#|5#iefmY~18@(`{0d^#j?0W9@fyyE!1}4%f62@?uA+o9h;oJezAPP zJJBi3yfo;!=iPnemL4tLZogZ9fjDRQthfKMvCI39>b)z6`W$6H$db{_TFFWH{#2fB zG#hR(LFg){8etT(3$cItW6d z?BW|IOMYhYo`an17tdnl>3(K5P2S~aHhgK&%{7vf{LL&=o{sOu@-BRTCrbfl7A_~@ z`$c&=zANQj__oSYpqcHKlknY1o*rm6j73Bw%Bg{|tf4G5F&j!S0BvO#zgTGjQh3bS zncUmYWH=12yFAlBmifw3Q!^VPCp9%o@6~}6I-=}uiE#qcRWBf!u^LcuL7wezViV+~ zW@f`B$k5|vv4&^_w31@4$WoA*?Ua-7{h>TP$SgjnCszi=qkU3yvozIJ5Mq=XW(S$r zE_r%$xEa%EkUX<_tf6OpK^UNI9D2C~$~Y-otZ zGfj4B6Klvps;81#S(Un9mFkX(qUO#)Dp__3jdMT(k$|Gju=h|?g;lAwN@`}?I1Ef> zTQh4cI|tKuvhqD6*zABuVt2J>CAAk8t3+3|RGb4=kgkf>_^Q;VsuWG{uJYctaSlp? z+A4nzTi+&j{Q2;YUAg|ZZ7Hmq%q*pX9X;~cP$%#-)}#TsH-;>AEoy@6DBN?{%+ zMVr}Zd3v;2s%)i(8(IrvqAZ!rtec#KZ!S;A_ept|$t-!b5rk-^jlHMF$Vo9~!&FFy zDRzgq6@(%sbqJ{rN-8!O@6}3bF;ZESlI|hZ6E;NZwV_*x-og)%8mQ>jY9|N@O6pmp z1}mu}NGatF?cgLew-_l5UAH&~Bswc<^}>`zCpDHO%1LpUr{HO78syo2Cg~S&G^fx> zIJ{}NK${72e^ZlW0~fF49SAeAE%Nk^X30515aJY#1HL9hcW_EAY@M7GZS!lqUGrc zX6ZTjy4qDc!NpTAnWLQ4$t!SF4BD@8j`HjTlVJ(CKJwm}IM!ZHZf|zzAPD2salrikhmy*MXC|sL zq|}k`)=`hLeDL5( zxG*E6kWPXCuc~pwa^zjmSOgiy)b1?Ljy6dmrWR=gYu%uFOmetn#!D^GGqoYqff3-UI>466QkvONHwhKUshEuMl!5_e zGD;=jsCz2+1vsiot=NE2rw-MU5133+M{qPV)Fw^Bqxa%lc`aLuoM)R z_h!XPtB|7RIm+%)Cb4l(dB*T~X%IZ#PqB_?uJjYQoGPwIs=Cf83#0TgII=Ft?h|92 zz>qCWI)rc#+(cbLa@tV~mFnE807vat=g&28R1S^9a+ElT>LL$L zL#i|6Or8x_fa#zrVJf){R=bReiym|uEIW^h7pD%ElR-8QmS>EKm+nJ_3Sg#ZnZ(R& z*|{`coRKXjm&Qxyv(@4bGM?s=afsd;7&G(**GqP38Y}%1DHx$vMw<*zz~Ncy8!L4i zTIB#u_&3!*YH_iG%c2Q=&EsCjC<_0c%gg&oGLIdbLLc07nC= zt{;y{S*-_+j>JnRampfVu!BQKF}zzS1-Y_zNDsl01$8No9Ilp8m-n&YNE1^JW4}hr zL%0tzNf*Jp80CmVeFY02Qb*M zqiu_j!qR4!HvA z4+$oz54b28sG~ULEpXIFC04~_qvgu1c&Txb+BtN*uSpsJPHiHE64&x-E1`569Cbzs z7b&DzZNB>G%Lk_}FEm*efTM~qPVo2l;M8%S-89Cb1jQ8hWgta^qJ)FtC2;+fzMQB^ z<&U9RMm=4Jl-j??NMQ*fr^AQOm#U8m%wJ!4)TVM0^;R5UlPjmhOYr8r$022PDua^0KY)ZWsvbrKvcVh!cqDR@YYm1jKPp}fAJ9B2q4XhXme z@B!#U)B*4V7~l`khbZX>5`z!XT0k>^W|!S)nHyA!`l!n`rre zv_cx1*R>81tqr^dkbHqg7lP79rSSjLfODE}lt!FU>=&mU3JI|I;cI0uwd53T}~ zaSfo18vq%)t?|EtQj6~c^dU<5j{qw77@$v0O7bTFQT0ouWXAzQs>hMxFIDtGLNO>Q z+L*I{KuP4R$%&GIx*Dyg$%&HOP2+1)@>C;DPLz_KOsyXYaEjnxDH-%eK8>XxD0!?U zD9KxEv@Iz93Bei-0i~XXgOXmPMx!+vqvgkyYl3)CGMorXu1x`@&mU1ToQ`}_>7~)$ zntn}675CNTL@C)%0o>@ii$`n61fcQd(MvYx0_uL?bl$A5p4!B=YgE zTo|P(5~XCJ#{U&1mC>4BO-j?0ep)~uqST>r8vn->F9E$e^$iU!=Vnl=x5ZMIpJ4m_MOZ+XgM4C?z*)bdx5p zNlAZ;mcLcY2Q63puwBdeT+66QsoT3XIZ;aP(RiX{c%Q}-rQ|mnUz3t(za}S29X?2N zjAVzj45AcKM?pz+Oq2h=P-@t5tvpdm{-E(hDS1L(|4IX8o}bhtr!)SVm(kLZwY4Y2e zye6e>$3sm{lM*@;P(K2dM@`M4Uh}HomgAG8*kOzHfl!`V2PkO$ZoG7i2 zfuJO6iZ9Y@rqQ5sEusA`NvKIlv4xi35|lnQDT!L+i#AmBOC+kOgGSAu6ii(}sXa8$p z#fNxu;Q#mznCe%yz@YT0xe@(4_@{QhdWC=E4){O2^Q8{ZmYs&~-`fGh|NqX;mkg8M ze|!f_`4Y=QrmcEIXWnRdSP`TKXk@ITf4S36&780C|v zyg~n?JK%B{q?J2Ps~{fq@7w{G_d|uW)c!B+fXnqQ@c+^dc<9qRUpPY93IE>?SlJ09 zHvVr1{C_*(|F3tzYaT9S$$X}PrO1gFT=-8&h{psT?#TMfzdz)NdE;Pi_NPj!Oew7}nVf?yp4k4SJ<;K>pM`IlYzM-l`- z3H&|@yso(LY-b403w*gV1Un&csRO}9fe)+$!T75#d@~7t5x8?*2wGlq;iKz9a7Ex7 zNN^N_#x4+C6Zl9M2&P?k;d@DNL*PF3Ac(o)!Y9>(;FiEENpJyzU{?t42z;U|1oLjX z@Dn7sEAZBC5G3Am;WOPJxF_)MN$?v49o<>VnqIfZihM3otQJ4*j^AnJ--To9gE#Qm z^}&1n2EPzrn|Epeekb^44ZutM2Jz$Xx$umJ;Op?k4Z*j(@4^ip;9Yoc5Aa99e@eV7 zXN|y5d*H&YjljF})x^gi$3UTVtq z<;9OP`8x2j;YkW>%3B#(CeIgykJV+h7O zK(Mee1a0_560|fxkm?6PFrV)S!BG-CB0)QzGbeFzDu3LLbtZlRcthuOIDjfOQqSJo*@H1E@CqsHNrZxJAb#Xa z4c!fqizT$1c(I=|75*j5hwA z0s7EMGs)=fLLvkB4Af+Fq?1dTbW%J>6Vj{bGDU`;Eod@2tV#mNFdb1-8ETv>43gm? znvC8sz5wVmRFl!U(oRJp2*WfP{UK+UCbK9qyf3*x&;bm6$T^fmJPJNqtEr_VLqH05 z0Q%%`}RfHa+kB>>8?9w-CoJ2VMYP1pWcM1WW^_12ce^fmeW;z^lM(z${=k zFb9x<*MYgf8vqC9F(E{lkHnk6TfhQfA@DY^2zUor3@icu2`uIAOId?*I=e3h#sH;& z4WK`r;@w0T23Uap08Z(JEMNeDkQeY18T!GB&FobU z;52X!I0=jZXjEwwj{#o;mB1!oGw=~>CI}xO@fdgrJOavqu>hThO#&th{EcO-k9RcE zSc2#`2*OAJzm*V114aDKGG;2zMiB~e3TX;gicX3~iV=#oL?8)B2I2uT&j9|9i%bPBWxcn6>(rn$g8U_Q-F8Hv6?KOh6Z`bWPjp&uOzEdV;_ z3;`klAHWxA4A5~bozO{jPauoc)2d=Ai}@FnmSumkuSphbZeff$r&576BA z0gS-MkgoxX=oqV{4s+;08eBOfhsDphCBRn*hmaXbAUs(kf;wr;h6#rVdi4^>Cr0 zwZIzyC!jVU0d)aapdLW&qcrucAP@o+U2806<02!m191WNNeMVC!$l25&8a*1hjsT7HX&?b%mTUrakS*n zBm75AiHy)9+XKi1x&x;nBY85?WQ=-3p+*a_u1l3tnr!t4B`?yf?+4J5l>#t;Mx7=k z<)s2?<@loYDjl>JK+6SHKx>|EoQxsXlnN<)1_Bf+13>kLo(4}nqJ~n#NJnox*`biC z*&%w;3TGq%R zCL~ng$JR2VF$}Ug*tN`VH*jY2Pdm1EVnf11L&73MqT;ygr_4Kw)>L@Zetg{PC7-r_ zeFPNRhlHZM@`EcpSL~gWe|_lM^x9eEgheP>|KQmu%4dDbe9C2%cZXKs<6dWjc6r7q z<-?(;{K%&+a+;?#t~G4Dxdn2fL&C|jzJLE=NNAr=+N__6oCxGZ;jsg2&M31e$lkWi zi`E<`HaRLJlFDco2M8@43fy`~_s645R7gaK13I{YTRvlre38N>48djizti4puP!~} z+wv7Cp~8^xFfM<_!u`VAD=RHkkU7X`-XQfX6WNeRn8CBui=X|BMX)S>U>);j1w5<* zq>QJ47+-|b8=}lqmz-#GWK$Rg0H2-G;Amy_NqetHu;@<|2r(TW=NiyoederTQi za*rRX%XH_gMip93PYdVsjvHWa!MZAYPdCh{Uk|}HJeoM<%gMRb)@Sj>>rpgjJ&G>m z8ZBJsoecAVh+yG>ha{WzhR!W zqTte7P%u8Mt$Oe72*dLEK6}1zh(J;YbrtWlk+sQmb5djIUlrd*4u!9NyT+L42bZ7! z`POG{>;vRrgI{&g#8%g`oE;Y{E{aT)lve|L6aK|U77_LPkaA=39ix;m*6*yCyziX} z&i(52tS*|x+h9121sHa!{qdb`?fu&{+JRu9aYr;B;6tInzUQvLvPS-h9{rw-k^NUK zJ?r-TJ*b946;8P>@s*pHmr=iIqkQP<)b~biS^|ym5EG`Npau^c!5?gbJLmCso0)en z{eq3m-iK1NZ|*t`^)Pi_>Q`*UPd+zr?3quKMYbE$tRC9=uN~5Jv_`P0eD!9Q$^!Tk z)Dfj$;c$Pz<~7TI9$y!AM1_Qfgk!ygIr8qD&qrkN6)rQ8W5P7S3?0H#x1i_6e8d*k zhCR>aEv&c!y7|;9(~$kZJ+`ty@mf6|vz6I>qwuaqYk^c8x8qXpH#dqjufwB5B8A7U z{LoewZq%>c*x0a9{p{D~Pjz7MUJN;~IS<^18awk?5TnHni!&@amVKL7xbK!&tyj*A zp%A5C^bvFY+4OpDFCC~>(60h{`L#z2Dw?`qs?IsZHVNcYJTaa9^xSv$Y6bl|6W22b!rDIE z{jfUc5T8l5^;^88@F9SW?7A16J#mpVe*f13S%1J53JtM%q^ z*U!-g{hE-_&TkH_aCC*EbVK?@B1=A)Jo2hj(6`k&l{}k@>Nk%#xyQFz$6nu4t)Smc zva@zC-u=Sp&#QAB_zDy?>X(^(E?n)={GymptSEBke#;2<^4Z1J3i<^p zIgK7luKo>wtUR?^Lbu$eW-0g4vCUf$GW9rp%jr^KwUwsGfaUy!=aaBNqx- zXY7O5zhXP+Rl7bE!tn@0xa!xfEc?ga9r^s+`0ABfHL3XzkvAa*Jq4$>R9m4ONNn(t#Eo$UTww$b}+9f{icrdJ5Rn*nh_YJ zYlKDV_pzMlpZ@v!%QL-@6Nbr+K+58ycVMAWR{l0ky9HsxjGpLsgbX=$JtXZNpXr#Q zrV!K>7UjsV?SNYYnk%OO_Pae_yB2n?DNd`gCg4dQA;j?Fz0AW9f&VesgLnKI?eEX0 z?A9bXd<;oO@t40wrDc38IHP_+N$YcQEvz%6#)%Be4lO*w0)FdjHbJ_K%3RPY#gI2s zpIJuzzLOqj3cI!5Ua?+nLS%?ZZGtz>hEME7WwrUDJs_UkeHTbe-Uh^|U!Eci-}2>^ zS!3`(R)!3#c{(3TdPRJ~E*2r)YQb0T!h)@zb{5b3#&zGDV{8MJN91dz12Ox6!gY!<|RIA!#5pdUd)ewvm0$o;DLKV7VxkG zcobtpOatQ0>hZTgjQZ6$L0`Sww}o+}L$x)nxTda=9=!1$JT;ygi>G~T?9xu%Mpibu z@8RrvhCN+@5+sQqfj_hefllpmi^4Lag?Cn-7_pHw@#Dk8Q&}R@qorlChdN_*(ZDj5v2e{B5jHI zuis#oRpnF))&H)pDyL{JQbO9ppB}~k-Go&q4e7R5&cg6avVXL=YqVw3kMoq~;sG0l z`GyG5CoCU!fH^QnzV#49T8_#Y^_zY+wP#;{YduCA9L#>2dgJ+CSTJgL1=;IKKlb&z zx-q+2VF72~V(9)nL`*#WTda0}UWFdqefdHt>cKsMA0TcS|Aol!LtR@6p7OTtdsSE! zlbTu0UX`Jz{9x4YQkt}>uRV7AODB~6g<+GYyYMM>&52R^g-0J93;6c)ITPQh_R3%R zOBs@@t9I(LpS4`1odK{%b@hy^W5z118Z*!SSYfS ze9U1M%l7k+4#V}QI;qdQiCY`~*wEdBMpu2+!(B}L%wg=$u0f*#EOeWlw{e2aL`#OY zAANzhJHou9^~;z-XZ0U*@O+6K3J5To5&Csa?LUppZsIb7)<1OvEs0o&+8Q^hu30S0S@rqKcm6=x>T3$MG~?avt8<(Awxr7M-9{}~dT6(xU#?Viul;YSBl{SU6Bz=>;(aWgKZmlu`n62n zJ7-HLUR*R~ilnyxk9yBm8nATNSP;G7d*7va)UU<=hm%~G1 zuwUxMAH%v)zewx+$_cYG&y2aNSjWKtJ!Qgv!BekGFW&PPG(*2Y>-4naWvkOFouEh! z#rWHLaXU1k^}D%jn=)3c6kTs98p>&jetTDku#|p2Q%-%TG(!pG4}0-_C@Y5c;un6w zP+jV+K7{$J-!V^r82`iZ38g*Y(muS`WmK!*=Qv>NRl|alS6V8@5lc7_#hWj^RQ~G= z=$yX%ZIl(AGWfd7Y~P*zUc}Z?yFz>HM*5w&hpoD z(&-#S=^HNk;_FVap1%6UUN7gpzIxO5yD$EvGC5%|pG7uq3|8L@=DnWq<)L+1wCkp0Dnuj(>Et!mx>;m4&QIaj zKZ#6uZGARxdma8gn9aLihX>M!sWvU22Y%IKp7$Ntq%$kbrL19mC24Au-@e0q#2FUe z^CTLp-4tfmuY6LPqWHElhflu2y!id=%*R*1A8cE_^B?qBlShF^Q4R;6$l;+k&?o(d zvGMEgm<%0~Xb#a3MB~p5sv%$f&as#`f?p5(qCRH(WIFvo3-zihZ=fpuDzW~(cc)q0 z)_x5`(dxQ7*80Xx)>9lgoTuHyyvjn4>2Wox0ko(Ch{pa@ranu-@3^n z!u2b~a>g|4m{7+xMr#>-sNcDGAZz*lq}z*rLW}6_Cz8MN9rN}5!xaVj$|yP9VsG-n zKQJF}{RXln5r@+jExTuec?#cffiJwpjAH#!yyQ0C!Ss8_h95J3k`Ww(y0AVe*7U2* z^xL(N(;g#-dX$qd4}%HojLeVR#uGyx#e3buSgshw6YhXkj^g&;KrfBrZ{K6#+!NCRISHI3|pGRV+rME|3P+F&i#qUh{{`oScY2y5H#jk9N_|j+|au=ba-;B2J z+~$&buil|&F0G01|KTj|dkPx*^?biu8?o|X_3m{F&yfa2JmEO=@W(=`U#PaN;Zes8 zU!3=cIhr<5R-fHo;>;qx4>236U$y3t72a>Ja~?WY`h$3YwLq-?Y-c4&fqKWVvcAJu)px3{&>*uYO9_0>@y{;u67m~ z#uibFn`QF~iKlpR-o+i4U*~-}ZoomVW>l9qqjk6SaqpulG0*2eZUKd#9^c z;H8S?!QdN!?>(0n?QcBDlmH&5f%Y?3?`>?o_U5>B@QuJ9m-o#&4|8&SRu`Nt`=ns>UHf&gm!qhK(Q z_%htJnp0?{YX^gI2PJMf=J{5!ms>(nah?@7{Iwfy3wZ`t%2uqiir?1e-}Dpf@b-Ph zW4<*NY-N@*#Wj{v+=FW^faiUYj?9pOkZGNo}S~WIZe1{(^6XSTo zU~y`N$5>G^sO|kWTU^5ZCW?Fb+9dI3erckZ$$uFo8ebO;6+@mAuZt30x2fD^$kWQj oJZ|YD`a6#<$So}%Z7IvmS1PS|rYP*&j0`b diff --git a/client/package.json b/client/package.json index 28c8b28..ec1f826 100644 --- a/client/package.json +++ b/client/package.json @@ -14,24 +14,27 @@ }, "dependencies": { "pinia": "^2.1.7", - "vue": "^3.4.29", - "vue-router": "^4.3.3" + "vue": "^3.4.31", + "vue-router": "^4.4.0" }, "devDependencies": { - "@rushstack/eslint-patch": "^1.8.0", + "@rushstack/eslint-patch": "^1.10.3", "@tsconfig/node20": "^20.1.4", - "@types/node": "^20.14.5", + "@types/node": "^20.14.10", "@vitejs/plugin-vue": "^5.0.5", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", + "autoprefixer": "^10.4.19", "eslint": "^8.57.0", - "eslint-plugin-vue": "^9.23.0", - "npm-run-all2": "^6.2.0", - "prettier": "^3.2.5", - "typescript": "~5.4.0", - "vite": "^5.3.1", - "vite-plugin-vue-devtools": "^7.3.1", - "vue-tsc": "^2.0.21" + "eslint-plugin-vue": "^9.27.0", + "npm-run-all2": "^6.2.2", + "postcss": "^8.4.39", + "prettier": "^3.3.2", + "tailwindcss": "^3.4.4", + "typescript": "~5.4.5", + "vite": "^5.3.3", + "vite-plugin-vue-devtools": "^7.3.5", + "vue-tsc": "^2.0.26" } } diff --git a/client/postcss.config.js b/client/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/client/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/client/src/style.css b/client/src/style.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/client/src/style.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/client/tailwind.config.js b/client/tailwind.config.js new file mode 100644 index 0000000..bd3eb14 --- /dev/null +++ b/client/tailwind.config.js @@ -0,0 +1,11 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{vue,js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} From ea668090d0f41c27d817f6982d27663746a91c41 Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:42:24 +0200 Subject: [PATCH 4/7] Remove unused css assets --- client/src/assets/base.css | 86 -------------------------------------- client/src/assets/logo.svg | 1 - client/src/assets/main.css | 35 ---------------- 3 files changed, 122 deletions(-) delete mode 100644 client/src/assets/base.css delete mode 100644 client/src/assets/logo.svg delete mode 100644 client/src/assets/main.css diff --git a/client/src/assets/base.css b/client/src/assets/base.css deleted file mode 100644 index 8816868..0000000 --- a/client/src/assets/base.css +++ /dev/null @@ -1,86 +0,0 @@ -/* color palette from */ -:root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; - - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; - - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); - - --section-gap: 160px; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - transition: - color 0.5s, - background-color 0.5s; - line-height: 1.6; - font-family: - Inter, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', - Roboto, - Oxygen, - Ubuntu, - Cantarell, - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/client/src/assets/logo.svg b/client/src/assets/logo.svg deleted file mode 100644 index 7565660..0000000 --- a/client/src/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/client/src/assets/main.css b/client/src/assets/main.css deleted file mode 100644 index 36fb845..0000000 --- a/client/src/assets/main.css +++ /dev/null @@ -1,35 +0,0 @@ -@import './base.css'; - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - font-weight: normal; -} - -a, -.green { - text-decoration: none; - color: hsla(160, 100%, 37%, 1); - transition: 0.4s; - padding: 3px; -} - -@media (hover: hover) { - a:hover { - background-color: hsla(160, 100%, 37%, 0.2); - } -} - -@media (min-width: 1024px) { - body { - display: flex; - place-items: center; - } - - #app { - display: grid; - grid-template-columns: 1fr 1fr; - padding: 0 2rem; - } -} From 43929e3491413ec63a70994970d0a3e2949ca063 Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:42:37 +0200 Subject: [PATCH 5/7] Use tailwind in client --- client/src/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/main.ts b/client/src/main.ts index 5dcad83..09b3551 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1,4 +1,4 @@ -import './assets/main.css' +import './style.css' import { createApp } from 'vue' import { createPinia } from 'pinia' From a4e939fe0bae7a0ec67cef69aa6c170da0b65d7c Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:42:55 +0200 Subject: [PATCH 6/7] Rewrite search engine interface --- client/src/App.vue | 33 +++++++++++----- client/src/components/SearchBox.vue | 26 ------------- client/src/router/index.ts | 10 ++--- client/src/stores/search.ts | 9 +++-- client/src/views/HomeView.vue | 21 ---------- client/src/views/Search.vue | 59 +++++++++++++++++++++++++++++ client/src/views/index.vue | 17 --------- client/src/views/results.vue | 34 ----------------- 8 files changed, 94 insertions(+), 115 deletions(-) delete mode 100644 client/src/components/SearchBox.vue delete mode 100644 client/src/views/HomeView.vue create mode 100644 client/src/views/Search.vue delete mode 100644 client/src/views/index.vue delete mode 100644 client/src/views/results.vue diff --git a/client/src/App.vue b/client/src/App.vue index b5722db..f5300d3 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -1,15 +1,30 @@ - - diff --git a/client/src/components/SearchBox.vue b/client/src/components/SearchBox.vue deleted file mode 100644 index cf0d73a..0000000 --- a/client/src/components/SearchBox.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/client/src/router/index.ts b/client/src/router/index.ts index e58491f..751ae1b 100644 --- a/client/src/router/index.ts +++ b/client/src/router/index.ts @@ -1,13 +1,13 @@ -import { createRouter, createWebHistory } from 'vue-router' -import HomeView from '../views/HomeView.vue' +import { createRouter, createWebHashHistory } from 'vue-router' +import Search from '../views/Search.vue' const router = createRouter({ - history: createWebHistory(import.meta.env.BASE_URL), + history: createWebHashHistory(import.meta.env.BASE_URL), routes: [ { path: '/', - name: 'home', - component: HomeView + name: 'search', + component: Search } ] }) diff --git a/client/src/stores/search.ts b/client/src/stores/search.ts index d8424ee..7f26a4e 100644 --- a/client/src/stores/search.ts +++ b/client/src/stores/search.ts @@ -6,18 +6,21 @@ export interface SearchResult { title: string url: string description: string + summary: string } const dummyResults: SearchResult[] = [ { title: 'Dummy result', url: 'https://example.com', - description: 'This is a dummy result' + description: 'This is a dummy result', + summary: 'This is a dummy summary' }, { title: 'Another dummy result', - url: 'https://example.com', - description: 'This is another dummy result' + url: 'https://uni-tuebingen.de/en', + description: 'This is another dummy result', + summary: 'This is another dummy summary' } ] diff --git a/client/src/views/HomeView.vue b/client/src/views/HomeView.vue deleted file mode 100644 index a8d5173..0000000 --- a/client/src/views/HomeView.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/client/src/views/Search.vue b/client/src/views/Search.vue new file mode 100644 index 0000000..d655e10 --- /dev/null +++ b/client/src/views/Search.vue @@ -0,0 +1,59 @@ + + + diff --git a/client/src/views/index.vue b/client/src/views/index.vue deleted file mode 100644 index 4885919..0000000 --- a/client/src/views/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/client/src/views/results.vue b/client/src/views/results.vue deleted file mode 100644 index a06cb9b..0000000 --- a/client/src/views/results.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - From 4dbdcb0c98f889ed9778d636b9a60e8a0e12d771 Mon Sep 17 00:00:00 2001 From: am9zZWY <46693545+am9zZWY@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:43:42 +0200 Subject: [PATCH 7/7] Fix eslint errors --- client/src/router/index.ts | 4 ++-- client/src/views/{Search.vue => SearchView.vue} | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) rename client/src/views/{Search.vue => SearchView.vue} (95%) diff --git a/client/src/router/index.ts b/client/src/router/index.ts index 751ae1b..7140276 100644 --- a/client/src/router/index.ts +++ b/client/src/router/index.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHashHistory } from 'vue-router' -import Search from '../views/Search.vue' +import SearchView from '../views/SearchView.vue' const router = createRouter({ history: createWebHashHistory(import.meta.env.BASE_URL), @@ -7,7 +7,7 @@ const router = createRouter({ { path: '/', name: 'search', - component: Search + component: SearchView } ] }) diff --git a/client/src/views/Search.vue b/client/src/views/SearchView.vue similarity index 95% rename from client/src/views/Search.vue rename to client/src/views/SearchView.vue index d655e10..ff0e0f0 100644 --- a/client/src/views/Search.vue +++ b/client/src/views/SearchView.vue @@ -48,11 +48,6 @@ const { results } = storeToRefs(searchStore) const loading = false const query = ref('') -const suggestionResults = ref([ - 'Apple', - 'Banana', - 'Cherry' -]) const search = () => { searchStore.search(query.value) }