@dubsdotapp/expo 0.2.74 → 0.2.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +23 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useAuth.ts +10 -4
- package/src/index.ts +1 -0
- package/src/ui/UserProfileCard.tsx +2 -1
- package/src/ui/UserProfileSheet.tsx +5 -2
- package/src/ui/game/PlayersCard.tsx +2 -1
- package/src/utils/avatarUrl.ts +9 -0
package/dist/index.mjs
CHANGED
|
@@ -2128,6 +2128,12 @@ async function getDeviceInfo() {
|
|
|
2128
2128
|
}
|
|
2129
2129
|
}
|
|
2130
2130
|
|
|
2131
|
+
// src/utils/avatarUrl.ts
|
|
2132
|
+
function ensurePngAvatar(url) {
|
|
2133
|
+
if (!url) return void 0;
|
|
2134
|
+
return url.replace("/svg?", "/png?");
|
|
2135
|
+
}
|
|
2136
|
+
|
|
2131
2137
|
// src/hooks/useAuth.ts
|
|
2132
2138
|
function useAuth() {
|
|
2133
2139
|
const sharedAuth = useContext3(AuthContext);
|
|
@@ -2138,6 +2144,10 @@ function useAuth() {
|
|
|
2138
2144
|
const [token, setToken] = useState11(null);
|
|
2139
2145
|
const [error, setError] = useState11(null);
|
|
2140
2146
|
const pendingAuth = useRef2(null);
|
|
2147
|
+
const normalizeUser = (u) => ({
|
|
2148
|
+
...u,
|
|
2149
|
+
avatar: ensurePngAvatar(u.avatar) ?? u.avatar
|
|
2150
|
+
});
|
|
2141
2151
|
const reset = useCallback10(() => {
|
|
2142
2152
|
setStatus("idle");
|
|
2143
2153
|
setUser(null);
|
|
@@ -2171,7 +2181,7 @@ function useAuth() {
|
|
|
2171
2181
|
setStatus("needsRegistration");
|
|
2172
2182
|
return;
|
|
2173
2183
|
}
|
|
2174
|
-
setUser(result.user);
|
|
2184
|
+
setUser(normalizeUser(result.user));
|
|
2175
2185
|
setToken(result.token);
|
|
2176
2186
|
setStatus("authenticated");
|
|
2177
2187
|
} catch (err) {
|
|
@@ -2206,7 +2216,7 @@ function useAuth() {
|
|
|
2206
2216
|
});
|
|
2207
2217
|
pendingAuth.current = null;
|
|
2208
2218
|
const user2 = avatarUrl && !result.user.avatar ? { ...result.user, avatar: avatarUrl } : result.user;
|
|
2209
|
-
setUser(user2);
|
|
2219
|
+
setUser(normalizeUser(user2));
|
|
2210
2220
|
setToken(result.token);
|
|
2211
2221
|
setStatus("authenticated");
|
|
2212
2222
|
} catch (err) {
|
|
@@ -2229,7 +2239,7 @@ function useAuth() {
|
|
|
2229
2239
|
try {
|
|
2230
2240
|
client.setToken(savedToken);
|
|
2231
2241
|
const me = await client.getMe();
|
|
2232
|
-
setUser(me);
|
|
2242
|
+
setUser(normalizeUser(me));
|
|
2233
2243
|
setToken(savedToken);
|
|
2234
2244
|
setStatus("authenticated");
|
|
2235
2245
|
return true;
|
|
@@ -2244,7 +2254,7 @@ function useAuth() {
|
|
|
2244
2254
|
const refreshUser = useCallback10(async () => {
|
|
2245
2255
|
try {
|
|
2246
2256
|
const me = await client.getMe();
|
|
2247
|
-
setUser(me);
|
|
2257
|
+
setUser(normalizeUser(me));
|
|
2248
2258
|
} catch {
|
|
2249
2259
|
}
|
|
2250
2260
|
}, [client]);
|
|
@@ -3300,7 +3310,7 @@ function UserProfileCard({
|
|
|
3300
3310
|
}) {
|
|
3301
3311
|
const t = useDubsTheme();
|
|
3302
3312
|
const imageUri = useMemo3(
|
|
3303
|
-
() => avatarUrl || `https://api.dicebear.com/9.x/avataaars/png?seed=${walletAddress}&size=128`,
|
|
3313
|
+
() => ensurePngAvatar(avatarUrl) || `https://api.dicebear.com/9.x/avataaars/png?seed=${walletAddress}&size=128`,
|
|
3304
3314
|
[avatarUrl, walletAddress]
|
|
3305
3315
|
);
|
|
3306
3316
|
return /* @__PURE__ */ jsxs3(View3, { style: [styles2.card, { backgroundColor: t.surface, borderColor: t.border }], children: [
|
|
@@ -3532,7 +3542,7 @@ function getAvatarUrl2(style, seed, size = 256) {
|
|
|
3532
3542
|
function parseAvatarUrl(url) {
|
|
3533
3543
|
if (!url) return { style: "adventurer", seed: generateSeed2() };
|
|
3534
3544
|
try {
|
|
3535
|
-
const match = url.match(
|
|
3545
|
+
const match = url.match(/\/\d+\.x\/([^/]+)\/(?:png|svg)\?seed=([^&]+)/);
|
|
3536
3546
|
if (match) return { style: match[1], seed: match[2] };
|
|
3537
3547
|
} catch {
|
|
3538
3548
|
}
|
|
@@ -3812,7 +3822,8 @@ var styles4 = StyleSheet5.create({
|
|
|
3812
3822
|
},
|
|
3813
3823
|
avatar: {
|
|
3814
3824
|
width: "100%",
|
|
3815
|
-
height: "100%"
|
|
3825
|
+
height: "100%",
|
|
3826
|
+
backgroundColor: "#1a1a2e"
|
|
3816
3827
|
},
|
|
3817
3828
|
avatarLoading: {
|
|
3818
3829
|
...StyleSheet5.absoluteFillObject,
|
|
@@ -3863,7 +3874,8 @@ var styles4 = StyleSheet5.create({
|
|
|
3863
3874
|
},
|
|
3864
3875
|
styleTileImage: {
|
|
3865
3876
|
width: "100%",
|
|
3866
|
-
height: "100%"
|
|
3877
|
+
height: "100%",
|
|
3878
|
+
backgroundColor: "#1a1a2e"
|
|
3867
3879
|
},
|
|
3868
3880
|
// Error
|
|
3869
3881
|
errorBox: {
|
|
@@ -4318,7 +4330,7 @@ function BettorRow({
|
|
|
4318
4330
|
const showAvatar = bettor.avatar && !imgFailed;
|
|
4319
4331
|
return /* @__PURE__ */ jsxs9(View9, { style: [styles8.row, !isFirst && { borderTopColor: t.border, borderTopWidth: 1 }], children: [
|
|
4320
4332
|
/* @__PURE__ */ jsx11(View9, { style: [styles8.dot, { backgroundColor: dotColor }] }),
|
|
4321
|
-
showAvatar ? /* @__PURE__ */ jsx11(Img, { source: { uri: bettor.avatar }, style: styles8.avatar, resizeMode: "cover", onError: () => setImgFailed(true) }) : /* @__PURE__ */ jsx11(View9, { style: [styles8.avatar, styles8.avatarPlaceholder] }),
|
|
4333
|
+
showAvatar ? /* @__PURE__ */ jsx11(Img, { source: { uri: ensurePngAvatar(bettor.avatar) }, style: styles8.avatar, resizeMode: "cover", onError: () => setImgFailed(true) }) : /* @__PURE__ */ jsx11(View9, { style: [styles8.avatar, styles8.avatarPlaceholder] }),
|
|
4322
4334
|
/* @__PURE__ */ jsx11(View9, { style: styles8.nameCol, children: /* @__PURE__ */ jsx11(Text9, { style: [styles8.username, { color: t.text }], numberOfLines: 1, children: bettor.username || truncateWallet(bettor.wallet, truncateChars) }) }),
|
|
4323
4335
|
/* @__PURE__ */ jsxs9(Text9, { style: [styles8.amount, { color: t.textSecondary }], children: [
|
|
4324
4336
|
bettor.amount,
|
|
@@ -5611,6 +5623,7 @@ export {
|
|
|
5611
5623
|
UserProfileCard,
|
|
5612
5624
|
UserProfileSheet,
|
|
5613
5625
|
createSecureStoreStorage,
|
|
5626
|
+
ensurePngAvatar,
|
|
5614
5627
|
getDeviceInfo,
|
|
5615
5628
|
isSolanaSeeker,
|
|
5616
5629
|
mergeTheme,
|