forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {type ID as PolicyUpdate202508} from '#/components/PolicyUpdateOverlay/updates/202508/config'
2import {type Geolocation} from '#/geolocation/types'
3
4/**
5 * Device data that's specific to the device and does not vary based account
6 */
7export type Device = {
8 fontScale: '-2' | '-1' | '0' | '1' | '2'
9 fontFamily: 'system' | 'theme'
10 lastNuxDialog: string | undefined
11
12 /**
13 * Geolocation config, fetched from the IP service. This previously did
14 * double duty as the "status" for geolocation state, but that has since
15 * moved here to the client.
16 *
17 * @deprecated use `mergedGeolocation` instead
18 */
19 geolocation?: {
20 countryCode: string | undefined
21 regionCode: string | undefined
22 ageRestrictedGeos: {
23 countryCode: string
24 regionCode: string | undefined
25 }[]
26 ageBlockedGeos: {
27 countryCode: string
28 regionCode: string | undefined
29 }[]
30 }
31
32 /**
33 * The raw response from the geolocation service, if available. We
34 * cache this here and update it lazily on session start.
35 */
36 geolocationServiceResponse?: Geolocation
37 /**
38 * The GPS-based geolocation, if the user has granted permission.
39 */
40 deviceGeolocation?: Geolocation
41 /**
42 * The merged geolocation, combining `geolocationServiceResponse` and
43 * `deviceGeolocation`, with preference to `deviceGeolocation`.
44 */
45 mergedGeolocation?: Geolocation
46
47 trendingBetaEnabled: boolean
48 devMode: boolean
49 demoMode: boolean
50
51 // deer
52 deerGateCache: string
53 activitySubscriptionsNudged?: boolean
54 threadgateNudged?: boolean
55
56 /**
57 * Policy update overlays. New IDs are required for each new announcement.
58 */
59 policyUpdateDebugOverride?: boolean
60 [PolicyUpdate202508]?: boolean
61}
62
63export type Account = {
64 searchTermHistory?: string[]
65 searchAccountHistory?: string[]
66
67 /**
68 * The ISO date string of when this account's birthdate was last updated on
69 * this device.
70 */
71 birthdateLastUpdatedAt?: string
72
73 lastSelectedHomeFeed?: string
74}