1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

619 restructure local storage (#628)

* To MMKV migration working

* POC migrated font size settings

* Moved settings to mmkv

* Fix typos

* Migrated contexts slice

* Migrated app slice

* POC instance emoji update

* Migrated drafts

* Migrated simple instance properties

* All migrated!

* Re-structure files

* Tolerant of undefined settings

* Can properly logging in and out including empty state
This commit is contained in:
xmflsct
2022-12-28 23:41:36 +01:00
committed by GitHub
parent 71ccb4a93c
commit 1ea6aff328
214 changed files with 2151 additions and 3694 deletions

View File

@@ -1,58 +1,44 @@
import { MenuContainer, MenuRow } from '@components/Menu'
import { useNavigation } from '@react-navigation/native'
import { useAppDispatch } from '@root/store'
import { useAnnouncementQuery } from '@utils/queryHooks/announcement'
import { useListsQuery } from '@utils/queryHooks/lists'
import { useFollowedTagsQuery } from '@utils/queryHooks/tags'
import { getInstanceMePage, updateInstanceMePage } from '@utils/slices/instancesSlice'
import { getInstancePush } from '@utils/slices/instancesSlice'
import { useAccountStorage } from '@utils/storage/actions'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
const Collections: React.FC = () => {
const { t } = useTranslation(['screenAnnouncements', 'screenTabs'])
const navigation = useNavigation<any>()
const dispatch = useAppDispatch()
const mePage = useSelector(getInstanceMePage)
const [pageMe, setPageMe] = useAccountStorage.object('page_me')
useFollowedTagsQuery({
options: {
onSuccess: data =>
dispatch(
updateInstanceMePage({
followedTags: { shown: !!data?.pages?.[0].body?.length }
})
)
setPageMe({ ...pageMe, followedTags: { shown: !!data?.pages?.[0].body?.length } })
}
})
useListsQuery({
options: {
onSuccess: data =>
dispatch(
updateInstanceMePage({
lists: { shown: !!data?.length }
})
)
onSuccess: data => setPageMe({ ...pageMe, lists: { shown: !!data?.length } })
}
})
useAnnouncementQuery({
showAll: true,
options: {
onSuccess: data =>
dispatch(
updateInstanceMePage({
announcements: {
shown: !!data?.length ? true : false,
unread: data?.filter(announcement => !announcement.read).length
}
})
)
setPageMe({
...pageMe,
announcements: {
shown: !!data?.length ? true : false,
unread: data?.filter(announcement => !announcement.read).length
}
})
}
})
const instancePush = useSelector(getInstancePush, (prev, next) => prev?.global === next?.global)
const [instancePush] = useAccountStorage.object('push')
return (
<MenuContainer>
@@ -74,7 +60,7 @@ const Collections: React.FC = () => {
title={t('screenTabs:me.stacks.favourites.name')}
onPress={() => navigation.navigate('Tab-Me-Favourites')}
/>
{mePage.lists.shown ? (
{pageMe.lists.shown ? (
<MenuRow
iconFront='List'
iconBack='ChevronRight'
@@ -82,7 +68,7 @@ const Collections: React.FC = () => {
onPress={() => navigation.navigate('Tab-Me-List-List')}
/>
) : null}
{mePage.followedTags.shown ? (
{pageMe.followedTags.shown ? (
<MenuRow
iconFront='Hash'
iconBack='ChevronRight'
@@ -90,15 +76,15 @@ const Collections: React.FC = () => {
onPress={() => navigation.navigate('Tab-Me-FollowedTags')}
/>
) : null}
{mePage.announcements.shown ? (
{pageMe.announcements.shown ? (
<MenuRow
iconFront='Clipboard'
iconBack='ChevronRight'
title={t('screenAnnouncements:heading')}
content={
mePage.announcements.unread
pageMe.announcements.unread
? t('screenTabs:me.root.announcements.content.unread', {
amount: mePage.announcements.unread
amount: pageMe.announcements.unread
})
: t('screenTabs:me.root.announcements.content.read')
}