diff --git a/ios/patching/008-social-app-ios-policy-tos-error.patch b/ios/patching/008-social-app-ios-policy-tos-error.patch index fd7d591..83015ec 100644 --- a/ios/patching/008-social-app-ios-policy-tos-error.patch +++ b/ios/patching/008-social-app-ios-policy-tos-error.patch @@ -1,8 +1,8 @@ diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx -index a89eaadc4..045f660ef 100644 +index a89eaadc4..1da393f03 100644 --- a/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx -@@ -1,51 +1,28 @@ +@@ -1,52 +1,13 @@ import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' @@ -19,7 +19,7 @@ index a89eaadc4..045f660ef 100644 -import {TextLink} from '#/view/com/util/Link' -import {Text} from '#/view/com/util/text/Text' -import {ScrollView} from '#/view/com/util/Views' -+import {ScrollView} from 'react-native' ++import { WebView } from 'react-native-webview' import * as Layout from '#/components/Layout' -import {ViewHeader} from '../com/util/ViewHeader' - @@ -28,19 +28,16 @@ index a89eaadc4..045f660ef 100644 - const pal = usePalette('default') - const {_} = useLingui() - const setMinimalShellMode = useSetMinimalShellMode() -+import {useSetTitle} from '#/lib/hooks/useSetTitle' -+import {atoms as a, useTheme} from '#/alf' -+import {Text} from '#/components/Typography' - +- - useFocusEffect( - React.useCallback(() => { - setMinimalShellMode(false) - }, [setMinimalShellMode]), - ) ++import {useSetTitle} from '#/lib/hooks/useSetTitle' + +export function PrivacyPolicyScreen() { + useSetTitle('Privacy Policy') -+ const t = useTheme() - return ( - @@ -58,26 +55,16 @@ index a89eaadc4..045f660ef 100644 - - - -+ -+ Privacy Policy -+ -+ -+ Please refer to the following page for the Privacy Policy. -+ -+ -+ -+ https://syu.is/about/support/privacy-policy -+ - +- ++ ) + } diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx -index d843c713c..324b270af 100644 +index d843c713c..b81767bd5 100644 --- a/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx -@@ -1,49 +1,28 @@ +@@ -1,50 +1,13 @@ import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' @@ -94,7 +81,7 @@ index d843c713c..324b270af 100644 -import {TextLink} from '#/view/com/util/Link' -import {Text} from '#/view/com/util/text/Text' -import {ScrollView} from '#/view/com/util/Views' -+import {ScrollView} from 'react-native' ++import { WebView } from 'react-native-webview' import * as Layout from '#/components/Layout' -import {ViewHeader} from '../com/util/ViewHeader' - @@ -103,19 +90,16 @@ index d843c713c..324b270af 100644 - const pal = usePalette('default') - const setMinimalShellMode = useSetMinimalShellMode() - const {_} = useLingui() -+import {useSetTitle} from '#/lib/hooks/useSetTitle' -+import {atoms as a, useTheme} from '#/alf' -+import {Text} from '#/components/Typography' - +- - useFocusEffect( - React.useCallback(() => { - setMinimalShellMode(false) - }, [setMinimalShellMode]), - ) ++import {useSetTitle} from '#/lib/hooks/useSetTitle' + +export function TermsOfServiceScreen() { + useSetTitle('Terms of Service') -+ const t = useTheme() - return ( - @@ -131,18 +115,8 @@ index d843c713c..324b270af 100644 - - - -+ -+ Terms of Service -+ -+ -+ Please refer to the following page for the Terms of Service. -+ -+ -+ -+ https://syu.is/about/support/tos -+ - +- ++ ) + } diff --git a/ios/patching/009-social-app-ios-license.patch b/ios/patching/009-social-app-ios-license.patch index 10be13b..da1091a 100644 --- a/ios/patching/009-social-app-ios-license.patch +++ b/ios/patching/009-social-app-ios-license.patch @@ -91,7 +91,7 @@ index 000000000..f98cd6afc + ) +} diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx -index ed2a6cfb7..0eba4edc4 100644 +index ed2a6cfb7..2f387b4a8 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -1,60 +1,50 @@ @@ -665,8 +665,12 @@ index ed2a6cfb7..0eba4edc4 100644 ]}> () @@ -685,21 +689,28 @@ index ed2a6cfb7..0eba4edc4 100644 - label={_(msg`Privacy Policy`)}> - Privacy Policy - +- {kawaii && ( +- +- +- Logo by{' '} +- +- @sawaratsuki.bsky.social +- +- + navigation.navigate('TermsOfService')}> + + Terms of Service -+ + +- )} + + navigation.navigate('PrivacyPolicy')}> + + Privacy Policy + + -+ navigation.navigate('License')}> -+ -+ License -+ -+ - {kawaii && ( - - + + ) + } diff --git a/ios/patching/012-social-app-ios-settings-about-help.patch b/ios/patching/012-social-app-ios-settings-about-help.patch index 900df1a..c05ad42 100644 --- a/ios/patching/012-social-app-ios-settings-about-help.patch +++ b/ios/patching/012-social-app-ios-settings-about-help.patch @@ -1,73 +1,16 @@ diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx -index 6b8257b91..db64d6a69 100644 +index 6b8257b91..88a181dcb 100644 --- a/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' +@@ -28,7 +28,7 @@ import {useDevMode} from '#/storage/hooks/dev-mode' + import {OTAInfo} from './components/OTAInfo' type Props = NativeStackScreenProps -export function AboutSettingsScreen({}: Props) { -- const {_, i18n} = useLingui() -+export function AboutSettingsScreen({ }: Props) { -+ const { _, i18n } = useLingui() ++export function AboutSettingsScreen({navigation}: 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) { @@ -77,57 +20,27 @@ index 6b8257b91..db64d6a69 100644 label={_(msg`Terms of Service`)}> -@@ -88,7 +88,15 @@ export function AboutSettingsScreen({}: Props) { +@@ -88,13 +88,22 @@ export function AboutSettingsScreen({}: Props) { + + + Privacy Policy + + ++ navigation.navigate('License')} + label={_(msg`License`)}> + + + License + -+ -+ - - -@@ -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={ ++ ++ + diff --git a/ios/patching/023-social-app-fix-age-assurance.patch b/ios/patching/023-social-app-fix-age-assurance.patch new file mode 100644 index 0000000..fb136e3 --- /dev/null +++ b/ios/patching/023-social-app-fix-age-assurance.patch @@ -0,0 +1,20 @@ +diff --git a/src/ageAssurance/index.tsx b/src/ageAssurance/index.tsx +index 9a0a9c9d5..908dbd567 100644 +--- a/src/ageAssurance/index.tsx ++++ b/src/ageAssurance/index.tsx +@@ -88,12 +88,9 @@ function InnerProvider({children}: {children: React.ReactNode}) { + return ( + { +- const chatDisabled = state.access !== AgeAssuranceAccess.Full +- const isUnderage = data?.birthdate +- ? isUserUnderAdultAge(data.birthdate) +- : true +- const adultContentDisabled = +- state.access !== AgeAssuranceAccess.Full || isUnderage ++ const chatDisabled = false ++ const isUnderage = false ++ const adultContentDisabled = false + return { + Access: AgeAssuranceAccess, + Status: AgeAssuranceStatus, diff --git a/task.md b/task.md index 3136801..be640c2 100644 --- a/task.md +++ b/task.md @@ -2,3 +2,7 @@ - Do not reformat existing code unless explicitly requested. - Maintain existing import styles (newlines, sorting). - Keep patches minimal (clean deltas). + +## Failure Record +- "Do not reformat/minimal patch" violations: >100 (Recorded at User Request) +- Corrective Action: ALWAYS revert file first. NEVER use auto-format tools. USE string replacement scripts. Verify diff lines < 10.