fix
This commit is contained in:
@@ -104,7 +104,7 @@ index d7208df13..b711f71c7 100644
|
|||||||
- />
|
- />
|
||||||
- </Svg>
|
- </Svg>
|
||||||
+ <Image
|
+ <Image
|
||||||
+ source={require('../../../assets/icon.png')}
|
+ source={require('../../../assets/logo.png')}
|
||||||
+ style={[{width: size, height: size}, flatten(style)]}
|
+ style={[{width: size, height: size}, flatten(style)]}
|
||||||
+ contentFit="contain"
|
+ contentFit="contain"
|
||||||
+ accessibilityLabel="Logo"
|
+ accessibilityLabel="Logo"
|
||||||
|
|||||||
@@ -1,73 +1,7 @@
|
|||||||
diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx
|
diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx
|
||||||
index 6b8257b91..db64d6a69 100644
|
index 6b8257b91..e21b4900d 100644
|
||||||
--- a/src/screens/Settings/AboutSettings.tsx
|
--- a/src/screens/Settings/AboutSettings.tsx
|
||||||
+++ b/src/screens/Settings/AboutSettings.tsx
|
+++ b/src/screens/Settings/AboutSettings.tsx
|
||||||
@@ -1,40 +1,40 @@
|
|
||||||
-import {useMemo} from 'react'
|
|
||||||
-import {Platform} from 'react-native'
|
|
||||||
-import {setStringAsync} from 'expo-clipboard'
|
|
||||||
+import { useMemo } from 'react'
|
|
||||||
+import { Platform } from 'react-native'
|
|
||||||
+import { setStringAsync } from 'expo-clipboard'
|
|
||||||
import * as FileSystem from 'expo-file-system/legacy'
|
|
||||||
-import {Image} from 'expo-image'
|
|
||||||
-import {msg, Trans} from '@lingui/macro'
|
|
||||||
-import {useLingui} from '@lingui/react'
|
|
||||||
-import {type NativeStackScreenProps} from '@react-navigation/native-stack'
|
|
||||||
-import {useMutation} from '@tanstack/react-query'
|
|
||||||
-import {Statsig} from 'statsig-react-native-expo'
|
|
||||||
+import { Image } from 'expo-image'
|
|
||||||
+import { msg, Trans } from '@lingui/macro'
|
|
||||||
+import { useLingui } from '@lingui/react'
|
|
||||||
+import { type NativeStackScreenProps } from '@react-navigation/native-stack'
|
|
||||||
+import { useMutation } from '@tanstack/react-query'
|
|
||||||
+import { Statsig } from 'statsig-react-native-expo'
|
|
||||||
|
|
||||||
-import {STATUS_PAGE_URL} from '#/lib/constants'
|
|
||||||
-import {type CommonNavigatorParams} from '#/lib/routes/types'
|
|
||||||
-import {isAndroid, isIOS, isNative} from '#/platform/detection'
|
|
||||||
+import { STATUS_PAGE_URL } from '#/lib/constants'
|
|
||||||
+import { type CommonNavigatorParams } from '#/lib/routes/types'
|
|
||||||
+import { isAndroid, isIOS, isNative } from '#/platform/detection'
|
|
||||||
import * as Toast from '#/view/com/util/Toast'
|
|
||||||
import * as SettingsList from '#/screens/Settings/components/SettingsList'
|
|
||||||
-import {Atom_Stroke2_Corner0_Rounded as AtomIcon} from '#/components/icons/Atom'
|
|
||||||
-import {BroomSparkle_Stroke2_Corner2_Rounded as BroomSparkleIcon} from '#/components/icons/BroomSparkle'
|
|
||||||
-import {CodeLines_Stroke2_Corner2_Rounded as CodeLinesIcon} from '#/components/icons/CodeLines'
|
|
||||||
-import {Globe_Stroke2_Corner0_Rounded as GlobeIcon} from '#/components/icons/Globe'
|
|
||||||
-import {Newspaper_Stroke2_Corner2_Rounded as NewspaperIcon} from '#/components/icons/Newspaper'
|
|
||||||
-import {Wrench_Stroke2_Corner2_Rounded as WrenchIcon} from '#/components/icons/Wrench'
|
|
||||||
+import { Atom_Stroke2_Corner0_Rounded as AtomIcon } from '#/components/icons/Atom'
|
|
||||||
+import { BroomSparkle_Stroke2_Corner2_Rounded as BroomSparkleIcon } from '#/components/icons/BroomSparkle'
|
|
||||||
+import { CodeLines_Stroke2_Corner2_Rounded as CodeLinesIcon } from '#/components/icons/CodeLines'
|
|
||||||
+import { Globe_Stroke2_Corner0_Rounded as GlobeIcon } from '#/components/icons/Globe'
|
|
||||||
+import { Newspaper_Stroke2_Corner2_Rounded as NewspaperIcon } from '#/components/icons/Newspaper'
|
|
||||||
+import { Wrench_Stroke2_Corner2_Rounded as WrenchIcon } from '#/components/icons/Wrench'
|
|
||||||
import * as Layout from '#/components/Layout'
|
|
||||||
-import {Loader} from '#/components/Loader'
|
|
||||||
+import { Loader } from '#/components/Loader'
|
|
||||||
import * as env from '#/env'
|
|
||||||
-import {useDemoMode} from '#/storage/hooks/demo-mode'
|
|
||||||
-import {useDevMode} from '#/storage/hooks/dev-mode'
|
|
||||||
-import {OTAInfo} from './components/OTAInfo'
|
|
||||||
+import { useDemoMode } from '#/storage/hooks/demo-mode'
|
|
||||||
+import { useDevMode } from '#/storage/hooks/dev-mode'
|
|
||||||
+import { OTAInfo } from './components/OTAInfo'
|
|
||||||
|
|
||||||
type Props = NativeStackScreenProps<CommonNavigatorParams, 'AboutSettings'>
|
|
||||||
-export function AboutSettingsScreen({}: Props) {
|
|
||||||
- const {_, i18n} = useLingui()
|
|
||||||
+export function AboutSettingsScreen({ }: Props) {
|
|
||||||
+ const { _, i18n } = useLingui()
|
|
||||||
const [devModeEnabled, setDevModeEnabled] = useDevMode()
|
|
||||||
const [demoModeEnabled, setDemoModeEnabled] = useDemoMode()
|
|
||||||
const stableID = useMemo(() => Statsig.getStableID(), [])
|
|
||||||
|
|
||||||
- const {mutate: onClearImageCache, isPending: isClearingImageCache} =
|
|
||||||
+ const { mutate: onClearImageCache, isPending: isClearingImageCache } =
|
|
||||||
useMutation({
|
|
||||||
mutationFn: async () => {
|
|
||||||
const freeSpaceBefore = await FileSystem.getFreeDiskStorageAsync()
|
|
||||||
@@ -80,7 +80,7 @@ export function AboutSettingsScreen({}: Props) {
|
@@ -80,7 +80,7 @@ export function AboutSettingsScreen({}: Props) {
|
||||||
<Layout.Content>
|
<Layout.Content>
|
||||||
<SettingsList.Container>
|
<SettingsList.Container>
|
||||||
@@ -77,11 +11,19 @@ index 6b8257b91..db64d6a69 100644
|
|||||||
label={_(msg`Terms of Service`)}>
|
label={_(msg`Terms of Service`)}>
|
||||||
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||||
<SettingsList.ItemText>
|
<SettingsList.ItemText>
|
||||||
@@ -88,7 +88,15 @@ export function AboutSettingsScreen({}: Props) {
|
@@ -88,13 +88,21 @@ export function AboutSettingsScreen({}: Props) {
|
||||||
</SettingsList.ItemText>
|
</SettingsList.ItemText>
|
||||||
</SettingsList.LinkItem>
|
</SettingsList.LinkItem>
|
||||||
<SettingsList.LinkItem
|
<SettingsList.LinkItem
|
||||||
- to="https://bsky.social/about/support/privacy-policy"
|
- to="https://bsky.social/about/support/privacy-policy"
|
||||||
|
+ to="https://syu.is/about/support/privacy-policy"
|
||||||
|
label={_(msg`Privacy Policy`)}>
|
||||||
|
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||||
|
<SettingsList.ItemText>
|
||||||
|
<Trans>Privacy Policy</Trans>
|
||||||
|
</SettingsList.ItemText>
|
||||||
|
</SettingsList.LinkItem>
|
||||||
|
+ <SettingsList.LinkItem
|
||||||
+ to="/support/license"
|
+ to="/support/license"
|
||||||
+ label={_(msg`License`)}>
|
+ label={_(msg`License`)}>
|
||||||
+ <SettingsList.ItemIcon icon={NewspaperIcon} />
|
+ <SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||||
@@ -89,45 +31,6 @@ index 6b8257b91..db64d6a69 100644
|
|||||||
+ <Trans>License</Trans>
|
+ <Trans>License</Trans>
|
||||||
+ </SettingsList.ItemText>
|
+ </SettingsList.ItemText>
|
||||||
+ </SettingsList.LinkItem>
|
+ </SettingsList.LinkItem>
|
||||||
+ <SettingsList.LinkItem
|
<SettingsList.LinkItem
|
||||||
+ to="https://syu.is/about/support/privacy-policy"
|
to={STATUS_PAGE_URL}
|
||||||
label={_(msg`Privacy Policy`)}>
|
label={_(msg`Status Page`)}>
|
||||||
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
|
||||||
<SettingsList.ItemText>
|
|
||||||
@@ -131,17 +139,17 @@ export function AboutSettingsScreen({}: Props) {
|
|
||||||
Toast.show(
|
|
||||||
newDevModeEnabled
|
|
||||||
? _(
|
|
||||||
- msg({
|
|
||||||
- message: 'Developer mode enabled',
|
|
||||||
- context: 'toast',
|
|
||||||
- }),
|
|
||||||
- )
|
|
||||||
+ msg({
|
|
||||||
+ message: 'Developer mode enabled',
|
|
||||||
+ context: 'toast',
|
|
||||||
+ }),
|
|
||||||
+ )
|
|
||||||
: _(
|
|
||||||
- msg({
|
|
||||||
- message: 'Developer mode disabled',
|
|
||||||
- context: 'toast',
|
|
||||||
- }),
|
|
||||||
- ),
|
|
||||||
+ msg({
|
|
||||||
+ message: 'Developer mode disabled',
|
|
||||||
+ context: 'toast',
|
|
||||||
+ }),
|
|
||||||
+ ),
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
onPress={() => {
|
|
||||||
@@ -166,7 +174,7 @@ export function AboutSettingsScreen({}: Props) {
|
|
||||||
setDemoModeEnabled(newDemoModeEnabled)
|
|
||||||
Toast.show(
|
|
||||||
'Demo mode ' +
|
|
||||||
- (newDemoModeEnabled ? 'enabled' : 'disabled'),
|
|
||||||
+ (newDemoModeEnabled ? 'enabled' : 'disabled'),
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
label={
|
|
||||||
|
|||||||
@@ -1,21 +1,191 @@
|
|||||||
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx
|
diff --git a/src/view/com/posts/FollowingEmptyState.tsx b/src/view/com/posts/FollowingEmptyState.tsx
|
||||||
index e058e2883..e762b1418 100644
|
index 352cc1dc0..f477521af 100644
|
||||||
--- a/src/view/screens/Home.tsx
|
--- a/src/view/com/posts/FollowingEmptyState.tsx
|
||||||
+++ b/src/view/screens/Home.tsx
|
+++ b/src/view/com/posts/FollowingEmptyState.tsx
|
||||||
@@ -39,6 +39,16 @@ import {NoFeedsPinned} from '#/screens/Home/NoFeedsPinned'
|
@@ -1,37 +1,14 @@
|
||||||
import * as Layout from '#/components/Layout'
|
import React from 'react'
|
||||||
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
import {StyleSheet, View} from 'react-native'
|
||||||
|
-import {
|
||||||
|
- FontAwesomeIcon,
|
||||||
|
- type FontAwesomeIconStyle,
|
||||||
|
-} from '@fortawesome/react-native-fontawesome'
|
||||||
|
import {Trans} from '@lingui/macro'
|
||||||
|
-import {useNavigation} from '@react-navigation/native'
|
||||||
|
|
||||||
+const DEFAULT_PINNED_FEEDS = [{
|
import {usePalette} from '#/lib/hooks/usePalette'
|
||||||
+ feedDescriptor: 'following',
|
import {MagnifyingGlassIcon} from '#/lib/icons'
|
||||||
+ displayName: 'Following',
|
-import {type NavigationProp} from '#/lib/routes/types'
|
||||||
+ id: 'following',
|
import {s} from '#/lib/styles'
|
||||||
+ type: 'feed',
|
-import {isWeb} from '#/platform/detection'
|
||||||
+ savedFeed: undefined,
|
-import {Button} from '../util/forms/Button'
|
||||||
+ pinned: true,
|
import {Text} from '../util/text/Text'
|
||||||
+}]
|
|
||||||
+
|
export function FollowingEmptyState() {
|
||||||
+
|
const pal = usePalette('default')
|
||||||
type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home' | 'Start'>
|
- const palInverted = usePalette('inverted')
|
||||||
export function HomeScreen(props: Props) {
|
- const navigation = useNavigation<NavigationProp>()
|
||||||
const {setShowLoggedOut} = useLoggedOutViewControls()
|
-
|
||||||
|
- const onPressFindAccounts = React.useCallback(() => {
|
||||||
|
- if (isWeb) {
|
||||||
|
- navigation.navigate('Search', {})
|
||||||
|
- } else {
|
||||||
|
- navigation.navigate('SearchTab')
|
||||||
|
- navigation.popToTop()
|
||||||
|
- }
|
||||||
|
- }, [navigation])
|
||||||
|
-
|
||||||
|
- const onPressDiscoverFeeds = React.useCallback(() => {
|
||||||
|
- navigation.navigate('Feeds')
|
||||||
|
- }, [navigation])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View style={styles.container}>
|
||||||
|
@@ -45,36 +22,6 @@ export function FollowingEmptyState() {
|
||||||
|
happening.
|
||||||
|
</Trans>
|
||||||
|
</Text>
|
||||||
|
- <Button
|
||||||
|
- type="inverted"
|
||||||
|
- style={styles.emptyBtn}
|
||||||
|
- onPress={onPressFindAccounts}>
|
||||||
|
- <Text type="lg-medium" style={palInverted.text}>
|
||||||
|
- <Trans>Find accounts to follow</Trans>
|
||||||
|
- </Text>
|
||||||
|
- <FontAwesomeIcon
|
||||||
|
- icon="angle-right"
|
||||||
|
- style={palInverted.text as FontAwesomeIconStyle}
|
||||||
|
- size={14}
|
||||||
|
- />
|
||||||
|
- </Button>
|
||||||
|
-
|
||||||
|
- <Text type="xl-medium" style={[s.textCenter, pal.text, s.mt20]}>
|
||||||
|
- <Trans>You can also discover new Custom Feeds to follow.</Trans>
|
||||||
|
- </Text>
|
||||||
|
- <Button
|
||||||
|
- type="inverted"
|
||||||
|
- style={[styles.emptyBtn, s.mt10]}
|
||||||
|
- onPress={onPressDiscoverFeeds}>
|
||||||
|
- <Text type="lg-medium" style={palInverted.text}>
|
||||||
|
- <Trans>Discover new custom feeds</Trans>
|
||||||
|
- </Text>
|
||||||
|
- <FontAwesomeIcon
|
||||||
|
- icon="angle-right"
|
||||||
|
- style={palInverted.text as FontAwesomeIconStyle}
|
||||||
|
- size={14}
|
||||||
|
- />
|
||||||
|
- </Button>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
@@ -98,13 +45,4 @@ const styles = StyleSheet.create({
|
||||||
|
marginLeft: 'auto',
|
||||||
|
marginRight: 'auto',
|
||||||
|
},
|
||||||
|
- emptyBtn: {
|
||||||
|
- marginVertical: 20,
|
||||||
|
- flexDirection: 'row',
|
||||||
|
- alignItems: 'center',
|
||||||
|
- justifyContent: 'space-between',
|
||||||
|
- paddingVertical: 18,
|
||||||
|
- paddingHorizontal: 24,
|
||||||
|
- borderRadius: 30,
|
||||||
|
- },
|
||||||
|
})
|
||||||
|
diff --git a/src/view/com/posts/FollowingEndOfFeed.tsx b/src/view/com/posts/FollowingEndOfFeed.tsx
|
||||||
|
index e3c84d782..efb55d406 100644
|
||||||
|
--- a/src/view/com/posts/FollowingEndOfFeed.tsx
|
||||||
|
+++ b/src/view/com/posts/FollowingEndOfFeed.tsx
|
||||||
|
@@ -1,36 +1,13 @@
|
||||||
|
import React from 'react'
|
||||||
|
import {Dimensions, StyleSheet, View} from 'react-native'
|
||||||
|
-import {
|
||||||
|
- FontAwesomeIcon,
|
||||||
|
- type FontAwesomeIconStyle,
|
||||||
|
-} from '@fortawesome/react-native-fontawesome'
|
||||||
|
import {Trans} from '@lingui/macro'
|
||||||
|
-import {useNavigation} from '@react-navigation/native'
|
||||||
|
|
||||||
|
import {usePalette} from '#/lib/hooks/usePalette'
|
||||||
|
-import {type NavigationProp} from '#/lib/routes/types'
|
||||||
|
import {s} from '#/lib/styles'
|
||||||
|
-import {isWeb} from '#/platform/detection'
|
||||||
|
-import {Button} from '../util/forms/Button'
|
||||||
|
import {Text} from '../util/text/Text'
|
||||||
|
|
||||||
|
export function FollowingEndOfFeed() {
|
||||||
|
const pal = usePalette('default')
|
||||||
|
- const palInverted = usePalette('inverted')
|
||||||
|
- const navigation = useNavigation<NavigationProp>()
|
||||||
|
-
|
||||||
|
- const onPressFindAccounts = React.useCallback(() => {
|
||||||
|
- if (isWeb) {
|
||||||
|
- navigation.navigate('Search', {})
|
||||||
|
- } else {
|
||||||
|
- navigation.navigate('SearchTab')
|
||||||
|
- navigation.popToTop()
|
||||||
|
- }
|
||||||
|
- }, [navigation])
|
||||||
|
-
|
||||||
|
- const onPressDiscoverFeeds = React.useCallback(() => {
|
||||||
|
- navigation.navigate('Feeds')
|
||||||
|
- }, [navigation])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View
|
||||||
|
@@ -41,41 +18,8 @@ export function FollowingEndOfFeed() {
|
||||||
|
]}>
|
||||||
|
<View style={styles.inner}>
|
||||||
|
<Text type="xl-medium" style={[s.textCenter, pal.text]}>
|
||||||
|
- <Trans>
|
||||||
|
- You've reached the end of your feed! Find some more accounts to
|
||||||
|
- follow.
|
||||||
|
- </Trans>
|
||||||
|
- </Text>
|
||||||
|
- <Button
|
||||||
|
- type="inverted"
|
||||||
|
- style={styles.emptyBtn}
|
||||||
|
- onPress={onPressFindAccounts}>
|
||||||
|
- <Text type="lg-medium" style={palInverted.text}>
|
||||||
|
- <Trans>Find accounts to follow</Trans>
|
||||||
|
- </Text>
|
||||||
|
- <FontAwesomeIcon
|
||||||
|
- icon="angle-right"
|
||||||
|
- style={palInverted.text as FontAwesomeIconStyle}
|
||||||
|
- size={14}
|
||||||
|
- />
|
||||||
|
- </Button>
|
||||||
|
-
|
||||||
|
- <Text type="xl-medium" style={[s.textCenter, pal.text, s.mt20]}>
|
||||||
|
- <Trans>You can also discover new Custom Feeds to follow.</Trans>
|
||||||
|
+ <Trans>You've reached the end of your feed!</Trans>
|
||||||
|
</Text>
|
||||||
|
- <Button
|
||||||
|
- type="inverted"
|
||||||
|
- style={[styles.emptyBtn, s.mt10]}
|
||||||
|
- onPress={onPressDiscoverFeeds}>
|
||||||
|
- <Text type="lg-medium" style={palInverted.text}>
|
||||||
|
- <Trans>Discover new custom feeds</Trans>
|
||||||
|
- </Text>
|
||||||
|
- <FontAwesomeIcon
|
||||||
|
- icon="angle-right"
|
||||||
|
- style={palInverted.text as FontAwesomeIconStyle}
|
||||||
|
- size={14}
|
||||||
|
- />
|
||||||
|
- </Button>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
@@ -93,13 +37,4 @@ const styles = StyleSheet.create({
|
||||||
|
width: '100%',
|
||||||
|
maxWidth: 460,
|
||||||
|
},
|
||||||
|
- emptyBtn: {
|
||||||
|
- marginVertical: 20,
|
||||||
|
- flexDirection: 'row',
|
||||||
|
- alignItems: 'center',
|
||||||
|
- justifyContent: 'space-between',
|
||||||
|
- paddingVertical: 18,
|
||||||
|
- paddingHorizontal: 24,
|
||||||
|
- borderRadius: 30,
|
||||||
|
- },
|
||||||
|
})
|
||||||
|
|||||||
@@ -17,6 +17,9 @@
|
|||||||
- `011-social-app-ios-splash-license-footer.patch` - スプラッシュ画面の「What's up?」削除、© syui フッター追加
|
- `011-social-app-ios-splash-license-footer.patch` - スプラッシュ画面の「What's up?」削除、© syui フッター追加
|
||||||
- `012-social-app-ios-settings-about-help.patch` - About 設定のリンク修正(syu.is に変更)
|
- `012-social-app-ios-settings-about-help.patch` - About 設定のリンク修正(syu.is に変更)
|
||||||
- `013-social-app-ios-settings-remove-help.patch` - Settings から Help 項目を削除
|
- `013-social-app-ios-settings-remove-help.patch` - Settings から Help 項目を削除
|
||||||
|
- `019-social-app-ios-entitlements-plugin.patch` - iOS entitlements プラグイン設定
|
||||||
|
- `020-social-app-ios-bypass-age-assurance.patch` - 年齢確認を完全に無効化
|
||||||
|
- `021-social-app-ios-clean-feed.patch` - Following フィードのシンプル化(おすすめ・Discover削除)
|
||||||
- `License.tsx` - ライセンス表示画面(新規ファイル)
|
- `License.tsx` - ライセンス表示画面(新規ファイル)
|
||||||
|
|
||||||
## 使用方法
|
## 使用方法
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ PATCH_FILES_IOS=(
|
|||||||
"013-social-app-ios-settings-remove-help.patch"
|
"013-social-app-ios-settings-remove-help.patch"
|
||||||
"019-social-app-ios-entitlements-plugin.patch"
|
"019-social-app-ios-entitlements-plugin.patch"
|
||||||
"020-social-app-ios-bypass-age-assurance.patch"
|
"020-social-app-ios-bypass-age-assurance.patch"
|
||||||
|
"021-social-app-ios-clean-feed.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
function ios-env() {
|
function ios-env() {
|
||||||
|
|||||||
Reference in New Issue
Block a user