diff --git a/src/components/Timeline/Default.tsx b/src/components/Timeline/Default.tsx index b1b2157d..2fb94521 100644 --- a/src/components/Timeline/Default.tsx +++ b/src/components/Timeline/Default.tsx @@ -17,7 +17,7 @@ import { QueryKeyTimeline } from '@utils/queryHooks/timeline' import { checkInstanceFeature, getInstanceAccount } from '@utils/slices/instancesSlice' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import React, { useRef, useState } from 'react' +import React, { Fragment, useRef, useState } from 'react' import { Pressable, StyleProp, View, ViewStyle } from 'react-native' import { useSelector } from 'react-redux' import * as ContextMenu from 'zeego/context-menu' @@ -196,8 +196,8 @@ const TimelineDefault: React.FC = ({ - {[mShare, mStatus, mInstance].map(type => ( - <> + {[mShare, mStatus, mInstance].map((type, i) => ( + {type.map((mGroup, index) => ( {mGroup.map(menu => ( @@ -208,7 +208,7 @@ const TimelineDefault: React.FC = ({ ))} ))} - + ))} diff --git a/src/components/Timeline/Notifications.tsx b/src/components/Timeline/Notifications.tsx index 1e2b9bf7..57e783b3 100644 --- a/src/components/Timeline/Notifications.tsx +++ b/src/components/Timeline/Notifications.tsx @@ -16,7 +16,7 @@ import { QueryKeyTimeline } from '@utils/queryHooks/timeline' import { checkInstanceFeature, getInstanceAccount } from '@utils/slices/instancesSlice' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import React, { useCallback, useRef, useState } from 'react' +import React, { Fragment, useCallback, useRef, useState } from 'react' import { Pressable, View } from 'react-native' import { useSelector } from 'react-redux' import * as ContextMenu from 'zeego/context-menu' @@ -164,8 +164,8 @@ const TimelineNotifications: React.FC = ({ notification, queryKey }) => { - {[mShare, mStatus, mInstance].map(type => ( - <> + {[mShare, mStatus, mInstance].map((type, i) => ( + {type.map((mGroup, index) => ( {mGroup.map(menu => ( @@ -176,7 +176,7 @@ const TimelineNotifications: React.FC = ({ notification, queryKey }) => { ))} ))} - + ))} diff --git a/src/components/Timeline/Shared/HeaderAndroid.tsx b/src/components/Timeline/Shared/HeaderAndroid.tsx index 51306535..016ec0da 100644 --- a/src/components/Timeline/Shared/HeaderAndroid.tsx +++ b/src/components/Timeline/Shared/HeaderAndroid.tsx @@ -4,7 +4,7 @@ import menuStatus from '@components/contextMenu/status' import Icon from '@components/Icon' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import React, { useContext, useState } from 'react' +import React, { Fragment, useContext, useState } from 'react' import { Platform, View } from 'react-native' import * as DropdownMenu from 'zeego/dropdown-menu' import StatusContext from './Context' @@ -53,8 +53,8 @@ const TimelineHeaderAndroid: React.FC = () => { - {[mShare, mAccount, mStatus].map(type => ( - <> + {[mShare, mAccount, mStatus].map((type, i) => ( + {type.map((mGroup, index) => ( {mGroup.map(menu => ( @@ -65,7 +65,7 @@ const TimelineHeaderAndroid: React.FC = () => { ))} ))} - + ))} diff --git a/src/components/Timeline/Shared/HeaderDefault.tsx b/src/components/Timeline/Shared/HeaderDefault.tsx index a7b7e290..7fa0545d 100644 --- a/src/components/Timeline/Shared/HeaderDefault.tsx +++ b/src/components/Timeline/Shared/HeaderDefault.tsx @@ -4,7 +4,7 @@ import menuStatus from '@components/contextMenu/status' import Icon from '@components/Icon' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import React, { useContext, useState } from 'react' +import React, { Fragment, useContext, useState } from 'react' import { useTranslation } from 'react-i18next' import { Platform, Pressable, View } from 'react-native' import * as DropdownMenu from 'zeego/dropdown-menu' @@ -83,8 +83,8 @@ const TimelineHeaderDefault: React.FC = () => { - {[mShare, mAccount, mStatus].map(type => ( - <> + {[mShare, mAccount, mStatus].map((type, i) => ( + {type.map((mGroup, index) => ( {mGroup.map(menu => ( @@ -95,7 +95,7 @@ const TimelineHeaderDefault: React.FC = () => { ))} ))} - + ))} diff --git a/src/components/Timeline/Shared/HeaderNotification.tsx b/src/components/Timeline/Shared/HeaderNotification.tsx index 80f73edb..42239322 100644 --- a/src/components/Timeline/Shared/HeaderNotification.tsx +++ b/src/components/Timeline/Shared/HeaderNotification.tsx @@ -10,7 +10,7 @@ import { getInstanceUrl } from '@utils/slices/instancesSlice' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import * as WebBrowser from 'expo-web-browser' -import React, { useContext, useState } from 'react' +import React, { Fragment, useContext, useState } from 'react' import { useTranslation } from 'react-i18next' import { Platform, Pressable, View } from 'react-native' import { useSelector } from 'react-redux' @@ -90,8 +90,8 @@ const TimelineHeaderNotification: React.FC = ({ notification }) => { - {[mShare, mStatus, mAccount, mInstance].map(type => ( - <> + {[mShare, mStatus, mAccount, mInstance].map((type, i) => ( + {type.map((mGroup, index) => ( {mGroup.map(menu => ( @@ -102,7 +102,7 @@ const TimelineHeaderNotification: React.FC = ({ notification }) => { ))} ))} - + ))} diff --git a/src/screens/Tabs/Me/Root/Collections.tsx b/src/screens/Tabs/Me/Root/Collections.tsx index 7d46433c..891fb9f6 100644 --- a/src/screens/Tabs/Me/Root/Collections.tsx +++ b/src/screens/Tabs/Me/Root/Collections.tsx @@ -4,11 +4,7 @@ import { useAppDispatch } from '@root/store' import { useAnnouncementQuery } from '@utils/queryHooks/announcement' import { useListsQuery } from '@utils/queryHooks/lists' import { useFollowedTagsQuery } from '@utils/queryHooks/tags' -import { - checkInstanceFeature, - getInstanceMePage, - updateInstanceMePage -} from '@utils/slices/instancesSlice' +import { getInstanceMePage, updateInstanceMePage } from '@utils/slices/instancesSlice' import { getInstancePush } from '@utils/slices/instancesSlice' import React from 'react' import { useTranslation } from 'react-i18next' @@ -21,10 +17,8 @@ const Collections: React.FC = () => { const dispatch = useAppDispatch() const mePage = useSelector(getInstanceMePage) - const canFollowTags = useSelector(checkInstanceFeature('follow_tags')) useFollowedTagsQuery({ options: { - enabled: canFollowTags, onSuccess: data => dispatch( updateInstanceMePage({ diff --git a/src/screens/Tabs/Shared/Account.tsx b/src/screens/Tabs/Shared/Account.tsx index 3dc058fb..3690d0ed 100644 --- a/src/screens/Tabs/Shared/Account.tsx +++ b/src/screens/Tabs/Shared/Account.tsx @@ -10,7 +10,7 @@ import { useAccountQuery } from '@utils/queryHooks/account' import { QueryKeyTimeline } from '@utils/queryHooks/timeline' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import React, { useEffect, useMemo, useState } from 'react' +import React, { Fragment, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { Text, View } from 'react-native' import { useSharedValue } from 'react-native-reanimated' @@ -55,8 +55,8 @@ const TabSharedAccount: React.FC - {[mShare, mAccount].map(type => ( - <> + {[mShare, mAccount].map((type, i) => ( + {type.map((mGroup, index) => ( {mGroup.map(menu => ( @@ -67,7 +67,7 @@ const TabSharedAccount: React.FC ))} ))} - + ))} diff --git a/src/utils/queryHooks/tags.ts b/src/utils/queryHooks/tags.ts index 28e61831..b2ec80e6 100644 --- a/src/utils/queryHooks/tags.ts +++ b/src/utils/queryHooks/tags.ts @@ -11,6 +11,8 @@ import { } from '@tanstack/react-query' import { infinitePageParams } from './utils' import { PagedResponse } from '@api/helpers' +import { useSelector } from 'react-redux' +import { checkInstanceFeature } from '@utils/slices/instancesSlice' export type QueryKeyFollowedTags = ['FollowedTags'] const useFollowedTagsQuery = ( @@ -21,14 +23,23 @@ const useFollowedTagsQuery = ( > } | void ) => { + const canFollowTags = useSelector(checkInstanceFeature('follow_tags')) + const queryKey: QueryKeyFollowedTags = ['FollowedTags'] return useInfiniteQuery( queryKey, async ({ pageParam }: QueryFunctionContext) => { const params: { [key: string]: string } = { ...pageParam } - return await apiInstance({ method: 'get', url: `followed_tags`, params }) + return await apiInstance({ + method: 'get', + url: `followed_tags`, + params: { limit: 200, ...params } + }) }, { + enabled: canFollowTags, + staleTime: Infinity, + cacheTime: Infinity, ...params?.options, ...infinitePageParams }