From 33c1cceb9d6f0948218dc4cd98ed5485a499d5c2 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 10:30:28 -0800 Subject: [PATCH 1/8] Fixes #216 for the steps to reproduce. --- src/store/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/index.ts b/src/store/index.ts index 82f9916e..32f99db7 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -297,7 +297,7 @@ export const useStore = defineStore('store', { const names = this.leaderboard.map((p) => p.name) return client.players({ names, cached }, gameOpts as any).then(async (d) => { if (Array.isArray(d)) { - d.forEach(this.SET_PLAYER) + d.forEach((p) => this.SET_PLAYER(p)) } }) }, From b5085070e9d2f00cefae2b0c436e5c4d4e098d65 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 14:55:05 -0800 Subject: [PATCH 2/8] Fully fixes #216. --- src/views/Player.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/Player.vue b/src/views/Player.vue index 1ed29bbb..7f665fa8 100644 --- a/src/views/Player.vue +++ b/src/views/Player.vue @@ -180,6 +180,7 @@ watch( // mounted onMounted(async () => { + await store.setPlayers() // ensure the players are set before fetching THIS player's additional profile info store.fetchPlayerProfile(playerName.value) }) From c4fae38fbc9fd0c4d80e29d2207c2d8fed31f562 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 15:00:46 -0800 Subject: [PATCH 3/8] Adds webp images for biketag-ambassador and biketag-player achievements. --- public/images/biketag-ambassador.webp | Bin 0 -> 22458 bytes public/images/biketag-player.webp | Bin 0 -> 21386 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/biketag-ambassador.webp create mode 100644 public/images/biketag-player.webp diff --git a/public/images/biketag-ambassador.webp b/public/images/biketag-ambassador.webp new file mode 100644 index 0000000000000000000000000000000000000000..7b1b2dcbdd0e179ebb28f734cce5a52cbe2bf8d6 GIT binary patch literal 22458 zcmV)6K*+yRNk&GpR{#K4MM6+kP&il$0000S0002y008>{09H^qOuJP8059giJ`hz0 zW;$|#h7zi_PL_qh% zlim4+w$TM`+j6^+vuv4}nVFf{k}YpZ-j)U1(iU!MOIx^wTMWHL-eQ(5$!*J08)duA zGPX5_ag!R{lV6&~v;M=B!ja4kyD5t4bXjhOIeDxoQ~Jz&Z%?k;6PZuFMWNN3+7oF!Qtz zg2P8ab(o>E!^{lItT0CtIvdzwRw6uL+rCc8wr$IaFbo~G(gq-Dz$wUuouJr(g^6OJ zCv}P^lBZ%3m#rvvlD3?3g0ulAVA0r=X z;a`zdLy-$>u)3~>Qe6#G&XAi_aW$068pdZBQeB;)3ZtP^c?xToPw~0cP~_%T(NBt8 z4Ijzz@a|e(s$At(%csb#hN4pqrHZSi=vf-9uB*Yyu9l*w80I;}(O`9Tn&Dqz4Y|r$ zvJ|Dda+7K)8cKEbELa0emK#??(U7aFBSnL5qSK^Wid+ppS|!!+DV%D_ay9%Z>}vQF z!>O*TWy-0RPq93hQ!S;6hFs+-qG3GMQYz~-uI|6EyhSSONS3Rm=rpO8hNp^-6uDZm z+}vs@>uM-^7E&!m5mIbxTecmR_6yF;Qo6Zk6@X;fz5Zkb`YyVKlVliT~g_x;@4 z5hO`%v!GxroesDJ*njN2bO-J~F24svzghKjR2xCvTcmFG7WGqzf8#{yehQgV(C-|9 z_rMw=HE=j9nOV((f_YwTM|FeDU=ns790f3~({#3}SJ{LmKbP)Y%FqmP#V<1w!di-Z zr+l7cTbU7HIkiZmm_~*EfD)z6@_2_n9|9vu1E52+4iUOT7w8K1&z!7sZyR?J3;;}+ zbZSCSe+a|bmO8{1ol|;S12S)cD-B3x7NTVkv;h$%5ie4TR1G{t zoJV`;x3_O3ZU9Vx8JXjoin=yVuLhuG!;Iv6 zI)g|MkyVN1{Hc979EMr|1PC?>9idC~2@)|45fM>07>T$3&mp?_^3Cc)S;1=(z9N~x zQE!UO&mO-mUC3C0^oV!2WvGVh$b2f+%XqKS<|oVx^Wg)8M))=hSRw66R^FFYhgd7) zefuLhc1O+)rK}+m+aTJONbBU{GblZCJ=36PW*sXd#RGC&c*d&BZ4)YOhf=pxW1-6RG5?lw z8c+gCFLQ;e*_g0)?!=@KfLINHU`DLd)LLY_dO~uK+<%BgyIh(LIv=2_FF7a9S}0JoaeYuz3R* z*aTvXORa!XT!WoFx{h)$cb*j2M%;t*`F8^2KyW-W_M$Z9;l;rauDhT< zlu)XX+uU(+g0rD$obweV$WYE;$Tq4uD3Yv(83H!08=;;WESxPAy=Za-8RL&wH{6lmdJrXb$mES3F9O(zMG4=Dr$BHisVuvOmDX62Mq*Q#Ls8+ zEP2I@9DyHz{5ugf5ipfQg$YULR5P~C+Ttl%E)+PlNL8eYhROHgAi#mr!-wmp9uc!8 zOnuO|c12MijZ$V+TX)o&EL+6=pyY03!852Mq6&pc=E4s!9Yi3|w+xAAHkG$8b&75n zjfTl>Din|z^a9t}YulDkOX6dd4~?SJfy~?1P%W3|F!Y=aY3)#NNK4czh=_+otf@vvE0Z>8?4(AK|V=HT0C0Y?jT9IP6ZF4;+D1P$}jk!gZxc<*i-eB=0 zcc5m%1lUxNM-%$Yqr<-gjCusMD+n|lV$J;nP;+e(-t8LNg{Vg9wWDTH8%nY++lmQb zR&v2{-}1&TXk?6pkiP~85z!ji_P~oP@rYeWt*WRG!Qpo{bMr*jC5`31Q?kd7umPwR z9J#Q9aH0|c5ub-{4tFup^->-zC62+V|0lI05(PyQW7{wuAau9=$%*U$U)B#Vl$;t2 zaw_p&otBef^}}P0=pLLo}xaGaS5X-^#=b=tt!d#KS0LXinT49sSlC<#SS3G zW?&?XR9b|!Q)4~4J4`Yx0%+wy$7>%v7R;6}9)Ha4^F>j4K4DdBD zG2XagnUO~5sKQ8|*l->lo$nIzG^*BAvtcXB@)^pWK$*X2NP3lOO~*A)!u0q@Y3-T9iJLaj&UtQXjTAr z>mjpmAJDc1?aDF3;KNZR5UHG65?TVa#`P!k4kBaCb~##c_`3LETQq{g1e_gmA8DaA zQn<$K9!#3)$+6>&gyBni$S*Wj97GyS+F`f(iyHf6R2({9CSI!Lt1*I2Y=)OxCV5Jw zATZQ7#QB%}zY`5fi+aKn?6yChy#=EV2=&{Odv1cjxYuL!42NDp{=bwCE_6q#m4Ffg z#IpDwsS6^f8bg&NIGMpO@6Nfb0Vp}nOmOzRTH-YW!)X+|wxSs>fPP;jx|nD?n8 z6$SmqFtlLI?UBE?pau;na{J7~AcF$QZ!d4uwxarD?Gh0)5>e=$X-C1pq?Y5XSW9(C z6cSU-fIFbZI^uhPs(ogZdqj|?$GJIwmx3pu(Wu9M5*+47FOf{|vzn*D4T&Pf91>oM z@y_n8<-_RDA5C#*r~yBS<>?-tkycYT=PsBz)WFhXMh2-qb4edukty#0_V_cC zsB@LLDNsNOq=^fTdvjhS_h?VTJ|EbZhQn!j9hl@s22AOiCL!sA z@COnF4+NUsfG;Z0e~&YrMa|e@z+)1?Iq=;p4ra-BPq~n;yWX#ey&LM=Ve2 z_A?u^$x{#HULO|e^O+TlQPU=xmMk(+e&N7^izl%K^ejo*F`-|mRF#XbhC(nSSL%ZD zb_I(58Ni%I=?~g=S6iS@p(kpj;L_BNjN9?X+KEmcQOBUix?GKcIz!~;4ggGUK&*t* z?Nvp5ORRZXOpOCY7I>_hAeE7Y1|Zgz1x3AN{{jeLbKp90vo1bI61y=gode80aufDU zvZeP{=-G9Rm4Ji5v|IB2wCJIv@79Lkj?&{T1pik0D3Ubs1o$|&!g)*__uI4t0kt8~ z5v|+91qMtoCj2iVt*Q;$7BLbnKSmII16{w$UV7RX(DX$qHMRw3`Wr{0sLk6Pj6kMO zoqAjiK68Q7P;-Pq)@2WktElyUoWxnLH+d_(4IJqZFpss6?&6h{nFt69IG!B@mrIGU z{&nz%OI~9h%QRVQ5nWEPan2ARM1M^++hHrVFZmlu+W~J}Hvb=h!PUnYC2@gPxC7AK z&{aA&-82&2UIBY}GFuSRJzC_K215ZKjxZ)(u44*3FjmZR+Ot{#0+bkgt>d+H=hMBJ zW(j$iF#F z1fA|~L$^LcqZKgtvzGw4W1S;|Dv2Ug)sgt71;g3-C=_O&dLqqwt2w)RJ_@MS3LkfN zVX#uGSF52GxOB!a-c2ZS1rSgVaaJ@@X=+5vo7F`u2Y^XuL~LzLq8_p-1p-|6;W7h9 z=%T&}UCn*h)z_t>G?*geva$pA&ytGH4*9%V_%EH~9MpnD(wfhKq3wC{cS#A{cE&Vr z{ZUHy8aNlgriiFNMG+4GekP?SF0|OrF*=B1SGw}Z1qG5^?F?NB^zM&Mr`rIi7uvkV zDBV#%*;XbxQQAR(3GhYw;93+`HIpf4TUE*w3U8Ur8vte+lx0f#*qB#S+{l`mGc5mJ zr_jusGwgH>$+a(UaKXUL5s7ccdLH>+>`d$HDI<%HVfMDlloEEV`Xaw~EpmJU{pu(^ zGNecg+UDAy7R+~On)swVID*8 zi7+dxQn+toJ**DE>@L9IgF1j3t{Z2Ev@@GhKa`3>chWFAHfj@X4YB61Cx2Q*mrHuf zrSn2iqsWkng3Fpf$^2ChSTpDNm{{b z(*}1n&@icw)w>Vd4x03eZgFp#)Bl@J6iZ@uXXoHNoQti?JE=NJE3W0(n)4Uqg*z)} zCc7lryM#KAJe6TJaq&boMr(;ymgHva_>BHjTRZwEtDu0Y1 zM=pPx7xA7X+f7N zXJ3=Da(w0vX~c-DlC>Nf_30I)u)^;S*w$?RvXfk zWH?ji;q$m$8+lguj^!73Xy>@4?|%CLm=qY81?+(7n(5Sw3Mkx_gG113GTZ!x)j4YVlr|GH&kc$t9G<1;+A0JSH4SqiC`${i-R zU@sLLMdzqr0m~8;HkEW+gq#v7H(&=7BhKPWqPHy<7xN0YacPT0#%^{92F0jey;3Ee zuD(vkwX)h!C>dj9Quca_#B#4;MIvfm>z+*hJD@jkRNHKkeWSs04o3i)VKv}eM{cDK z3569Vo#Yk(GcqL(3z66z{b&W8mj7a7orGC{7iP4}@~Q=`f4IcVy|EQI1<7JNvh+0y zE$ykkuoRhZeO1eMy9;mnuY#9!$Ra1?80MR`>9_y!SucuuGT%L9w>!rpMEsMlqS}X z)lAx4GnH-cONOQ zvHg4smR$vW!Ei@NyDsVm8KCfW^#KAQ)-07=f6o&rW{}%p1JLU_s`E30P9i{)Sk#AQR824lRvD zDbLq|A5-E>w0V!l)|iS~L@G(PdpfI43`L4vOH<66Dp2a(go!Z_|L}yq6@ooSvVhD%_7~<%1I%MfmdY7OUYb5?zXN zaqi)+|B8MXW#zOu;Ha?**(+%Bt`Yp_ftbQkU5|!|a+aKqpODdEAFWY|xy%dTt2rBn zI<(>Qm606rUFmomUI@#YVTlT16p}jKo19#rDF3c!IKx8V35P9>$*5^XY)#=$ zM8@U63(PKpX2J@xZQh`(>-UQ7p4_rk-WZB^{W^$xS4{smJYh!WGqfSa#z9VC(>p73 zi*}uG7U=QZwNEXNXP%{usJ6xv&a_6THkw}0Sj$L}tN<9@AY8>Qe&3VO)h{Jb)Vk|o z$k2ME2@2K{47C;@Y9La!q9BJlu>l&w855rHpm+`2)rX(!@A}{FIyPMk4%LaUL`0Ms z0hxg7>9FHL-yISQp>Zv`O7fnOFTM)gm~@3Tmn3-c{KhKe14T7XtAkOksbm}BX_c@)ifEhVqqeh0hM$c5$T!=uLWxBnYONz$?cNqNb*xrY90;r4B@D> zZYdpX-y%tKleCdgyZY+}n7JsSSRSM8FYHM>DFSQKV^L%EmNXQeq>GD-cD52>$~DB~ zW}LcFbXk@4*?^7t+$&zWBQ^F>_~teHj8@xFA{ac>{^nE-&EGXa=#EegwgL~6FX#dObFNp`;BpW8k4#zZ`QpYZq6 zdIiA5wlDK^>}FltWSHiO2Dq{?3WXr?>6l{b?nvH|+6yvF>qGEe@>mK)=#lL8Z?1n| zL6sKma44qxbHLuI(lP(es<*xRNfh4Ey7h{XOg(&0nVp#<$WKisrymQg(Yp@#M<97o9(5234>Q{Zh zyEHGZh(rRRrtRBNO#Wwh|K)qY69xdl*wSr-028 z1_bGtBzGbBxV0Jf?(FoPu>*tyGX*fswT4u;@CWJXD%~Q{8X}_IW0qZz%);-3R54`v zOe}Lf(xwbKT$f#-&@JdC8`Ub-NnK4T$+0o`bK4TC%3qVc|2gIZfYDMZI1$E3-maCk znql4~`68X??Gb<`;{wMlLsIsZkrG5OAV{)YPx=BHSA5ZzsiWm~ydh~-Iybge0I(W8c7cAzr;r_!jOo&8 zeCnJwu^)i>fRT7|PH87la5Hq|m9|blFvTrf6BQ*Aj|z|OrFV%u3*hZ)Ix~_!B1(_~ zUrBU_%NkwFGn`nLS6<2RpqCj}TNW>TBmlfs`w)3u%RySYM)mPkq;mKs{TrYO<_S@Y z7HW^JqxCF1<8^p$?U4WB;VQWh5*{{nF4ccNVT85UI6CkoKI>dqaBS~SpJ=jPj+#P|Q{dxDtitJ&+e73J;$cuo!bfr)dCEJu$iiqwjML=GQki*8 z06a#XU`$)S>gOh4!<|33iX_2v%6YF@c7+p?DrF|VJ*nw^Eb@5q))YA5_op`#?vg}U zcH}6uFIw6eUakP;G_W0;_&`8%qR^4^m2%D& z0o9t5qS0A?#$uIn642a>ZsH$el{wdGNh$r3W@|6kT499e8#UML}#;HEZd5s~dvEON$EMK7vmSRG(c z53x!q^0gwL+9i%fTQ`i?j7@|NSSC&_aC<;=A1VK<-p$Mav@MWr7W9Gy9cP)gFFQs$ z6w-z#Qmmt^S-%?sB@k5#ZvS-K5p)GtoX22DWfSu30K0yBCsAkVJ;n-=))l-X^}?>| zmtiLiniw+##e?C1&x|=;pFt*%N1cnUB1SBH1^#+2gefMQU}+B$6@YBFC|URR%+Qb* zYNUB`T2EK^(3?YQt>Q~~SulA9wdKvOSnE18t`Pm$UAUxYIHuiyz>gBcb{@T$C8O;4 zV101Ft;WGw!^Z9I$%u=Jo^4#C0Tr`aNjX9p>ezp#Jh2iG93|!%WZm~p#Plh5&Y><+ zwS(BmfFyU-|6CxS)(rwzo8odc_rJ+W`JQ?4Jwl_4M#-o(LAC-g$36v)%9hr+7dW;j-yu~=vBuKeC#tQtKcSF2`6Yol6YkHJqdGM)$UbOC7f7f?$M@{~; z1#Vzj^dq;9}(+!FzxVQd`oaTAzf8a4acWs*SMqp z5G2TTr}86zlc)6xEUDv)!tVvlNbA-F329eo@jGL#5G>2L^k}aF7_52?L4$`M0Qb6| zf#Z4mRq*3y+8H7!8a6pv$`K~aqV)HmmqaCu|7oAcUkLl7p;x5RzE~iI+O^s2Zq?&A z2VLBVeAWiE0;QdRho++UPJBjn^nXMw>jHnnP(l^1mr{gCGeQAd8!&n+m3Rn#Us{Is z&AgJk#y*fG-bp3suvpTXr2rbb2CYlXPB#e8TwAnSS@siwFIJU|iTPN)M;uIj-K^Hh zQ0w`uDzLpkwx1sm1nC(Lu_?Ww+8Rytw*>vtSA>!)T5OZuz8b;p=2U~BpMDq2#+JiR=I<;79=221%tj9W%=vXIS z1aApMuj{&0F?j};&s2$I>4tHl90{6|wlcxeozM@rZ=9^8CmVQs#jXvJnhntNKzfQ< z#h*WBgg<;-iFQfPylBFOMs1-u+0ZNblXGh)_9EktJmp(Or3YDBhCT%?XjvVfL7K|4 zXGvE_dBzsWq*~f_1sW*cBP7JS7Qt@hCq9`EZ-nlcz@$Ib@NFA6mfFS-Gq?m*kVBCK zBlAq#{f8&`yyL4s7<$pr1Vqu+0zc8CvFw4)tQ==qmt|m>IZYi}OJ%+@v@DZpykt3~ z<^=#c7JG%GFTD68iTM9U>6c2)?B5?GPWme#4V{dHV%u1rhJ^HG-sIVF9<&z=47`W6d)8G5CZ zj8AJ@ej;mb<96@@|LQh2c|ZK>_l`5>yR5{Lnu$0SVp(e@w;m_q2Q}XiH%9B?^H*T& z94R);{WsVenV4u;Af+nFuc<@;KLOCgqOe-A%}_{5#Vz&wZ~`UxBpxJzAnmo?kru9c zNPhKlQ7RRGu}8~iKq`&Iy4;(dBto6g@8$vO(Anm0fsLYdQ4+-%nnNu`Q?1Z~E>%P> zH}*Szp6!me+YM5G5X&Krji5%Jl%^CbNs>p3{I+|#OV;rJLcRJHd`n$g(%&OQmO&MQ z(F`8zP5bW-ZYp819CZ3Q`(fnsPjE<|tki3Hq>W6y6O_X~Z>F@M4tYUx|2w7iL@V zFEmq9j?A-sRa7{#Mlch9l(#u|jC zb;jz44tN&@@z(7k4)1A*eR$(BZ>{n&=#C`AOk`Ln~~Dh*o>DeUTz;sH_a+maZ- zy-|9>E{#)D&Ws$c)Je*lZ5@`1xXB(L3{#?09(p`AaKsd~&)pT0lUwp_*AH~0CUe8a zqnL{c6!!r?nGZ}n|!|{K*MDJ(ICQpIWu(KP~uVpZQUHZ&v7Qm zkSl;{Kqq{~&TxcqtqIb1!k$U%0{~(H2II66rY2&Tcw7t2`?EQCw0;2F41x^#IbFAO4cUReILCwSOI6UKsn+pn_J!EQ~(ZdTkNFD}NpHVC~Ju-G++gpIvWZ@aLU~ ze#hid62O20D}!NZ>2o>v{Il!$i0}y7C6hG$Z-ok9Rt{DkfETRQa$;Zt6qVx9@D&L$ z(~`gV)}}o+*V-UTat!$5IGRnLl}0SNla=53_|swFEqA0SZ3|;2!?*m~`HRHwuB_tv zGM(Uu0OWaxEu=@QaN6D>?n=KGIYgFX$5RVqHsSqV#we8JyCq^@@Zd|{|CCvaCmZp zWmRhw+W`Z=AU%bP4Xb~aMNJt)uv$S{_ZCRm=@DdFyeMTr+n0EZ-wgDe6*w@siaMAH zH{A^Ak}C;0Q|WfbDv8 zuG5S9A=Qb~+7!2N>_z+#$&l)J)#Hq&GA!8-j}cFhK}j-N`VpTp5CDJ|oCUySXbmic zo&c)hA7xZ+m#d=FNF!Kc>9oq=#v|aN1^X-aTKz)f(_L(6R=Mm%nD{Zb&F;FZ7RtLg z?FG@QJ#Swb8~FoxVZen(YNC~9#Do><=ehCg;?&l)fykn+n>88$pvkUV&T^oDZU6ur z6`^5c6W-Li<3Ape=B!&K13^*1JI7Osd@!z>cH|BZAMpN*UhR~V zP6_}(7P8P}YOGpyEZGhBx*!nZuS3?30RX#Ss>^fts$N&t)s`yEg$MKt$o!tL@PLzu zA<#OaBoZiXi<^yaSKi@^RCo6I?~Z1`W2nuW=}xiqe@im_B(1ob9r)Vs8KYym*!5tY zPASArF!7I{2^fS)$HgEaw|sew8SaERPzwO=unka$6TVgB+kZg-0Iq`8O_S@5iQ)n{ zyi9yRMv;=I@{e^8fQ%O#=W$2v@@*PkAy zo;u_PmYHZ$Al^Is7Da~7M9HFkYHNOar9i^8g$qq9-|)i}=EI0ze5d@|>oEzwyaMZ( z$D0i%o;))8)I$t?@Hay?le2#!fKTasI#T=&t;R6@cj7Vr&WNCIjfc z#KgDw5g5YXjC*azZRx&Df!n^xW=IzaO3hC86{_xFwKXyxL_L0FNNZGZBh2O7HoWFQ zO>gMwo_&aXsCn(p*__z2V4Lh>Cs*KlgJieSyWrV*OOD+ zLVn(CM%GIoHs99r4FRw$e?wP$6C?jv69V5(<`haG#7Xbv?>(8;hkHaGwb*}?^t1mQ zfEzqJ1s>@cD`syI3@CXb>=kL-7lUJ?VM#1GNZjl*JoRi?5ZE;U%-fM=bcrEoEZdhk zf+4nFIYn&S>_7za(&gVjIMVHu0&FXHbG83#xOTA-UrG65^1Wx9fm~>j(Owy16tm`_ z?#Z;2Y^+e}%ufX1C9pqyLon_$okc zMg!KR+P^c5rf~PQ%j!;zv{a!fyeHR&V^rm2K~lgy+1s1^%fac^Y!S#;P!rhF50qIcl@aI zwL#T{bmVme>dLR@F*^Q?B6jKHdGo@6+)M8~yT23=q2i2>e*7NIXGYssNYvUb6#{q7WU4(P^5XWNwG)3EefyW7SYdD zbv~xwr8D-a>6liF>jz)n!-*4iU1Ur72Fyrs{fl4iZcaRxJukO7Iyi*VNJ(pxrT9U? ze7;U3hd6_!$?5g+V*~hgL9rc?{t1BzvV3`oZvl{n{{{SF3AK9SM+H6}bGz?i7kK_X zm|YH8)ZLXcHU*7#NsGUE`&$%<`f^B=m;(3mK13(+pDSCP-UeW3btVM5`I1mq#; zET5R`VmxWoJ})Ij>c{A;g2icfZwT6pg0z zu2W%d7kshCo$pWw{S~=CW_#f|fNr0LtSk)b3EXs$h6#Y->)=&_v|{h3%i#kBsVMS~ zKLAHHJ`7vf_^_maNrRsIz1gBf)`9%IUyqmt`(WEib(EMjO`SKU?}gH zWa5=?ga>*RBG8?ey!8R6MGs_fEuPgewa)-w-!=a4@TcPn$Cfdk>g%0xY;& z{9*r}%%n{y@>`>a9C;VQQFyaiQk>+0bB!uzFbM6j8s%M`*JICz}#js zL`yGk`WicW-|*!t_~PC}VU*(X4*-!Wzwf(xuc7N#fQeVc$?9>Wj=wElVuF&WEd~Zu zj+LdIu5>FfF1r0pWC8Un;n!fc>1M+B46BcY`Li>ebiTIEWSeaa>4jSGfahthd2RHw1I)<;p2pXH6PqPu{J z&pejq=!Y$E2EHi&i2U^Hy{jktW~X=Nl}iG!9h?7+rIeA>4Fg-;3G89z5dt1>9te$N>TN{zxQTF>L+Do7I&2nlH3 zd!q@Cb|3Fp*P}z6<4c`f`M359STppu{ax+W*|V+dlQaFSDk&|8v^uj zf~=_3i?{elz50is)1^bv-P7ZT$Fk_)$&8UN?CH z^+#ZpDt-3k_XyA|>bM-9yrzbjPe<&kBZc>FDG)mDAHAzjdXs4a`At3Ei01uaRoNMv zK56y_I;o|V@QukW$?{-~gdK@ar69XWhZq z4@|mME%KvcPY4bF68?FBDx>v48F|d;%2)6vh~-0n`IhC(;8)%uL(X}xWyjLp79Uc$ zRDNP2gOkgmltsD?7NTB!EQ}weRqlnGe#Lb)8w#O6QN|ZzJr>78$U;jj9AcDgvwEe# zPB8jkm=~ofU1%LG(&)MQj4l9nS3N=s{^l6C;-K<9=9DNzAt3P46)YFLGIqz*9PME$mf3p8>}xU9?dIDUkN8D+2&{v=OQG_+n^{ zY5*p{Kk`!;5OKv1xHM1=gGR*}OL=)G*=e;FE&YfwvN3|;)y&37Q|ug#XtSV6}BP+F>6?ZJOuu(i&3tOR&& zfePcbYXkIruEKWtQdujId-Tv3c>9mQ67pO%L;Zp1J_x9X-<+D`N)yVRcg2spTcA&i zzm6(2DlL~PPmm4#x>us!=PN+!9PsAGOdQ0}|jd_{a~{EbM?E zk0F$GV|CpJ8icN;xs$>|(BFlP;mv~u03e&5TEhJ$px$4=qBtcqWCFXnW(U4DOwx+j zG_rCd!JTz}vGdL@SumC#$WT{s>>g zFvDr*8O3-2wN!jX{FO!r!tXO|8K9TI443{jtw-V@w}u~q?!#rH%dI6HoC=3+5WYeo zCln;tTmfJi45vx3!%;8-++#1cAA?$;eGl3%8s{9(N)IG?*fftnyrqJJz${aabyjlZ zhcT}q1n?gk+mGx;4j!$Uw-COVQDYOronZj*cS!4Iz(CRm0$))X5P3PIkmZl-tGxAf zmr2@Hl3s>SEV32^vZEJ{4Cv8~LS%q}!gAYuY zPj8rn<8x+GEv?HI-|)3lXcLT@m?lcHLj3KDBd(#nT$?nWl@kAbK<=7m-T{-eMxV!> zedk~D@gz%^$mAN3{3E?Qj)D&hW8o7zcK1TX=)A9rHrmP&4CspAtTb6aJas0~=tbcB zo`Qq#Lf>;uD5dq(Xc?0cm3w$C35z8gPno)y)+3yoJi62GMgI+EX2NTN>&B#z6A6nC zo0;)FR9(4O>R6%&4hY;KLtdc-S%4t5H!mfWozW zdvNF0ac%F@P$aVx+@<*WwFD>U?;XijONsC?vko1IxFB^Qp@6ECD(JJ9>$&ZnJM-G zX}({=gzf5wtXd)>%{h+WK%+p(#E%tGc{O$0^{XpX;h>+I4S?sSOO4zBV>r>{nhL`L zq0ik#E7}-b7p+u~0)20bjCVe@CjvRgC?tueU5~p66(K!0f*cO}n(r=0B+LRYt=QZk zrX-4k?oE$gVuy{5Hm%uVss+B4#J6D;v4ohXydAQFP0~yrxeAHS2 zZ=6)eI^|q0D1l@*M`?+EY1?{IeV2~`>obY;y>Z;1r@}ARctLC!>nm+M$a}vPJlGrrH-hxeb zWPTr^gDh%E!|2QyH;I;~rk^Qbn40C5{=@Z#G%BQ^ijtj%@n4GCG*s2A`S4z}4ie-h zs3opO{usWj5CllwiRG~$1}%-_CW!*6#0qJ0zRz|sX#Xd<~M`)C!CjU~jQmJPDKf+Y`wCV=6UuvIFNY&KVkh#X!+vz2%Ub8K!dU$tM zUAKoLr&UC8{U3;FQk2$U?748QbZq0p(Mk!!s%TG3Wlnzqq);mcedCKM-`{E)!*4=8 z2?ys843UN_Ttxl6S>N0+7?hlwhKb8*v%IeUvF-i>&?r<)?55F09`0vo?iy8G2>l76 zj+0tOcGoT9l*9kLWn5zEy8ugz;#6T6JQ(@^=jest2<`H17p1FN0fLDcRL^OOn`NQ} zYw@Xdx|gY(Am}l5QLK!gT39#)H{-@sc?4lfopRIMaU_yvV5)h7G}PR>#T8*;%b*a3 zE`*9k{JFltEI~_PnJM(H=F`IU6u`;NXg8rx{@Lpu&B-o~4mm@pprF&;MuDS8iuWQl zHRI2X=XPE!bB`4=X`K4cf2ZG3VEX^#Q$`tO(I3WaWeOt0o@Myfupfbf7(AemE6YAO-RV-#HomwZ>7n z_1eNusuz(lo7{}!^6iUT_h*(SRd-^StPSamQtZVk^T^cMw*-SfVYnLB@ZN#n{0uiU z@Wx!Z5SBYf+>sp3U1AuuBQ4(V1fZB@X~j2c-|R#ahu=?R$5Qk>armQvMBE_km)0`= znMv29qBIu;08N%XW5!1+yrvIJMr}W0Fh(SAk|YG4JR;~Mwjme=BlKpEjf1~hp}6Y+ zz>OJq!>`f?{wP{E6J{54QUu1g0fx|uFA|Ljce=4ixW>N8f*H24N_h3{p833^f;XG0 zgoT-LWR%(@O$b2QAq5u2etN8DbN~`Dd1Pr_>_PAK2L3Y1hrxL3`R>CPnf_=NM2IL6 z>rEP#abcvt<#0@mWyxjKjWc&=&a;9fSEsj=9m#^v1?Hw?kA$PXqq`Yp0T2y#}Bd3?SQHd=0 zsRzTvvNWvp@F9D%>5IvVktn76xsxGiC`FxUonA{3?fqE0g1jqAkEOouHY(|6hlWn{ z*TTf#^N}rl5P^)1E>TyhzUZ9=t{4aJ4 zOr)WUb{Ay|^?fhFh_s~cde;E%FkS3%4@MsB<+V?#-(V-*7gtp~2ezR|ja1Y4p(B=3uRJ|yo$kXMDJY$BButXj zHnCxZ8j2;>T6|;B(Nu(};v^sJaRIzniD+p{Xop**ahDsTw$MxG@39I1{?Rb8c3qr| zA`=Vwo;upe;~Vl10;g+G2e8|6`UkbfyhUHhC8>g<=qenYf=ena?|!o;a~c7js{?N( zQZMzyQE|M?EB9ZL)55L}TIThs8jViN7N#GcORJq?y$${ifXD5pINk8{;XJrS0hT7& zqVazO@SESzFz*d7Ogu5*Hw-2FNPe$9GB~6}5maSHu=%nQV-FABiW*mMEyHU{O8$+Z zz->dP)a0xI`GN}VNt2YfWVZ3}D(_ZPC;|YbNE;KHhxxd;KQ$xm{MoibAyNADh*?H9 zs>GD&1Et?{R?2B_j6DFrRh+g8NhFSg5+_H=7^xfJBR;TV@D0`n@YD|$CL04EST#rd z1r%$9xpya7s=7Ira#Rrm9K4o$Gb|n>!$%fmRhekR80VvA$Gje;A>`L!sJ!ry=pHR2 zQRDN4seA`EFq@w@R!I10<*o>|C6aa9JcA@mxdGFTil!p!l6)VGNU>4bg|U*xV*%LJ z45y~RkZG7lQ_D%&&rwwO>akM*^IvOSlHs|4p;c9XHgJi@`fn?}P?74mY*V)Pr-x`WUvXe_FKXcXCZ06sCRyLm=Z~v!*POqky{RiIyTdO^v*5UZgM@iO#6< z?F~(X(p%4a3evN=c_PcS&upY%!ZE{(EvkdZ%Yf3ZVLE6ZJ7BRA@gYXt8pxvZI`aYm zP;b6If9I@~l$0dqrR23J{EE+*VcH`FDJ{Im^W$q9{jkem+o9zW?Is*+aI9zhSugX% zwa4{))-@7dJWV;%uEE=>9qBwZH*%VE$42TFmwrsqz65*in4EWip#@`&AMf{R$4OIt zP{Uro|8C-V!KVQzzA?KeAAt$DTbD%pdsbQDt>Hz?NZcwKM znl17Z2M=ozCh2h`*eu4I`|d171U??WZC>m-D6}iu_D(yG^>m$HX_C2kGv?BZm$C3N z%cvgaGMeiMU7kL6f=P2tyyxr+CO~TNM!NO$)8NtsCNMCo6taY0z!TtYctS<2xw0E* z)E#(bAXsn>?l3sPZGZ{ET|#iz;2JbA=md9ncY?c1 zaF^g3+=D&Nx#ykx-tN__s;j@RYVZEBdv&j>Vlkr6X)^`vgaR=w;qUUPn}usDF+&2$ z;qrXCN)b&JTwO&NSY>2wgovbP40|}s3YtZ+me@ZFi4ZmY*b^+gL+*D;@WJ&I2uF8P z$evJdEbxfdmsR`Zn>&frdo)B$-ET#EuV#R6zysdG@@-U&82xm_HTYn|ML$DE;z&kH zixkWk#$v@zTquhnxMp0yLQiPLAgW{ArYmcuNb@7ATx~j_KY;d zSk9DvlXstHX7Shpq=VVdmYUuV@F+~z;22S|(!y`u(q>__;E!j3qQ}eLE^g^%f2EO& zxCNe?y!Cfyo;pEEAt@m5;vEj^QCjFjev`ga4#=;oYSj%;<@vqR~49`McFV;ym`JR@=LS6aQzk}Ihe`^!mn2|{=QIjHq7jH1_56Nf!id% zk>{|>IQpN55r^UjI?{akxz%t(%9wFUX`zJRp-bzxMii>kK?@KK{4hqhD9;c?q z(w2db+Chu>dxX5}AVIK$4r1~m0BfhGz*jcI^mla=WP?u<5Js2WE+=8a=J4{Du zndY3GOMpgPYkIAj$hNwbW#Dy_ymaTWtB#cXYa&Rrn{ti_y5$$Hd<7SZkjuZIc)$eD zI=zD`$@+FUlNS(zeW2|5RtX!|dna4|6hZdqNRP!KL{}nYzb($*H$+Zo_9!Yd3TjBf zG}w=xqAiO!%lk1^Id@YFHR`9=4S_BHrp{66QTPXZ`s(O%4;nMeb2%s;DYS?ywsL(( zQ$ck`>R{mRL4&%fYDI&_lDHzn|Hsq2dVrxa{N%5j9@+HKY<+&$TL!=IB3&`h((^l# z$;tfRXt%J%tEz_084 z`Sn+2uKW+7KK5B^u`{hne$pGx;&8|qwJ2DmrE65+kR9~g3D%^_RG0ky#Q6z-}&8|oagI(Im^Uu;#Ng}6BRF#@3*A1o>R zo)0G!NvO|3c{3|CMsvUBIH?eIwkFf2TK^g1>8=v5A9E}^Vk*R#RX-00rc1}aZ|+Ik z@cTS%cz&2^-l)i=J4WqVZ{?uZCyxks1@Ur0ey$)2R5nhYKut=x=^YRz?og-?AqM7J zD3F)L^97w3#>*tZby&+YRO98l1Pb@Mgq%^4J;*R0ltpyg2%Q)fZdk5gChBQW%298c zi{N8jF%DQnVavJKCBE8y19@{h*nKlu@OdZFE}FYmzkN)?ge0+a3e|LO%9%4^mCNxa zFaVH#IXR6rqg)FkCPL2TTN1w3WCm(6t4IeQ>wY2&JR~84b#b08FPJh#Ql0^2M&9Vz ztAIa7v&VDcH&-$$>!jpPeJQ9kS`$z8vB?uoE>@eYG0&~*;x>*uM>=z_GBsR~EGR8_l;@s${DX>)u<$j)h-Jb(V5ect&a4!!hRzN8>Q3ikR}B zenJY1&R%X~(@jF&gA<(DGQxIWqDC9GNG5c8;Nra;w-)2sR25z*H-Pg;$0}xqz!Anl z(&VbsZ(i%Pr3$PNoH|oaB*m^7w+d1H><)TG=aC17kvX*Y-7+6x<2QpDQ2wrt)T=3k zW-6~tP8k9?sd$u9l?7_ZDS|Htyd%ay_1Z6tV95|DxTU2UKK*y^0reNUv+0n%252Gv z+gJ@OrHeYsqEbeq&#s})%NoXvfN#wmOGarMNEW+B7^)Sy_iawQIAZhP%d8Ica8K(C zWFd^>@65F_F$XpyJm6+)%d>bqL;NW%M!*5Ul($4@8e}SckBECw7T)trofn3BWRAnK z`QxuDL*P~BSE1{H>F<8m(ZZl9d=3|r)Egn6Cxh&bg1uokmAh76s?B_hH-Cc2_DpQC zL=K4TtkFNcoA7BIdHjk6i zmWWpnO)Ex36y%*Nh_zF*0{_x_G%v7s0Odg0&^tdb`gpR?E-G8!MQ@HfiUcu#$$8gl zqM6YINhq^tF-w@YW^9BPSy5-7()rdOMpca!-YJKDoB!T*y|x| zslS69G8Nz-gr~qpED+kZ56A^g67L5H=BPtpxhyi^X&&_QgU*R_aEa!1FJ$ysWK&Tp zpl}y=K$j)4bLOQd1ae|jS96gdf2$^`#9#ycF$uQK5aLS1XUE~rwM|N6p9wg z8l5%WV7&Usco$7{z1>+QOP3yPRGEulMQ$bM0cV=Rc<1l{7&uKACDUzhzlG~JqnGtFW_%s72G-M%LxmPA?v$m#zl0;?}EGzs{rYGLv z%k-yrK?XWIRJXqsZOlb!sYe~Am+&SA{NY9=bBjnP-MownWdb{o<4?)0h>vr4^po`B)^R){s}2&7RqV}t zhw62#3-7uu0&2pkM1@*5#Mi&Uhq=q~?=K(f_ro`$i3tD9M*_vpfS7-FbRU1=*7oUpv9b@7ky8NL$AeYA;^S0$A`nu*I7jVXFqo>!mCARy6q z#RO>ADdjxnu1aE9#&?Y^c*4sYZIa4IrCdAA24>s(W)R=u?L1AjWs9wIk=UEbX;}hYHNF19;u> z<@OjR2?jI$D9Tkt9Ivqu&Q$M`Bge!pM@6bGdhLrm#!s(`Z|R9&#T%)OPsO|1cH#Vo z>3Vb`#d2U!*^4GT4w=BG|7gNCVR#EeA-@L$LH1bFeBnLzv(Q}J<(nh%br$=Jx1wcc z=&sr`h$MQrY})Ca(np>yNDWwKQrSAS_B?v@%V*08 z_zWj<;kej|(=-QUavlCHLCqlFQ_9uCIKQR@NcmcKm8rKOB8}He`e1;Bms$ zpgRAPaFt$g}`a&leT)O&1t@m5MFR{(47?{rO7^*}0w0^f*!2 zbx=HYs4Ad!I4mvNuCBPLb(kh1C@5f43NHr79&Z+J6JzwkQp-PpbyNwPev7JiAgM*q7!c-ob7j%PT)JK`BV%Zs6E7xiasJuH+9v${ zV@a`UM5+s%XnbCP-?1NnTBxqNz5d;@`?Tu^8EoO2A=phxDtt_P3fnz>m^#PT*bkX^ zUDNXu7!`yfSCEXOU@0pK$ucL-jtnWAa=4_F6i*!5&zNKw-YYp({6u~3wQnTL4aeqB zzu#M8Rc*>RleBBG0p%I+#w{Hr3QAOkh*f`JS8J69Z1(F^*=BuHUIpS%a9ugCzK`g@ zB@TYWIum{_$@y(e*u@4wOiI@AW-ovl-)`txT6J=T@~T^@FkP$6UJ`;`AL}yMy3g2X zJ$A(4&L!hRRfvN> zAYcXEsVVrSi1uuXAl|5XNtOGKqQzK*ULRi?Uw08+J$Nw)a;F(XYO?3*QMqs{#VqbH zrVvBQpLUE;K83^7 zOjAv&|AnKa9<~jLPNjj-SbWH)ZEio2m;KBeCStvHDzURIw~a?&#j4Mv?|ct^A zFUMY9*($~Jegpt@W*MtFt;YMp=a)^KWzD!ra=u3W#FfTA?DcP-rk|^)7HXG-iW`2N z@wbTV#)q4&FCqVf$skXHL$Ea*K6M1Y7@r3;&+RF*fM*--cz74D_DWF*KEJ3X$tMMp ziuCQBvaR{-H__&~{rVu(s2`BsO?5LdTKmAIZyB9aD`SUy(-614hFbiLA<{v|mu^bI zI~lNnmz+s2g%Ld(pT2sEQ=qZi7LQ1Lt{F)=Z+EK(y27_EjC+g)Iqf?ys>e$2G+Ogl zQu^1O4c!xuV&A`TSd*z3qKpKZ{V_hY3?Ge_>p2kpEpCa4g75ib-8We-`d1L4?P8Kr zFcn&)SVXOHLWFgJ)q_MKT)^7|zY)R~K%WGPGJr{SLF*EMUDK~U~V>Cb{#kI=C| z6}U?R&tx@~m|bb`h4cw?%NJXtLd3n9$~Jkjmv<*t)KFnw?C$zuaCBsjiZba(GINGm z7%7_XV1&X(m9KX$FX4mfk56;sg7VKTu{OwN_iL|{1N zEZc~UNAaez>r@&0Z4sAPl+7y+DUf_pdIj=F8&2O1PGyn7-EU5Qa`cmk@n1R>U=lhM zAI>R_?@Q5R_4lw$So%_pPoB$RVdn3t&jNsIL3iSyU3xVz7@R;{X8oH%UD8Q~FGs&` zf?_y-yJ>yEC`b;|qTvqtYTG4bbv_UxnTy;Nf}`39!TipBoIKfriP3Qe4@8opVy&!W zU!d+tP-%uaMi!f_jG6yJ(nIvENc|GCz1t4KN?s3p|BB!5nWJ`~7lZOj0&hi+?I(`} zvqThMx8K`spo~}qy*n3k#tAd#+V!qnxb{P_^R2#%n(R;;CKg9XBpCE>D5$nCi>_7?o1 zuG-)ep$6$GTr4K>_k>QcKh#bo~+cQF9Q^v7j_NfujB@TP9Va zgP^RUxb-;Z5K32zqBo$_b3AZo3d6mdd6Vb{k~DKl_Y7P|ULE@)V=5Zh zBO!k5iYF)bVz<>qtp>pb6Z?QKFSl#cRPHhet&pZM59Q1eGYux#&p6~wOwc3?@rIHE zkMklWiPAxQ$xKve1fCOJRQf}8Z;sU{lI*G`dq2dYrqkE)(3?*?kklBd-eMDCs|1>S zZuG+~f=PO?3+hUOm!#okJbpHo70kbU4N-5O?thVwYrtLit{cun-y1$4z2l|W%#M4M zY(=H{=&QtFv{mt=-%@1W!! ztun(&X(_oEJwyFb5=#Z=%#92@F;6Si*+I9$pp@l=l)7wAigQBPCn7`y$+=RzbM0~^ zPY;UkdSJG~5Fw0aA;7E6SUIkz*#^CI5?VSK#E0uLK6WXJ5{Wz-rISVpMLE0-jUj{5 zL<*of65}sm?m)a<( zmdXn%&01PAGnl0aNx$PBJ* zA`-0{{lJL|w(Ua!1Sb(2-aY9`ak-()->tzV?N+7xZycyx8iIA$F$L^C`D#_LB{no> z4C=qFycj^9ci%@}_W86*3;;-Kevk@$>F6pa2Vi^=uK|d_w*dGT4ft{ZfJ6YqzjXjW z21xv`t_-CA2LlHH1X}B~h+|9{C~E8;s}EN3jTj4^PiRe SZGBm)Fp41P-^V750{9=?JAuUj literal 0 HcmV?d00001 diff --git a/public/images/biketag-player.webp b/public/images/biketag-player.webp new file mode 100644 index 0000000000000000000000000000000000000000..8558818b294b6704e3750f3c2177999c01c13976 GIT binary patch literal 21386 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 z Date: Fri, 5 Jan 2024 18:19:25 -0800 Subject: [PATCH 4/8] Fixes the map showing up when adding found tag and added extra prompts for when GPS data isn't present. --- src/components/QueueFound.vue | 40 ++++++++++++++++++++++++++--------- src/i18n/locales/en-US.json | 6 +++++- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/components/QueueFound.vue b/src/components/QueueFound.vue index 01addb37..d86efcde 100644 --- a/src/components/QueueFound.vue +++ b/src/components/QueueFound.vue @@ -91,9 +91,8 @@

{{ t('pages.round.image_first') }}

@@ -109,8 +108,16 @@ +

{{ t('pages.round.location_oustide_boundary_alert.body') }}

+
+

{{ t('pages.round.missing_gps_alert.body') }}

@@ -176,6 +183,8 @@ const toast = inject('toast') const { t } = useI18n() const boundary = ref({}) const isInBoundary = ref(false) +const confirmNoGPS = ref(false) +const confirmedNoGPS = ref(false) const confirmInBoundary = ref(false) const confirmedBoundary = ref(false) let auth0 = isAuthenticationEnabled() ? useAuth0() : undefined @@ -204,6 +213,9 @@ const hideModal = () => (showModal.value = false) const onSubmit = async (e) => { e.preventDefault() uploadInProgress.value = true + const gpsIsDefault = + gps.value.lat === getGame.value?.boundary.lat && gps.value.lng === getGame.value?.boundary.lng + /// Attempts to fix the tagnumber === #NaN issue if (!getCurrentBikeTag?.tagnumber) { await store.setTags() @@ -213,13 +225,18 @@ const onSubmit = async (e) => { if (!location.value?.length) { toast.open({ - message: 'Please add your Found Location', + message: 'Please add a Found Location description', type: 'error', duration: 10000, position: 'top', }) uploadInProgress.value = false return + } else if (confirmedNoGPS.value === false && gpsIsDefault) { + confirmNoGPS.value = true + confirmedNoGPS.value = true + uploadInProgress.value = false + return } if (calculateInBoundary()) { @@ -295,7 +312,7 @@ const onSubmit = async (e) => { return } if (location.value?.length == 0) { - if (gps.value.lat == null) { + if (!gps.value.lat) { debug('location must be set') uploadInProgress.value = false return @@ -319,11 +336,13 @@ const onSubmit = async (e) => { foundLocation: location.value, tagnumber: getCurrentBikeTag.value?.tagnumber ?? 0, game: getGameName.value, - gps: { - lat: gps.value.lat, - long: gps.value.lng, - alt: gps.value.alt, - }, + gps: !gpsIsDefault + ? { + lat: gps.value.lat, + long: gps.value.lng, + alt: gps.value.alt, + } + : {}, inBoundary: isInBoundary.value, } uploadInProgress.value = false @@ -353,6 +372,7 @@ const setPlace = (e) => { const updateMarker = (e) => { gps.value['lat'] = round(e.latLng.lat()) gps.value['lng'] = round(e.latLng.lng()) + if (isGpsDefault.value) { isGpsDefault.value = false } diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index f95eb2b7..980d2ef8 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -134,9 +134,13 @@ "reset_tag": "Reset tag submission", "user_agree": "By uploading content to BikeTag, you agree to the terms of use set by the BikeTag Project", "image_first": "Please upload your image first!", - "missing_gps_alert": { + "location_oustide_boundary_alert": { "title": "Confirm location outside the limits", "body": "The chosen location is outside the suggested game boundaries. Are you sure you want to continue?" + }, + "missing_gps_alert": { + "title": "Confirm no GPS data?", + "body": "You have selected an image with no GPS data, and without moving the pin on the map we won't know where this tag is located. Please consider moving the pin on the map, or selecting a location from the autopopulated choices." } }, "howto": { From 81751020ed4bb195e453dc62a51deea668b10464 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 20:03:09 -0800 Subject: [PATCH 5/8] Fixes issues setting default gps coordinates. --- src/components/QueueFound.vue | 5 ++++- src/store/index.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/QueueFound.vue b/src/components/QueueFound.vue index d86efcde..23df81de 100644 --- a/src/components/QueueFound.vue +++ b/src/components/QueueFound.vue @@ -442,7 +442,10 @@ const setImage = async (event) => { } isGpsDefault.value = false } else { - gps.value = getGame.value?.boundary + gps.value = { + lat: getGame.value?.boundary.lat, + lng: getGame.value?.boundary.lng, + } isGpsDefault.value = true } center.value = { ...gps.value } diff --git a/src/store/index.ts b/src/store/index.ts index 32f99db7..1cbf70de 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -82,7 +82,7 @@ export const useStore = defineStore('store', { async getRegionPolygon(region: any) { try { if (this.regionPolyon) return this.regionPolyon - else if (!region) { + else if (!region?.description?.length) { return } From c6dd583554d138ecf8ae085059e0e31433bdd9a9 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 20:22:39 -0800 Subject: [PATCH 6/8] Now supporting games without a boundary set. (why would that be?) --- functions/profile.ts | 2 +- src/components/QueueFound.vue | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/functions/profile.ts b/functions/profile.ts index efccd68e..61e6c875 100644 --- a/functions/profile.ts +++ b/functions/profile.ts @@ -38,7 +38,7 @@ const profileHandler: Handler = async (event) => { const success = dataIsArray ? data?.length : !!data const profileFound = success ? (dataIsString ? JSON.parse(data) : data) : null - console.log({ profileFound }) + // console.log({ profileFound }) if (profileFound) { body = await getBikeTagPlayerProfile(profileFound, authorized, true) } else { diff --git a/src/components/QueueFound.vue b/src/components/QueueFound.vue index 23df81de..72008083 100644 --- a/src/components/QueueFound.vue +++ b/src/components/QueueFound.vue @@ -92,7 +92,7 @@

{{ t('pages.round.image_first') }}

@@ -363,6 +363,7 @@ const changeLocation = (e) => { const setPlace = (e) => { gps.value['lat'] = round(e.geometry.location.lat()) gps.value['lng'] = round(e.geometry.location.lng()) + console.log('setPlace', { gps: gps.value }) center.value = { ...gps.value } location.value = inputDOM.value.value.split(',')[0] if (isGpsDefault.value) { @@ -441,14 +442,17 @@ const setImage = async (event) => { lng: round(GPSData.longitude), } isGpsDefault.value = false - } else { + center.value = { ...gps.value } + } else if (getGame.value?.boundary.lat && getGame.value?.boundary.lng) { gps.value = { lat: getGame.value?.boundary.lat, lng: getGame.value?.boundary.lng, } isGpsDefault.value = true + center.value = { ...gps.value } + } else { + isGpsDefault.value = false } - center.value = { ...gps.value } location.value = '' } } From a6bd7f688281693cf1e6843e11129f3e231cca89 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 21:49:49 -0800 Subject: [PATCH 7/8] putting the gps where it is supposed to go along with the player id with where it should go. --- functions/common/methods.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/common/methods.ts b/functions/common/methods.ts index 442f6d5d..59381785 100644 --- a/functions/common/methods.ts +++ b/functions/common/methods.ts @@ -1375,6 +1375,7 @@ export const setNewBikeTagPost = async ( /// Zero out the gps for the new location, as the GPS of a newly posted tag is the current/previous tag found location newBikeTagPost.gps = { lat: 0, long: 0, alt: 0 } /// Update the current BikeTag with the winning tag found information + previousBikeTag.gps = winningBikeTagPost.gps previousBikeTag.foundImageUrl = winningBikeTagPost.foundImageUrl previousBikeTag.foundTime = winningBikeTagPost.foundTime previousBikeTag.foundLocation = winningBikeTagPost.foundLocation From 1148167f4cda4ce6d441a6ee598c41f133e09f63 Mon Sep 17 00:00:00 2001 From: Ken Eucker Date: Fri, 5 Jan 2024 21:55:43 -0800 Subject: [PATCH 8/8] v3.2.7 -- now saving the gps and player ids correctly. --- package-lock.json | 12 ++++++------ package.json | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f7f367c2..d95134b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "biketag-vue", - "version": "3.2.6", + "version": "3.2.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "biketag-vue", - "version": "3.2.6", + "version": "3.2.7", "license": "AGPL-3.0-or-later", "dependencies": { "@auth0/auth0-vue": "^2.0.0", @@ -18,7 +18,7 @@ "@vueuse/head": "^0.7.5", "ajv": "^8.10.0", "autoprefixer": "^10.4.4", - "biketag": "^3.2.6", + "biketag": "^3.2.7", "bootstrap": "^5.1.3", "bootstrap-vue-next": "^0.15.5", "crypto-js": "^4.1.1", @@ -5482,9 +5482,9 @@ ] }, "node_modules/biketag": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/biketag/-/biketag-3.2.6.tgz", - "integrity": "sha512-eMoQu+VgrfeOvmdFoySqgq9m7LetdkXQKaC8Xx0DhF9GGSHeaKTghKu2yI7toQQZ1yVyHgTzwuxyWq+SJVoOvg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/biketag/-/biketag-3.2.7.tgz", + "integrity": "sha512-J74yZ9Sx065EDRd222Kk07bhyWaZ0GVb+ChI+zr+WO0QCXThCEhLB5dJPVjUY9B8KPwoffhAoQEzaVx84G1duQ==", "dependencies": { "@sanity/client": "2.25.1-feature-image-file-input-refactor.150", "axios": "^0.21.1", diff --git a/package.json b/package.json index 3db7f1f4..fa09f9d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "biketag-vue", - "version": "3.2.6", + "version": "3.2.7", "license": "AGPL-3.0-or-later", "scripts": { "lint": "npm run lint:js && npm run lint:style", @@ -23,7 +23,7 @@ "@vueuse/head": "^0.7.5", "ajv": "^8.10.0", "autoprefixer": "^10.4.4", - "biketag": "^3.2.6", + "biketag": "^3.2.7", "bootstrap": "^5.1.3", "bootstrap-vue-next": "^0.15.5", "crypto-js": "^4.1.1",