fix: respect always expand content warnings

This commit is contained in:
patak 2023-05-04 22:29:47 +02:00
parent e9de11000b
commit 16561845f8
2 changed files with 18 additions and 3 deletions

View file

@ -1,11 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
const props = defineProps<{ enabled?: boolean; filter?: boolean; isDM?: boolean }>() const props = defineProps<{ enabled?: boolean; filter?: boolean; isDM?: boolean }>()
const showContent = ref(!props.enabled) const expandSpoilersByDefault = computed(() => currentUser.value ? getExpandSpoilersByDefault(currentUser.value.account) : false)
const showContent = ref(expandSpoilersByDefault.value ? true : !props.enabled)
const toggleContent = useToggle(showContent) const toggleContent = useToggle(showContent)
watchEffect(() => { watchEffect(() => {
showContent.value = !props.enabled showContent.value = expandSpoilersByDefault.value ? true : !props.enabled
}) })
</script> </script>

View file

@ -169,10 +169,23 @@ export async function loginTo(masto: ElkMasto, user: Overwrite<UserLogin, { acco
currentUserHandle.value = me.acct currentUserHandle.value = me.acct
} }
const accountPreferencesMap = new Map<string, mastodon.v1.Preference>()
export function getExpandSpoilersByDefault(account: mastodon.v1.AccountCredentials) {
return accountPreferencesMap.get(account.acct)?.['reading:expand:spoilers'] ?? false
}
export async function fetchAccountInfo(client: mastodon.Client, server: string) { export async function fetchAccountInfo(client: mastodon.Client, server: string) {
const account = await client.v1.accounts.verifyCredentials() const [account, preferences] = await Promise.all([
client.v1.accounts.verifyCredentials(),
client.v1.preferences.fetch(),
])
if (!account.acct.includes('@')) if (!account.acct.includes('@'))
account.acct = `${account.acct}@${server}` account.acct = `${account.acct}@${server}`
// TODO: lazy load preferences
accountPreferencesMap.set(account.acct, preferences)
cacheAccount(account, server, true) cacheAccount(account, server, true)
return account return account
} }