diff options
Diffstat (limited to 'src/state/models/ui/preferences.ts')
-rw-r--r-- | src/state/models/ui/preferences.ts | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/state/models/ui/preferences.ts b/src/state/models/ui/preferences.ts index 3b03cdca1..64ab4ecba 100644 --- a/src/state/models/ui/preferences.ts +++ b/src/state/models/ui/preferences.ts @@ -7,6 +7,7 @@ import {RootStoreModel} from '../root-store' import {ModerationOpts} from '@atproto/api' import {DEFAULT_FEEDS} from 'lib/constants' import {deviceLocales} from 'platform/detection' +import {getAge} from 'lib/strings/time' import {LANGUAGES} from '../../../locale/languages' // TEMP we need to permanently convert 'show' to 'ignore', for now we manually convert -prf @@ -47,6 +48,7 @@ export class PreferencesModel { contentLabels = new LabelPreferencesModel() savedFeeds: string[] = [] pinnedFeeds: string[] = [] + birthDate: Date | undefined = undefined homeFeedRepliesEnabled: boolean = true homeFeedRepliesThreshold: number = 2 homeFeedRepostsEnabled: boolean = true @@ -60,6 +62,13 @@ export class PreferencesModel { makeAutoObservable(this, {lock: false}, {autoBind: true}) } + get userAge(): number | undefined { + if (!this.birthDate) { + return undefined + } + return getAge(this.birthDate) + } + serialize() { return { contentLanguages: this.contentLanguages, @@ -199,6 +208,7 @@ export class PreferencesModel { ) { this.pinnedFeeds = prefs.feeds.pinned } + this.birthDate = prefs.birthDate }) // set defaults on missing items @@ -430,6 +440,11 @@ export class PreferencesModel { ) } + async setBirthDate(birthDate: Date) { + this.birthDate = birthDate + await this.rootStore.agent.setPersonalDetails({birthDate}) + } + toggleHomeFeedRepliesEnabled() { this.homeFeedRepliesEnabled = !this.homeFeedRepliesEnabled } |