diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt index eae9e30e..699973d8 100644 --- a/fastlane/metadata/en-US/release_notes.txt +++ b/fastlane/metadata/en-US/release_notes.txt @@ -2,3 +2,4 @@ Enjoy toooting! This version includes following improvements and fixes: - Align filter experience with v4.0 and above - Supports enlarging user's avatar and banner - Fix iPad weird sizing (not optimisation) +- Experiment (!) support of Pleroma diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt index 1655a23d..ee10414f 100644 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ b/fastlane/metadata/zh-Hans/release_notes.txt @@ -2,3 +2,4 @@ toooting愉快!此版本包括以下改进和修复: - 改进过滤体验,与v4.0以上版本一致 - 支持查看用户的头像和横幅图片 - 修复iPad部分尺寸问题(非优化) +- 试验性(!)支持Pleroma diff --git a/src/components/Hashtag.tsx b/src/components/Hashtag.tsx index e03d2fd0..90ab7ef7 100644 --- a/src/components/Hashtag.tsx +++ b/src/components/Hashtag.tsx @@ -61,7 +61,7 @@ const ComponentHashtag: React.FC = ({ }) => setHeight(height)} > parseInt(h.uses)).reverse()} + data={hashtag.history?.map(h => parseInt(h.uses)).reverse()} width={width} height={height} margin={children ? StyleConstants.Spacing.S : undefined} diff --git a/src/helpers/queryClient.ts b/src/helpers/queryClient.ts index 90649981..cba87dbe 100644 --- a/src/helpers/queryClient.ts +++ b/src/helpers/queryClient.ts @@ -1,5 +1,21 @@ import { QueryClient } from '@tanstack/react-query' -const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 1000 * 60 * 5 } } }) +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 1000 * 60 * 5, + retry: (failureCount, error: any) => { + if (error?.status === 404) { + return false + } + if (failureCount <= 3) { + return true + } else { + return false + } + } + } + } +}) export default queryClient diff --git a/src/utils/slices/instances/add.ts b/src/utils/slices/instances/add.ts index 989b596b..e69e6c1e 100644 --- a/src/utils/slices/instances/add.ts +++ b/src/utils/slices/instances/add.ts @@ -50,6 +50,12 @@ const addInstance = createAsyncThunk( domain, url: `api/v1/preferences`, headers: { Authorization: `Bearer ${token}` } + }).catch(error => { + if (error?.status === 404) { + return Promise.resolve({ body: {} }) + } else { + return Promise.reject() + } }) const { body: filters } = await apiGeneral[]>({ diff --git a/src/utils/slices/instances/updateAccountPreferences.ts b/src/utils/slices/instances/updateAccountPreferences.ts index cf1b65d6..6b57fa65 100644 --- a/src/utils/slices/instances/updateAccountPreferences.ts +++ b/src/utils/slices/instances/updateAccountPreferences.ts @@ -7,6 +7,14 @@ export const updateAccountPreferences = createAsyncThunk( return apiInstance({ method: 'get', url: `preferences` - }).then(res => res.body) + }) + .then(res => res.body) + .catch(error => { + if (error?.status === 404) { + return Promise.resolve({}) + } else { + return Promise.reject() + } + }) } ) diff --git a/src/utils/slices/instancesSlice.ts b/src/utils/slices/instancesSlice.ts index 7704cef9..4771b10e 100644 --- a/src/utils/slices/instancesSlice.ts +++ b/src/utils/slices/instancesSlice.ts @@ -280,7 +280,7 @@ export const getInstanceUrl = ({ instances: { instances } }: RootState) => instances[findInstanceActive(instances)]?.url export const getInstanceUri = ({ instances: { instances } }: RootState) => - instances[findInstanceActive(instances)]?.uri + instances[findInstanceActive(instances)]?.uri.replace(/^https?:\/\//, '') // Pleroma has schema export const getInstanceUrls = ({ instances: { instances } }: RootState) => instances[findInstanceActive(instances)]?.urls