a
+1
-1
src/components/BlockedGeoOverlay.tsx
+1
-1
src/components/BlockedGeoOverlay.tsx
···
5
import {useLingui} from '@lingui/react'
6
7
import {logger} from '#/logger'
8
-
import {useDeviceGeolocationApi} from '#/geolocation'
9
import {useEnableSquareButtons} from '#/state/preferences/enable-square-buttons'
10
import {atoms as a, useBreakpoints, useTheme, web} from '#/alf'
11
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
···
20
import {Text} from '#/components/Typography'
21
import {BottomSheetOutlet} from '#/../modules/bottom-sheet'
22
import {IS_WEB} from '#/env'
23
24
export function BlockedGeoOverlay() {
25
const t = useTheme()
···
5
import {useLingui} from '@lingui/react'
6
7
import {logger} from '#/logger'
8
import {useEnableSquareButtons} from '#/state/preferences/enable-square-buttons'
9
import {atoms as a, useBreakpoints, useTheme, web} from '#/alf'
10
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
···
19
import {Text} from '#/components/Typography'
20
import {BottomSheetOutlet} from '#/../modules/bottom-sheet'
21
import {IS_WEB} from '#/env'
22
+
import {useDeviceGeolocationApi} from '#/geolocation'
23
24
export function BlockedGeoOverlay() {
25
const t = useTheme()
+1
-1
src/env/common.ts
+1
-1
src/env/common.ts
+1
-1
src/lib/react-query.tsx
+1
-1
src/lib/react-query.tsx
+1
src/screens/Messages/components/MessagesList.tsx
+1
src/screens/Messages/components/MessagesList.tsx
+1
-1
src/screens/Profile/Header/Shell.tsx
+1
-1
src/screens/Profile/Header/Shell.tsx
+1
-1
src/screens/Settings/AppIconSettings/useAppIconSets.ts
+1
-1
src/screens/Settings/AppIconSettings/useAppIconSets.ts
+23
-15
src/screens/Settings/DeerSettings.tsx
+23
-15
src/screens/Settings/DeerSettings.tsx
···
131
import {Verified_Stroke2_Corner2_Rounded as VerifiedIcon} from '#/components/icons/Verified'
132
import * as Layout from '#/components/Layout'
133
import {Text} from '#/components/Typography'
134
-
import {SearchProfileCard} from '../Search/components/SearchProfileCard'
135
import { IS_WEB } from '#/env/index.web'
136
type Props = NativeStackScreenProps<CommonNavigatorParams>
137
138
function ConstellationInstanceDialog({
139
control,
140
}: {
···
467
const showLinkInHandle = useShowLinkInHandle()
468
const setShowLinkInHandle = useSetShowLinkInHandle()
469
470
-
const [gates, setGatesView] = useState(Object.assign({
471
-
alt_share_icon: false,
472
-
debug_show_feedcontext: false,
473
-
debug_subscriptions: false,
474
-
explore_show_suggested_feeds: false,
475
-
feed_reply_button_open_thread: false,
476
-
old_postonboarding: false,
477
-
onboarding_add_video_feed: false,
478
-
onboarding_suggested_starterpacks: false,
479
-
remove_show_latest_button: false,
480
-
test_gate_1: false,
481
-
test_gate_2: false,
482
-
} satisfies Record<Gate, false>, Object.fromEntries(useGatesCache())))
483
const dangerousSetGate = useDangerousSetGate()
484
const setGate = (gate: Gate, value: boolean) => {
485
dangerousSetGate(gate, value)
···
935
label={_(msg`Reset gates`)}
936
onPress={() => {
937
resetDeerGateCache()
938
-
setGatesView({})
939
}}
940
/>
941
</SettingsList.Group>
···
131
import {Verified_Stroke2_Corner2_Rounded as VerifiedIcon} from '#/components/icons/Verified'
132
import * as Layout from '#/components/Layout'
133
import {Text} from '#/components/Typography'
134
import { IS_WEB } from '#/env/index.web'
135
+
import {SearchProfileCard} from '../Search/components/SearchProfileCard'
136
type Props = NativeStackScreenProps<CommonNavigatorParams>
137
138
+
const defaultGateValues = {
139
+
alt_share_icon: false,
140
+
debug_show_feedcontext: false,
141
+
debug_subscriptions: false,
142
+
disable_onboarding_find_contacts: false,
143
+
disable_settings_find_contacts: false,
144
+
explore_show_suggested_feeds: false,
145
+
feed_reply_button_open_thread: false,
146
+
is_bsky_team_member: false,
147
+
disable_live_now_beta: false,
148
+
old_postonboarding: false,
149
+
onboarding_add_video_feed: false,
150
+
onboarding_suggested_starterpacks: false,
151
+
remove_show_latest_button: false,
152
+
show_composer_prompt: false,
153
+
suggested_users_dismiss: false,
154
+
test_gate_1: false,
155
+
test_gate_2: false
156
+
} satisfies Record<Gate, false>
157
+
158
function ConstellationInstanceDialog({
159
control,
160
}: {
···
487
const showLinkInHandle = useShowLinkInHandle()
488
const setShowLinkInHandle = useSetShowLinkInHandle()
489
490
+
const [gates, setGatesView] = useState(Object.assign(defaultGateValues, Object.fromEntries(useGatesCache())))
491
const dangerousSetGate = useDangerousSetGate()
492
const setGate = (gate: Gate, value: boolean) => {
493
dangerousSetGate(gate, value)
···
943
label={_(msg`Reset gates`)}
944
onPress={() => {
945
resetDeerGateCache()
946
+
setGatesView(defaultGateValues)
947
}}
948
/>
949
</SettingsList.Group>
+1
-1
src/state/preferences/custom-appview-did.tsx
+1
-1
src/state/preferences/custom-appview-did.tsx
+1
-1
src/state/queries/constellation.ts
+1
-1
src/state/queries/constellation.ts
+4
-6
src/state/queries/deer-verification.ts
+4
-6
src/state/queries/deer-verification.ts
···
53
from_dids: Array.from(trusted),
54
})
55
return asyncGenDedupe(
56
-
asyncGenFilter(verificationLinks, ({did}) => trusted.has(did)),
57
-
({did}) => did,
58
)
59
}
60
···
78
// - clear the promise from the lru on failure
79
// - skip links that cause errors
80
async link => {
81
-
const {did, rkey} = link
82
83
-
let service = await resolvePdsServiceUrl(did)
84
-
85
-
const request = `${service}/xrpc/com.atproto.repo.getRecord?repo=${did}&collection=app.bsky.graph.verification&rkey=${rkey}`
86
const record = await verificationCache.getOrTryInsertWith(
87
request,
88
async () => {
···
53
from_dids: Array.from(trusted),
54
})
55
return asyncGenDedupe(
56
+
asyncGenFilter(verificationLinks, (link) => trusted.has(link.did)),
57
+
(link) => link.did,
58
)
59
}
60
···
78
// - clear the promise from the lru on failure
79
// - skip links that cause errors
80
async link => {
81
+
let service = await resolvePdsServiceUrl(link.did)
82
83
+
const request = `${service}/xrpc/com.atproto.repo.getRecord?repo=${did}&collection=app.bsky.graph.verification&rkey=${link.rkey}`
84
const record = await verificationCache.getOrTryInsertWith(
85
request,
86
async () => {
+1
-1
src/state/queries/direct-fetch-record.ts
+1
-1
src/state/queries/direct-fetch-record.ts
+2
-2
src/view/com/modals/UserAddRemoveLists.tsx
+2
-2
src/view/com/modals/UserAddRemoveLists.tsx
···
14
import {cleanError} from '#/lib/strings/errors'
15
import {sanitizeHandle} from '#/lib/strings/handles'
16
import {s} from '#/lib/styles'
17
-
import {useTheme} from '#/alf'
18
import {useModalControls} from '#/state/modals'
19
import {
20
getMembership,
···
24
useListMembershipRemoveMutation,
25
} from '#/state/queries/list-memberships'
26
import {useSession} from '#/state/session'
27
import {IS_ANDROID, IS_WEB, IS_WEB_MOBILE} from '#/env'
28
import {MyLists} from '../lists/MyLists'
29
import {Button} from '../util/forms/Button'
···
229
</View>
230
<View>
231
{isProcessing || typeof membership === 'undefined' ? (
232
-
<ActivityIndicator color={t.palette.primary_500} />
233
) : (
234
<Button
235
testID={`user-${handle}-addBtn`}
···
14
import {cleanError} from '#/lib/strings/errors'
15
import {sanitizeHandle} from '#/lib/strings/handles'
16
import {s} from '#/lib/styles'
17
import {useModalControls} from '#/state/modals'
18
import {
19
getMembership,
···
23
useListMembershipRemoveMutation,
24
} from '#/state/queries/list-memberships'
25
import {useSession} from '#/state/session'
26
+
import {useTheme} from '#/alf'
27
import {IS_ANDROID, IS_WEB, IS_WEB_MOBILE} from '#/env'
28
import {MyLists} from '../lists/MyLists'
29
import {Button} from '../util/forms/Button'
···
229
</View>
230
<View>
231
{isProcessing || typeof membership === 'undefined' ? (
232
+
<ActivityIndicator color={t.palette.contrast_500} />
233
) : (
234
<Button
235
testID={`user-${handle}-addBtn`}