From c58fdc0fbc3567761b75f53a487eac5426da50af Mon Sep 17 00:00:00 2001 From: dmdgpdi <33450285+dmdgpdi@users.noreply.github.com> Date: Sun, 12 Jan 2025 20:38:59 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=EC=9D=B5=EC=8A=A4=ED=85=90=EC=85=98=20?= =?UTF-8?q?url=EC=9D=B4=20=EC=97=86=EB=8A=94=20=EC=83=81=ED=99=A9=EC=97=90?= =?UTF-8?q?=20=EB=B6=81=EB=A7=88=ED=81=AC=20=EC=83=9D=EC=84=B1=20=EB=AA=BB?= =?UTF-8?q?=ED=95=98=EA=B2=8C=20=EC=95=8C=EB=A6=BC=20=EC=83=9D=EC=84=B1,?= =?UTF-8?q?=20=EC=9D=B5=EC=8A=A4=ED=85=90=EC=85=98=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EB=B3=80=EA=B2=BD,=20=EC=9B=B9=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=BD=94=EB=93=9C=20=EB=B3=80=EA=B2=BD=EC=97=90?= =?UTF-8?q?=EC=84=9C=EB=A7=8C=20=EC=95=A1=EC=85=98=20=EB=8F=99=EC=9E=91=20?= =?UTF-8?q?(#956)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: url이 http로만 시작할 때만 북마크 저장할 수 있게 수정 * chore: eslint에서 node_modules ignore 설정 * feat: 익스텐션 default 아이콘을 비어있는 아이콘으로 변경 * ci/cd: 웹 관련 코드가 변경될 때만 액션 동작하게 수정 * ci/cd: 브랜치 변경에 따라 워크 플로우 타겟 변경 --- .../workflows/baguni.test.client.deploy.yml | 5 +++-- .github/workflows/playwright.test.yml | 5 ++++- frontend/.eslintrc.js | 1 + frontend/techpick-extension/eslint.config.js | 2 +- .../src/chrome-extension/background.ts | 14 +++++++------- .../src/chrome-extension/checkedPick128.png | Bin 0 -> 5379 bytes .../src/chrome-extension/pick128.png | Bin 5379 -> 5777 bytes .../src/chrome-extension/pick16.png | Bin 476 -> 527 bytes .../src/chrome-extension/pick32.png | Bin 933 -> 1067 bytes .../src/chrome-extension/pick48.png | Bin 2095 -> 2381 bytes .../src/chrome-extension/uncheckedPick128.png | Bin 5777 -> 0 bytes .../src/pages/BookmarkPage.tsx | 14 +++++++++++--- frontend/techpick/.eslintrc.json | 3 ++- 13 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 frontend/techpick-extension/src/chrome-extension/checkedPick128.png delete mode 100644 frontend/techpick-extension/src/chrome-extension/uncheckedPick128.png diff --git a/.github/workflows/baguni.test.client.deploy.yml b/.github/workflows/baguni.test.client.deploy.yml index 757ad83fb..10a486bd5 100644 --- a/.github/workflows/baguni.test.client.deploy.yml +++ b/.github/workflows/baguni.test.client.deploy.yml @@ -9,7 +9,8 @@ on: branches: - 'develop' paths: - - 'frontend/**' + - 'frontend/techpick/**' + - 'frontend/techpick-shared/**' workflow_dispatch: jobs: @@ -70,7 +71,7 @@ jobs: echo "docker - pulling..." docker pull ${{ env.docker-hub-username }}/${{ env.docker-hub-repo }}:${{ env.module-name }} - + echo "moving to project directory..." cd /home/project/baguni/develop diff --git a/.github/workflows/playwright.test.yml b/.github/workflows/playwright.test.yml index ba1fc3514..7002df04b 100644 --- a/.github/workflows/playwright.test.yml +++ b/.github/workflows/playwright.test.yml @@ -1,7 +1,10 @@ name: Playwright Tests on: pull_request: - branches: [fe-develop] + branches: [develop] + paths: + - 'frontend/techpick/**' + - 'frontend/techpick-shared/**' workflow_dispatch: jobs: test: diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index 1e2d81ed8..51f6c42d3 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -20,4 +20,5 @@ module.exports = { rules: { 'react/react-in-jsx-scope': 'off', }, + ignorePatterns: ['node_modules/**'], }; diff --git a/frontend/techpick-extension/eslint.config.js b/frontend/techpick-extension/eslint.config.js index 82c2e20cc..9c61501f1 100644 --- a/frontend/techpick-extension/eslint.config.js +++ b/frontend/techpick-extension/eslint.config.js @@ -5,7 +5,7 @@ import reactRefresh from 'eslint-plugin-react-refresh'; import tseslint from 'typescript-eslint'; export default tseslint.config( - { ignores: ['dist'] }, + { ignores: ['dist', 'node_modules/**'] }, { extends: [js.configs.recommended, ...tseslint.configs.recommended], files: ['**/*.{ts,tsx}'], diff --git a/frontend/techpick-extension/src/chrome-extension/background.ts b/frontend/techpick-extension/src/chrome-extension/background.ts index c166552ff..ce0e6038f 100644 --- a/frontend/techpick-extension/src/chrome-extension/background.ts +++ b/frontend/techpick-extension/src/chrome-extension/background.ts @@ -71,12 +71,12 @@ chrome.tabs.onUpdated.addListener(async (_tabId, changeInfo, tab) => { const { exist } = await checkPickByUrl(tab.url); if (exist) { - chrome.action.setIcon({ path: './pick128.png', tabId: tab.id }); - } else { chrome.action.setIcon({ - path: './uncheckedPick128.png', + path: './checkedPick128.png', tabId: tab.id, }); + } else { + chrome.action.setIcon({ path: './pick128.png', tabId: tab.id }); } } catch { /* empty */ @@ -98,12 +98,12 @@ chrome.tabs.onActivated.addListener(async (activeInfo) => { const { exist } = await checkPickByUrl(tab.url); if (exist) { - chrome.action.setIcon({ path: './pick128.png', tabId: tab.id }); - } else { chrome.action.setIcon({ - path: './uncheckedPick128.png', + path: './checkedPick128.png', tabId: tab.id, }); + } else { + chrome.action.setIcon({ path: './pick128.png', tabId: tab.id }); } } catch { /* empty */ @@ -122,7 +122,7 @@ chrome.runtime.onConnect.addListener(async function changeIcon(port) { const currentTabInfo = await getCurrentTabInfo(); chrome.action.setIcon({ - path: './pick128.png', + path: './checkedPick128.png', tabId: currentTabInfo.id, }); }); diff --git a/frontend/techpick-extension/src/chrome-extension/checkedPick128.png b/frontend/techpick-extension/src/chrome-extension/checkedPick128.png new file mode 100644 index 0000000000000000000000000000000000000000..4aafe9893191d304189607867f804f893708ad4c GIT binary patch literal 5379 zcmV+e75wUnP)Z>o*9M7Z86Y2m+IcEJ&~%TW=uhmx26YfFu?Y$XF$D z@-yTUc{0y0Vf!(PsmyXstf_A)*9UZ6fmJ2QQo=G3Y0TS!0u4Oy;6r`~X&-$&2+(o--$xH0)i=8f1!n>`HUaw^K*LQ8kVpV{@RMNBfk=bT zAL1~)>^uX+x5Fp(KL85OMwWL&;9O+-*IA8Z-9x7N$lHkjqfLF@@hZLVv<*<`e=@?A-6(9&Q=AQd zc?Hq}A_Vymc-{Z`e;wrWp`$4D-wt?rJ5O~Ue6|4+6|f<|EMSA5rRBGBerE-s(Ens) z-@ljLzxj524WiM1-wv4)Eo{X9m!judx6p2#FpJ@slr)E9(K)Af)COcBFpW^^7?2i-%7L}0S zzi3}| z0(?1stxgHR>nC>})-OMVf^!jeZpq9?GW5~Kd?1QDn5{n4WKg1qug9;|DFNvB29Kd& zB69XmV*H>1ATW0j%_g)6;p_e<`v)hk1zkdbQuZ|gVPgw$a4C;&a^>1h5-uwx5U;CyK^8BzWh1*BoN4?7Y_mAD8kFrF4q|bsQUd!P%sg_?LDdS zV-+ANUk>$hz|U;MoE?T?7#*B;z0L?g2%*sb1Yp$zObo!E$;fM#f~D7}ae+YFWB6wC zzbWlfI|Q6kmw(@`iJa*h+63@EFfNi#s{j+;lWwg zTss34`frD@wOhM?n-s zeR*T#6+d|w{Ymscit)vH*Il~+WcpX~DmV+70aW+<1W8zCQ2TYc&F^{;dC`a~-f0r-02wPB5@Z?gzM3ncfC)<ob#+j9G3nZC6M#hj zSeAXa0;YBUnbmW-w`Kbz#t1!3jMc3wRabEm521mR_?>%$uG-G}!dL+Sc45jeO6xN%vnddvUILXUhD z$w!bN5ZM5|UT>lYkgy&G7}fOO`PLNcN3Q+z1D*d`v=6n~#~+X*fWO73&)>B9j9?E|j!*K{BV7f|WHw*g20-S#_HE&zGi_h?k;e*%)_AFf{K53B+rR{?24 z2rV-VW+)C@xPO9`6LDGg-45YO8hnoKp}j_%_&zddy?-zs4nF+nR{B4G53Cqv*>^jH z-CI1sfg?MC3VnIz2Z;o7ZJ-$g;b4ldS*-w+t{?3|3_uP3Wa&38^+LDi-&BJ}2oVop z3ar!yC_Vq$Aq{@GbXiNkrODrk{(oNgvu#if&#wMC4J#FZLjUcMj6bgP2lPgNBXn-T zAh05lZ}5YEI)W*%G67)g{~;7iM0M?syrtP4Bns$#J^3T~VJiQEDX}sepjiLykm~-z z<*PiV0VTdqj1XM#2Q3uLae#U-C#HYLu`&iI^xqEI_s@0zV41(%`58dVywN3vqOJx4 z{L%9Rm=Y^tfYSA&J%s*qnYTLo@|uJGKy;tNf^PL^gsJI2VI>Sunm)BhxOyYMM(y`S z6FfQt5Tyrz8i1KGT4n#nu@V8m()6hn!qq*%UcYJa=Q{8pE`eVT4jKne+lSQw%z&i} zK%xKk=-s#vV?I7u-X})N1q48?1Jq-V@af;T4*z;A-3CbX4+X7I?d;i;J?ITs*>@mg z5Wy;h`PjDAKc`{o3{c=uc`O;cYixy&)N z=>H3rCICyP|K5OtCN!Wn!7O}6f0-@$S&Gs)S(Pd}MV~itf8E%i4unS44N`cPG%|mU zbJ2XUrlfL>zaa*v>n+tw5}`sO-$cjSis13<#xRrruRkL!3CmvgU0qMqKcGd?ftSM* zbT;}}c>)Q6?IVn{0MFbY7M*U##vG))wtkmS)FAr7MY{o2MM&p2uBwb6L#-uVwgwEH zHsD3TfAfn2m;*}_fMqWG7V2-(yZw+tr8X1grw)GN$-wBWRvj&pAT(^Xc&5K~+Iwo3 zt{l;^kqSk=PtE7YXxq%bu={~Ap~0qFqnnwo_~SGzMF5uC^&?aNU64@-^vkhFBs3jP z7}z*wRl^vidqJ{U+B6X50yKU+>s3~yGFLoJ`%WHrbm!-L1d|Rh9b<+dlLG4qv>V{t zt6i13=s*9QummiV{sOi1-ZcoXK$cWJuETNP5TH+U&bOTsd@kDz5k}cQUqXG^q;6dNFxws>8op-Kf7AT>KmV+-U@VLN zlhqH^U~KT+Os9!Mb6pN%I@i#wKn5OEJE*;oe(;gHV`8q+v?B}6u@0*Z;qt^7BM<>f zTY|e^aNiTm+T$u8A7N5&1Yn5;8}cJq;^ zv`Y^sqHTUQIXl7+BwYlW?wvA%OnevUfuM0;7jnjvgKNwV$g0NYEz*U>;4^nJHtvfI zk^VQZ04!7hmO=l?;1jDK(C5PQUJ0|K&SrgF0cIp@CSn!>iO!)$<>;II z_i~jc?^X}eshF|BX9d$R0Kokd_ySE&LEMYX7<`}dGvGJ)m!BQN0H7J0Jz|;AE`NF*uH@_b~dB)Cr^H=9~JI z@9J$yC+A&N{eDPOJ;DgsS_@KZrJ+{j5RJ_~6z?%oQx+B?5&|$83mO|n3*CYq5H)(F z8qDVkSja>W!2hUpe*U_cuN-l1|9|}Qb0al<>JLV*VNs~5zklxsJo{}%$tx-+$^=B7 zoZ+zQ!F%}0e;z@>L@cZ#Xwg0Ys_XC6vHnXYpgvN|Zd0CZp;<^Vitu?E{PtLw3Rool zC+g2uKU1*8R?&LlMtk)}R`{y_>96;ppfwgK01I09k*xl`cR+NgmRdz;3^~hOY^zZn z85_p_Gboq}3lV_a^a&Qz^eIt)=x?~h3>#8rbF06F&fTj2em3~|>5oMzI2((x0Y;0V z|3v-0og4X4r)q73&&;AZ<`f+x_YC1>?`OaM3JRviLKt8XO`meWXYZam=3J%geR*;9 z_yi4O~7ZHpBCz$ z6>~GdBD#Lm!5--C-i+=sC*Ia02oVHrh@H+n>i_iL{{aeS#@q}r@3L>~Z$R(HJ;`=N zAAxN|$ZYCEZedH-3p2p$nkhH`lQ^N^W=xsPyeI%{0qQb3@{h{XX^i6vj|dw zRud=bTFdmo@!RSzpkN`GSpepx|6Zd0S_n`weCq9K9UfRpO{5^%iQ)5N^)C)HtAKgv zKkU@hUt9eY+eeq!vkDx)(!=DSs;&Ni`wR*ehM5^)R{Bp?e|6)&EZ5eop4RqD!G|oX z=1oZ+jw>uy|AH|S1I*L%wW{@g9qTubPK`Y(fzjN42Cs}Dd*Inwk3cV&9kVgOaP)YV zQj)N9v$pzgNo9;y)mUvFpjOQ=7jSj$QEv;LL&3r^lK|i>O`o#Wf1l0=E0~O2$_=3P zT$Blnqz1A(FoLJ&Jpj32c1$e*vo?K7gO7ua=(%4+LCalb$s`wR@@k#^{wMnfP_PtC zZ3E2G^eH|2Cegpe`9a^il`g9LwH6@2x5oiWz-Nh=ngMXircY$`f3H#4A)X$37f`ai zfmX_layAe?FNWW8F_i$!()FXd@j%kNC@!C<08Z;ksfVqgNk>&-zyI;C_Mu>@m`VVq zZTgg`zYh3-i}ayyyx@F(V81|Q3=~TcJO`p;;?|V1zNAvfxQx_X*0Kj#^ z0<@qId{(G`HE1mW)6#!x+*nh;1aUN@1Kg*{+OP4_DCzNsxZnHuS6@NFO3+#WrlEhL z{##&+WdprtsD*DXA1F(FTd04vXzvDA?Fv6L_1}6RYcbidi?;ZYqPuy}gJlBq{VE)QuJ3&Q6x^XFU23ZqUFgXP zf!gZ-;t&c}j)^(FMF0K4;M+;Z_1^hG>e>yB0v<%4`O~HiY8%kU!`??i-iB=z@jwfZhq~`)D8q zhU#OUP5Y$Fg2m!o70`zMd-wjV_W5tK8;_^?_O5>qTK}F@UA}=M92V;D4$h1NoY(ZJ+Pza#{~c@E zgs9V;*K<%y7moLf4Uk@|-rx}wbOvXtfV1d7QGa#&A@~KGzJmvVX#Hl+pO=6=FIIoI za3%ws)%2;VUB0k!iBr5%(xtWg9M)HRk5mIi0T09A@-ryt6i#J;vzk67onKwQt9e`k z>-^lw5+mp{c^XZUF;@5#pFS_8-5tZ}Dj+p|8smmc{k7Gv18*}QEYkyx7H;DCr6Q01 zkH0v8g3jSo0XVJcQ_}lkW0OBgc2~o_`rrf!_}JRcaCkf{rQKb{2?02b{xkJoyW5E9 zxkL}QTW;3$OJs03Ol$gz&)-#?WPmaH&uQM-c(0T^HQ9kSJbN1n?d zMIO;vfS?QcILa&AhND9L7Xb|w;CuezAW?s+)6lG*Joy5=j+fqksQI6K{(hnUi-Cp! zc=}IzzYh3VfCq&7wRaC~L{0f|yccV$KNjl0AW#+H=|2T~QrB)BRW9A;5?}EIG!iJE z)1DE;Lj4yADge^-iKzcwun=w<{{ZLc2=(6(IEAyYqdr z`azfS5X`lsk8A_barwjl9v_dMK*5DV769q_mx4X{Sv_Diee#fN@%P2(_i=vm{R;J8 zL=XcEM~|^K_Kg?D?qD^{47ugHi*dg#U74tD6J+C2@RXrCN zy>R8)lir;_HG__7`rMK}pX32q@(pYZ9^v2qWAXVfFhV`}@8bqjKRtyB8krwD%tw6H h8we2|LBWN_9|4)ub7(3|t|tHh002ovPDHLkV1fnkUHRaReu&HNkl2t8&9sC9x`wT+948myw>pOTR#@ClI#cd(yJ2EPIJ*clY_} zGfQA*@UvJfcD^DPz|3GUK%f53Z=XRp1^D{iJA2OIJJ4YwihpZ&p}4pUfZ-oH@ZQHK zv@<+n`0wLRK-uKIa|b;*1#pOOLx){O1D@l@ zpTAsb0Z8-@a1T06hARL!FJYYdz_T1P%_mimbOEb`xPdjp&(qssg%Rl=I@BW3zs_nT z>mCx#d)`L;@AK5>9na(Qm9_yo`frB2u;Yd8d5W{)FMp3fT0n##9Re@bli@F6O%Z}# zjo~^Eeniu6kbM7Ma{tn6j`eu50ZbH#qC+AE;ZO0ooMUAfpo#uVUw#2=j;7zhUAQbR zo!390s(+r1JtWnDYz&4ceK$~6SxEu-?R&Ss15MVyhtFY+@#5jld(iM3xUEYZ;7fzg z44^Y#V*y4GB0UW8qt6cH94jdR9*T!`p`S$m|Ng6eSYz~ig9r5o3;;H^u;Slm+85@J zA%Wx$h(YKa?Az0Cet+U_cYfPUcBEiG#{o>(A1MqhDj_|u zFz3n{fo?@?;iprU;8e_uQUm zntF@Deh5M*}{vrVXhpb-B3Xm9_ubHOUX z!8^74&j9^L8>nu-+t>meoJ*tYd6G*GfPV&^DS&)KjRS>uJ|B0!m0^I6{t03Bez(s3 zgRO0L=RhKS>9w~>AdpEf9s>B%!`R5_$}m9D@87RIz{AUnYfk@Z5;VAfy-T}NcFc zv!*Ly1GJ(4OP~G!+A}~H%3AlYxO5e=&!6JIIS0UAK-}kyI`C93GI8>(1OqhDzvuF$ zbw-==_elSs)jwnhc+^T?H60}gB!BUNVso@V>6|Cd0Bz_$e8sh&{V*yY)J1>Y)=qH$ zHbKLB@vn32@$4Axhuf>TAKqLJJ93K8={pr6U1L`jAf>wM9-Lun| zHhNz1lXlUcNdKj;pFAfn0Ezx<{NAwZi_3d2U&0!rUGc{bpz3~`07_5vxqmDN;xsVA ztNP&Ci3$LvJ3q=W_XX+K?*y%yYBd3IgD8@V$Slt(!biBe3X?9yA?u z7U;jp2zD2Cz=MW$a|V#zKvNRnQH(!AW6|u13P6+J8}!=q^{4+9#UH`_qxF$m0h%ek zQU%0izaXoFT;t?9F#(8Q9Df^@eTVO|2Wt*0{-_7Wb^nRgQ@MA}_DRT>j*^9cAmQM{ z(m!uH_lem6ME_WSOi}E^x+4~U)J#LSbvcEA0YDsnpcgR)AkT8iH|Ie}D0_K>zKEKVoo@ zEWG6Io0%@P-Uw#hzo)u@5?rg?$%)tiU%!9nK~vcCOwhkC?$_-S{J$*p zNJo);I0*ug4bbcLS}mJ983t(3duN6I8*Be#?Vla!^fyQQwDuG10Vx9b3w-pnmG^Wa z0^mC9zf}&T*uG|>eSg4p{+bR1;Q}iCw>Dt;zt9p(7XV)Nedg)EP4S1jc!giE3h-P7 zqzNI+nPJF=;;4oDCs?`-(Af3E!!OSQ{Wp0*?!pxis~<5x`aJP%WH9&sK|dV4|F5l= z%`aU58oPdYcm`(xOewfO?U`i}a1uUxR)7S6adAQDlAM5_y z`HMWJ4kf-%jNnZ02XiQx;{ahWr?#J##sG_G`V@mFA&B%3u*OKff2#Y3ocT+gpCQ?P zo|k`XQpoFSAi#H??!%N=3InuBdbFYcqSt@ibe_`=p@08W=B>`YJf@&O5Z%YHpjrLt zXDgjw3Inuh`n1(R|B3o>{cjrKE?!NKUi*E~1oy@OMCk#b24G^0nO06MMF4QlrcY;q z`Xk)MUBF(yYVk+wPuBfamxF`Gf#dekY~k}`7l1`HeL4%&AJMyd2db67=?Rau_mm58 zAk1KnIe)-M|JXYGTlq{lX3X33@2pUNM6tcg^&NKb^K;DwNM%rdvJW%j*ae^|=ut=i zZK*%DOf9b60S%i_M>N#mhjQd7x>J5w`YkbsSYGOa0Mp!rq4T%B68a($#+bk<SC3p^V z;MfFU9{O)b{R0Y`(17L%mcwWCm)Vl+cL#-uV zEDPpZ^8xN}f3y#C;MfG9Y1#L555vv-GP`VYQJWHzvqMU%nPpUQaE?q1i;%Vm3VX3%F~_u?WB{O`oQ+`s2+K0JB=GR>|nyGjd8ze_Wly^nX@KsqrQ+ zs=*thQ3M6p&E)>PSw(1Sjt*th-5V8T1|N*QfkySP#CS99Jt%!;7Ewt}`^WeGn+C@s z0MpX{G}Q0XO4&Rav>(3F)nN3xY;9N1Xyw@Khw^jJgO5gNvww;qUP(FJ5dQs}*}}gT3m1Sk^zV<p*g%+6dE8s3WFjWFju zLNt6%uit5Y{hxkTSTLq-`ZSHz55?ff;G3CF6Nl!y9K>|4p;>_pJb$QmP<0>B;VN!1evv(ovgkmfrE~I*T;Q}yC z)2G(de<@h~oF_M3FsJ>WF%YeLTW z`ru|}2V_-a^A_>MVt?>uchXm`iwu$em#_dVQ~;*!`PYW}qroRuKcLNpr@azpN1e@j zy98i0E2fsO)YU^49GQqo2qZd(8kM6@vY*RUn!H;*NTXto3_dHEiU9!TEAR=bo`Sd+ zi81&(9{cC2)DKqgs}%5Wn}1i(*dNq`F#w@*pS^g5 zN{tStQ4e;INYTseRartayTN*FS%t{8M4O(COu4BORN@jK`h`jXvyg)rs|&nu!a@ZA zTQ+@aPyM^$|5eOmmuGYuC6|8~RHH4u^JRF;*I`@K$!S*+o{wm%dnkdeH7B)J8frxj z(d5~O;yrq5%74N_L_z>r#+=56F^6tJ5AYg2QVnKv1uSGD2$dg|-k(0sr!#w8SmW%4 z2>>;HDqAi4Ze{gH>c4W!hFSqEMG6N44?73lo4g^nd@&H{U>8>Q7dGreL6X?sV|^ zLo1=&F#DekKK|JrbZCu*sQ_%z^rU+x^nFBpE%iuzrD!z58p;D_UHi_&2-7NY_h?sOT3X&C-D z4t}Km-hcMhbgNUfw!vm*S^x7{Y3W=V{V#ey`0r=XVQMUd0h*dV`6k*24*2ZeR>z#H zbgeHht{%TZ10^qBjRqe>hnX-p1GMRO(dt63+y*x|=QRN1wN6^9U)l4cr}E!Be6sm* zNBy&6ZU%_Uz9r`|D?+dbdOO#=xy^~S^$0=)PJh=%#CIO_zyF{A1RZ9^+zimz^r->Z z-+#^mj*7RS!(5n)0oru^XhPKc(A(hHDraOkl*;8^R0!cJ zE?{&DpKSi1qyBj@7XvgleQNsfK>bCq`YGB=mx7`NQanBzeNt}CdGcZL{r`Fb9p=Vd z41X{e{U_@GR<#IHfw?A5(zQ9$2ZyhUzl078!OQ|MFa7r-^#>t9$?&PSr*(LcQ)(gw z(N1)qbXNc3FtZAnhyLAmp#EU>Qx%4$^Fan0Os0=F(;qB?)&C!lp~J#3GXu;@|Iz9% zuHKR5+M3nV+I|ps4|QcNg@F+c3+$}^1%G2E258grbrOo8_d~2ddvt2-Q3;Gx;SzXd z1la>mCfx$P!|a%i0UGXeI|*+4TCn=BOJ$5!)#TbdK&_f#F5v3ggWeWAg$@hHOag#S zO`pagS^anD{g4YLJ(qF=XgwEY0zIjLH9cIVW0??-E)7TFRgO7s^Z-2R8 zL_y14WyvHLYw~KHz5Yjg`_SQ7FtrU3n?Avmi1)sU^q=GWpwG=p7uEe*3*g|ZLkC^J z=NK_H17K6rr=!OwtN&Y-!VdBD(7J$<<#n`DrcBvD_@p!Zju%r2K%1@~M^Rk8D`{R7 zmrqmxr}d=NBd?%|M-^_b|KU&fpnt=$Vk!Y>YWj2(k@`cx2TY_7ZQ}*w^8@<@A{z&X zP8O9XXvF|+mVN69uib^Tnipl} zdoJ@POJ5Q@0A}?rRsDQE_}*uG&|#@)#Q<%VeW#P{+(t|r%P?sq61fR9Mf&d# z246KD*L&m7V%Kh{6!0M0%%3)GP}_iB4tpPb_HF2JB51S$+R(q-z9D^k6Ht7AG6c03 zj~R4ot`wdX{c~?YhZ94i05mmyf@Jmoi3W5bhx34*3G3TvAO(iPF@H~{z0+lf#iCXP zw4wjr?LQAb{|$EIahz{&`uAY&-xG^GKKRL-(BVW;%K%OEAFcl0l^fEyhzolR6`-_3 z!%7}FCi)J2x2k6qP%8jf)Ab`-{r&6rq`y|B(XzHT)fWI@8$6|ePiOV70w$_}*z~DC zC|^w4pQt}JZnnMfP=DH(@$C1qq{}vNgkeYhtAmMgfV!qn#m>z@{Wo*dCPba)yq<$v zx^TQ-Y=HP!^al5#!^&Wy3YbLyk@|}p_rNaLv>iMEMC(^`{=5Y2X=nAX7A7*lq^3_r zaQWQEIZp9PNtf2{b68*PJyH!61suA;`6tj}r7)HOCN+JEI)A^oa!d2L1lIYflO=l4 zd-7D8B%?3z5k7j_m3FTf#;btX^yvsUBNo?k5T=)d>rK6F?) zj1_=!O`oFPcN?4hO0v5e?$sM7NWdqr?R3M#QCHf%s(4KR#?gPG{>!&25j~UW;daZ_ zntq84jz)1!Uw`NGuPR<=fFtyu(!4j`RO;tc9?)Gix%qy+YX*P~0s%f7eE8`ebXZxu z<^>#G_T9S~27j>0$-UH!nS(y^R-t`O`|`RjJorOL{VR`(032QR?UL1hQ|`+kMIPQ* zfS?QcILa&AMrB9+rvVieV0-@IAX0y<)6lG*-1!2mj(?ZleyI7M^!~k$`cDTc0$}Ms z>irP#$pIb^>et>qv=KGs$MIeaR=@A4|CB&gfTjN!?1^2wbyT@@n@fDf6VOPYypDTH z@E!G^BB%gJ(w4*q%!A6MlbKcCA}aDO_y&6s-Px$?8YUlV~2%ME0CEc5r-8#dM5|_iJ$7s-9Df zp1W}QVejUjW`mAu`pl9(o8$pm@(pYZ9^l{obLaD)Vz@B)Z{r42Ki!21Dw!WT%tn0G h8*m=(Lx)q1KLUMok@eOjYEb|H002ovPDHLkV1njbV@Uu2 delta 5342 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 diff --git a/frontend/techpick-extension/src/chrome-extension/pick16.png b/frontend/techpick-extension/src/chrome-extension/pick16.png index 1c1d24701f51bbd82a676be764a90cc5784c3d02..5ec4a499dc1b7ba8eb834afa5fa1983b41dfdf13 100644 GIT binary patch delta 451 zcmV;!0X+WP1CIodR)3^PL_t(|0iBXPZj(U}hToalU1K}ub4-wJAkiYIXy68XZ~^-Q z2vdNF6z<^ERCEYYxBzN6LF^NdoB&%Kz~QG0{)X8gA{;ve^Gf@pUCp!4NK06f?~k{p zAk^`fgsoeON;Yw)FTOt6?5gTP?bYXeIsED!3YCvk&4|Pe7k>aK&?UkEXGJBaY8~W) z0`h@R-!s!)5gDEd5bC(b6~G0OH4Ntf-=4e9~J3C;l5_@A>u( th4``Ge%;54Vb{LdLFFPHDc{3?g}V0y!VT~Q!U^!h4$0Vqg(aXwe3i^gW%6FX?hL{Y=#>jyKuEz1IE7sU zakrx;H(pQkfzV7b>IJ}ri^!@mWdI=rKrj=SNC7Ix0Py{k0e=zhLj+W2T^0v*eT2>DS4OZ47HfwID*a?~E)jbbOf}OJL(8iJyp6Hg99L467Eh z{4x=Wkr*gpZGUBtBb}Oz&nugNv8Aq37-03b15pDV#TW9)T?NkMfS9kadKW4FGJruC z*wdvw-;i>i`23~@f5fl_L?|lHm*`3C6CA-Dpk8@nkJD?u?On>(VwHM(E(1!WOFFl0 ufOT6}t}kFtkjm{8A-;@#Lx=DWd;siJM;_huIyC?Q00{s|MNUMnLSTaV!nY&< diff --git a/frontend/techpick-extension/src/chrome-extension/pick32.png b/frontend/techpick-extension/src/chrome-extension/pick32.png index 2a89955202907f59d8caf5171b3f3203520f9a5c..cfca268417b57ddb3236204b06c341ec5a173ec5 100644 GIT binary patch delta 995 zcmV<9104LN2dfB>R)4@rL_t(|0lk-NZc-9U*pF|p;2=gb4Ck6u9VBrq`CnRCu>&SO9r zQ1;eW-h#Dt_)FnZ6}Y@)ff#|PO@l1jZB%RHP_9CSc~Ip@B!5Ow%M7xJlccVrwXjuq z@@Wl*l)Y<9=K=WxBssw80(j+&#I!XK0V2ArBZ7Scqlo3Y+h=A@lyi>&ADC%8 z`!2uPZo>#dgcsZ>=a0-T1BBQtyomlM#A%pzMQH8 z*-(<(DSwFd-9m*5qK z4rdU9ao!M?ZO~I;YT>1aolFBLM8Ab}TUNeS^rn0QD9JmN)_Kgqh@e=MSqkUuk)wZx zy!Xy%`lXthKj9bc+v3VyhyGX@SOQ6rs!{@TQGcpQ$K^Gvq3pMENv(6*Y+L}zY)~N$ z2)>%_Oamf*7s7ybOceb|=aCOExMyy?9IY$$Ww-G;MG6m-Nik=;YD8G+4pY6byXTq(;HJPSafBXU_EY1Mw6|1Il8eCv%CfwV&y>D@%=%X0@+ax!Z8ZRt4@3n__ zQ+kl!m@N7zM6;!aSv=?ZxxYx57rBkiCj28IQ$4#%a$^m>`{TE6`cKeD`3~-X`9WNy Rp&0-G002ovPDHLkV1k+c@B#n; delta 860 zcmV-i1Ec(_2&D&*R)0E4L_t(|0lk)8P7_fS$Ir)|eozZ71>1r`{aAoIusZ-3U@Q*` zBqqcifGgmU5KT(rgO9QTt1EB^mKD$_i3!lTo^$U^r4*P(ru+kCxYL>QzrTC#ITv9} zovbf^1#6pdOL4gdTv@b0j6l?-aUMEu)f#C8S5a{mG&mB834iLCaUS9zXhIqaGJv@v z_~4AhbT}3PB6|5KlJ!Ssw*zDizQyA= z8W2#ckb*FilYi}3kPF=b1fj*lfwAizI&L*eh`0hNh)Pwr{gi+j==Z};q5%&2sm$KJ zOUkd+%y-#uj`Ev(-T22cdTk%gVWNRwZyxIGOC!Ohk$>=P-Ir4hATN~7?E=L0-DNp) z6qMwvY`sx^hLO)tJBbD$6#SR7Ly8Dj>N3ITfJw2`{A9SkM$SPL9LVm=O3m30000U diff --git a/frontend/techpick-extension/src/chrome-extension/pick48.png b/frontend/techpick-extension/src/chrome-extension/pick48.png index a70888db1d3b364e5f2d36ae2d5166fdabac65b0..1762977e7bd18d647738d32cee43455c19492e41 100644 GIT binary patch delta 2321 zcmV+s3GVi<5X};hReuQLNklZhyP2t$?!7fx&t;*T&!lAd~5V=|3^<{xT}WPgu=sGGo$g^1n)tzldQ zr|KZe6Nu6Rf;r%$Ho*|({zh|=m0yQ360FaO;s}}*2Mv}2o&h(8$^e!2&YCxklc<>` zHoh_-m@mevJNomF%KqyN6##zh+4x-R?8~|D?|lp-l85g!*D=ff3>R2&JThmkZ!B+x z&>r)@4t{)NYkz0}82Te-XX0xJNef0PS+*XZ(vf)(-+iO@{@w!v(D!nt z|J;b_4}ZO^NdK7y$m@QzRtF1&{b|Sd9vA@qxVKTb@GR($#q^iVAN9(jt@}x8f13cZ zVs<((07OOK8#Vo1`fJA5aJB)S^49u34)8Tq@3rH54+MavfAsQaLI1w=H`Cx4kZAFJ z(%Kh7h6SWLc&@coxE~H6<3NAA{Ep9;)&TOzZ-0WIw#u6f0Q&d7&%=RU{;cWWzx-Bn zOE%?!q&yvJe?}ogyj_0Az5yuHpR0_mk<-7{TaV98<%d&8tg@Z~0*3Yft@OgxcKI3m z2B1uT26?2Vua!~(MhnLvA>{1||+ zfqzg#R%xJpF`$b6^Vj|wDFgnwaQv0{JD^H|tpDfAn*iv~w<&8^J!gLmFqK!-`Qk{^ zM=z6~lUi*9o|b4`u)a~=Mts}%lNcbsjsA42e(q|w>M{EQpj>(JtNN^;)@r6T)r6-d zSnNI0qVa#ucSdi&3Y0#Wae;x2nI{IIOn*Hi+uIKd0Q`ILLw#0$6GkXBx6J8pCglG(6WH@icLsg-i5bAp zEcjlT{*L<58&XiSOVN^4J_R5~^4FZRf)4K?dyHNY_cm}wmQTq2YGK)}_T+hn_J2tJ z^Tg%v=UXrg0IK?KN~yL#uA;tLT$AdING38aI2n;u8s>!yxE~VBxj}~LMX_alpD#~& z*4IJW-mdTm!4P-MPEQ0tn$${tf8D8H?RGslW$K&A98wdwsO%MT-wr)xL)RAE`dz^B zgN(ok-`BVCjzXVb=O9Y;#|P31gMSVT3jhYSu<+p5wfu2E^=m+lHJ6K>l|zrtS<20< zgdNT$yrPoIbPi5nNU(Aq!W^i=9vv1#q`LU#XSap|z)tk9qJF}wGD@c)UyOJKEd9YP z)gS=j>F$(qKzX{`YR(Te{WH}PBxxNCK~cNb9H_>9Khp8kE*Pivr-pYx+Q z@Kf15;(G%+rOg3)3cI$I6f@|pn#TcQf-^PxOaM`E73y2e_@LI_MJqtqgBUBbqIU{- z5S`Al?5(o()v;3?^;Zgu5`SIt{X&~6w!Zx~`Sdnl)C77X1hsx zB@_Pu8Ra=JGO6#ifCz5t1$hQ=F%Ero6LFSVW6GUmJ)UrUyc%RnM7L0$Ue`!Clo{nmvslwBE6roUPHb0ebIh-B(3 zrhe?B!H)r3>7`#JE0Aj02v5C)uyLd)XEEC2Zo=*`drNv_$nSjkFyK}V5dEQ zv~W~f(8V1XTpuCVH*~l5!Szj;5E%%-Ao?5XCo3nxr#l@jUVqH#V}-B71j)cG(6{Ny ziDKn(YAW>GG0fr2ZbZ5=Db)8;$$;{vCoiy_SK zq!8=lT^~aIrtiyX*Kmi3{+ICF7h5plQeZ$#f3?~)QGegXJZpLF8hw0CwUW2L8~v7; zryv1rT*G!YjudHI-!LPm+|~J6Pfd?Brw3! zUm3rjnvVK=d5@lb;CgcL>UB6oVj18!J(*!X5Fz=zp3U$`2~sRGP5I%GckW?3`aE764ZEOmghB-DT-F7rUX3{KW-ft9J3*792uJ z%%&%`^juRd9fx?KX#*9<{_7STV)-9V!*f#}s`nZI015yANkvXXu0mjfi=B?v delta 2032 zcmVNkl5bl}Tm96+!@^5~vz>QPh0P_U#ktzUl2L?o&@$BHYks5n?43U~(WPm}>B?QXemib>2&9Vg#7 z5Zr^I>Oz0~GueObi826hy9F@`Dy}Zg(d=9Ibf`SOtN_qfyZeU|V}PT-QrT^YNc5$7 zVB2?RWCK7`?|(i+`*)vC41gHvuV-tPsPA6P0MTDLH{Eh$CI&!s^heP%NJ>7G7U5}qPUe~rFF}Xn+O1J?_YPbzX%bDy0ic^Ekt*6 ze&7Mf0ABcUlZgUZeDqHimV@%*^(~u&hOTD&cQO$G5P#pOyuV73`qQ&uDeOrG=uH9B z-|E9=$B#WX0RKE_Y~sD+qW{bSuy72lFYAoWfkT9nsa{& z09p2;IQHBCXdRdLccNx%;3-eD@BILNW~$v*aqPJOAo>F|AR^H-HS__AW!u-*`b5aF zK%2JOX@4FT$Db<xr+c`|Lh%qE&yVrznQC3$P4z*c0lJD z*uQ$mpV^AWHf#tU-wPl>gJJ4=cuyY6fZ=w@4yE&WM( zr!d$3*az@C8NsXS&XZ2x>);H6_l_#}ccK@a{cB~z>?;a?k`BKbblunt`1jt`TM!xj zotXJ0u5~!=F$tnl5G6wt5cdaNH#P$-m~Dtm^xP7LzZoC@p%@A1JhSaV*N)8qyytk{ zKYvNV%+?D_QULjn>viB?61u|oXgXG25rF)9xtIIr#+ZdAS?%%t9PO3%*K16Fzd0QE zcrb>%*8MY>el-yQ#-)FPt1_KVL1;t-1&ID2OEm~Uc)E)+0+gpaWplo%>F=q$xqsyB zDL6s*esb}1W&p;aKU04hxEW(OAd^iNAJ#j)qW$Uu7zOGRDxBAQUm%PLK#Ct=8qqbB z3GPn}05Dki9Hs4@R=_M>=I1DMWpj_8Co1x=$|_G`DO)M9Idk%cre}gowepbw3eJ_O zPnh9Br8VqvM*@K8KVsY4)GveIjDO(0`|(*;p+h6UcxA1GNMFl>0Gt3}#gDLAfUNm7 z_^OZhF$|=BsXpH8413;@05EB~Im$SV*;q2a>>Cjh;sQn6sCru?%`-PRQ)0r>xS(0r z;@3FtXN(+hD^JWO8 z=>g9%`{^|`I7T!XC-gt!IRP-j4Q2GMUZ_`t< zvVmT|s&d-P5*81#u6k_lK0SaE$_W7a(cg7lliI3t^5D7e>vL|`Rr>kUJt(Q1WIzx7 z-3l*R+kmj?s92;#+kZcTv{YWdS55%X+x9lA8))Ctg=$QptflmK)d&5Xj%AT!08raI z%NqXNH5^TC4g5ZP<>Nl*03AIw6ZJ}O6glSWi+lc<`VEkBmX(4#6zIRJcD_A?lFKm$ z6zOkP8_w&C&!d^QD)gL9Gx_xAp(W=sNC2Qnf9mJerK{s>&VPC4_gb4|4=#uV6Y%sW z>aX9VS%+d*M@ra;$Rl<4$5O`pei9hq>2I9fPfZu~H$Ay# zX0mhzq~QjIUs$=b&QTXi@AZ3y8PLtPaMmGRe@}`V#y2XYE3H)*m9IW5cg*i61OO^~ zJ6XF)yDUSSiD^rG{EG{%nw9%MHQ@qE;x;{DKd)ixSE0Dj5$?OU*SOx>g9|EJ&(yY) z_4oZA8*lg^+fr25!sCnN^?M~j22UZrtp;Hnq0^ O0000<` diff --git a/frontend/techpick-extension/src/chrome-extension/uncheckedPick128.png b/frontend/techpick-extension/src/chrome-extension/uncheckedPick128.png deleted file mode 100644 index e53ecafffbec202e9be1ebb668dddaffd31e5ed6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5777 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 P00000NkvXXu0mjfOW9kb diff --git a/frontend/techpick-extension/src/pages/BookmarkPage.tsx b/frontend/techpick-extension/src/pages/BookmarkPage.tsx index 10192ea12..6a3ceff7f 100644 --- a/frontend/techpick-extension/src/pages/BookmarkPage.tsx +++ b/frontend/techpick-extension/src/pages/BookmarkPage.tsx @@ -15,6 +15,7 @@ import { filterSelectableFolder } from '@/utils'; import type { CreatePickToUnclassifiedFolderResponseType } from '@/types'; import { CHANGE_ICON_PORT_NAME } from '@/constants'; import { useEventLogger } from '@/hooks/useEventLogger'; +import { notifyError } from '@/libs/@toast'; export function BookmarkPage() { const [isLoading, setIsLoading] = useState(true); @@ -33,8 +34,15 @@ export function BookmarkPage() { const fetchInitialData = async () => { const { title, url, favIconUrl } = await getCurrentTabInfo(); - if (!title || !url || !favIconUrl) { - throw new Error('getCurrentTabInfo failed'); + if ( + !title || + !url || + !favIconUrl || + url.trim() === '' || + !url.startsWith('http') + ) { + notifyError('해당 url은 저장할 수 없습니다.'); + return; } const slicedTitle = title.slice(0, 255); @@ -70,7 +78,7 @@ export function BookmarkPage() { fetchInitialData(); } }, - [setTagList] + [setTagList, trackSaveBookmark] ); if (isLoading || !pickInfo) { diff --git a/frontend/techpick/.eslintrc.json b/frontend/techpick/.eslintrc.json index dbaf431a6..0195f8835 100644 --- a/frontend/techpick/.eslintrc.json +++ b/frontend/techpick/.eslintrc.json @@ -60,5 +60,6 @@ ], "import/no-unresolved": "off", "@next/next/no-img-element": "off" - } + }, + "ignorePatterns": ["node_modules/**"] }