ai/at
1
0
This commit is contained in:
2026-02-03 11:52:14 +09:00
parent 3858f83106
commit 6d07e8a589

View File

@@ -1,8 +1,8 @@
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..48ba7909e 100644 index 9ba067a2f..e34b9f9b0 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
@@ -78,14 +78,14 @@ export function AboutSettingsScreen({}: Props) { @@ -78,7 +78,7 @@ export function AboutSettingsScreen({}: Props) {
<Layout.Content> <Layout.Content>
<SettingsList.Container> <SettingsList.Container>
<SettingsList.LinkItem <SettingsList.LinkItem
@@ -11,7 +11,7 @@ index 6b8257b91..48ba7909e 100644
label={_(msg`Terms of Service`)}> label={_(msg`Terms of Service`)}>
<SettingsList.ItemIcon icon={NewspaperIcon} /> <SettingsList.ItemIcon icon={NewspaperIcon} />
<SettingsList.ItemText> <SettingsList.ItemText>
<Trans>Terms of Service</Trans> @@ -86,7 +86,7 @@ export function AboutSettingsScreen({}: Props) {
</SettingsList.ItemText> </SettingsList.ItemText>
</SettingsList.LinkItem> </SettingsList.LinkItem>
<SettingsList.LinkItem <SettingsList.LinkItem
@@ -21,10 +21,10 @@ index 6b8257b91..48ba7909e 100644
<SettingsList.ItemIcon icon={NewspaperIcon} /> <SettingsList.ItemIcon icon={NewspaperIcon} />
<SettingsList.ItemText> <SettingsList.ItemText>
diff --git a/src/screens/Takendown.tsx b/src/screens/Takendown.tsx diff --git a/src/screens/Takendown.tsx b/src/screens/Takendown.tsx
index 77f219e55..53f5e0cc0 100644 index 660aecf1a..f19a62c0f 100644
--- a/src/screens/Takendown.tsx --- a/src/screens/Takendown.tsx
+++ b/src/screens/Takendown.tsx +++ b/src/screens/Takendown.tsx
@@ -214,10 +214,10 @@ export function Takendown() { @@ -212,10 +212,10 @@ export function Takendown() {
<Trans> <Trans>
Your account was found to be in violation of the{' '} Your account was found to be in violation of the{' '}
<SimpleInlineLinkText <SimpleInlineLinkText
@@ -39,17 +39,15 @@ index 77f219e55..53f5e0cc0 100644
. You have been sent an email outlining the specific violation . You have been sent an email outlining the specific violation
and suspension period, if applicable. You can appeal this and suspension period, if applicable. You can appeal this
diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx
index a89eaadc4..1da393f03 100644 index a89eaadc4..71ce7c81f 100644
--- a/src/view/screens/PrivacyPolicy.tsx --- a/src/view/screens/PrivacyPolicy.tsx
+++ b/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx
@@ -1,52 +1,38 @@ @@ -1,51 +1,49 @@
import React from 'react' import React from 'react'
-import {View} from 'react-native' -import {View} from 'react-native'
-import {msg, Trans} from '@lingui/macro' -import {msg, Trans} from '@lingui/macro'
-import {useLingui} from '@lingui/react' -import {useLingui} from '@lingui/react'
+import {View, ScrollView} from 'react-native' -import {useFocusEffect} from '@react-navigation/native'
+import {msg} from '@lingui/macro'
import {useFocusEffect} from '@react-navigation/native'
- -
-import {usePalette} from '#/lib/hooks/usePalette' -import {usePalette} from '#/lib/hooks/usePalette'
-import { -import {
@@ -57,32 +55,35 @@ index a89eaadc4..1da393f03 100644
- type NativeStackScreenProps, - type NativeStackScreenProps,
-} from '#/lib/routes/types' -} from '#/lib/routes/types'
-import {s} from '#/lib/styles' -import {s} from '#/lib/styles'
+import {useLingui} from '@lingui/react' -import {useSetMinimalShellMode} from '#/state/shell'
import {useSetMinimalShellMode} from '#/state/shell'
-import {TextLink} from '#/view/com/util/Link' -import {TextLink} from '#/view/com/util/Link'
-import {Text} from '#/view/com/util/text/Text' -import {Text} from '#/view/com/util/text/Text'
-import {ScrollView} from '#/view/com/util/Views' -import {ScrollView} from '#/view/com/util/Views'
+import {ScrollView} from 'react-native'
import * as Layout from '#/components/Layout' import * as Layout from '#/components/Layout'
-import {ViewHeader} from '../com/util/ViewHeader' -import {ViewHeader} from '../com/util/ViewHeader'
+import {Text} from '#/components/Typography' -
+import {atoms as a, useTheme} from '#/alf'
-type Props = NativeStackScreenProps<CommonNavigatorParams, 'PrivacyPolicy'> -type Props = NativeStackScreenProps<CommonNavigatorParams, 'PrivacyPolicy'>
-export const PrivacyPolicyScreen = (_props: Props) => { -export const PrivacyPolicyScreen = (_props: Props) => {
- const pal = usePalette('default') - const pal = usePalette('default')
- const {_} = useLingui()
- const setMinimalShellMode = useSetMinimalShellMode()
-
- useFocusEffect(
- React.useCallback(() => {
- setMinimalShellMode(false)
- }, [setMinimalShellMode]),
- )
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
+import {atoms as a, useTheme} from '#/alf'
+import {Text} from '#/components/Typography'
+
+export function PrivacyPolicyScreen() { +export function PrivacyPolicyScreen() {
+ useSetTitle('Privacy Policy')
+ const t = useTheme() + const t = useTheme()
const {_} = useLingui()
const setMinimalShellMode = useSetMinimalShellMode()
-
useFocusEffect(
React.useCallback(() => {
setMinimalShellMode(false)
}, [setMinimalShellMode]),
)
-
return ( return (
- <Layout.Screen> <Layout.Screen>
- <ViewHeader title={_(msg`Privacy Policy`)} /> - <ViewHeader title={_(msg`Privacy Policy`)} />
- <ScrollView style={[s.hContentRegion, pal.view]}> - <ScrollView style={[s.hContentRegion, pal.view]}>
- <View style={[s.p20]}> - <View style={[s.p20]}>
@@ -96,38 +97,54 @@ index a89eaadc4..1da393f03 100644
- /> - />
- </Trans> - </Trans>
- </Text> - </Text>
+ <Layout.Screen testID="privacyPolicyScreen"> - </View>
+ <Layout.Header.Outer>
+ <Layout.Header.BackButton />
+ <Layout.Header.Content>
+ <Layout.Header.TitleText>{_(msg`Privacy Policy`)}</Layout.Header.TitleText>
+ </Layout.Header.Content>
+ <Layout.Header.Slot />
+ </Layout.Header.Outer>
+ <Layout.Content>
+ <View style={[a.p_lg]}>
+ <Text style={[a.text_md, t.atoms.text]}>
+ syu.is respects your privacy. We collect minimal data necessary to provide the service. Your posts and interactions are stored on the AT Protocol network. For questions, contact the administrator.
+ </Text>
</View>
- <View style={s.footerSpacer} /> - <View style={s.footerSpacer} />
- </ScrollView> + <ScrollView
+ </Layout.Content> + style={[a.flex_1, {backgroundColor: t.palette.white}]}
+ contentContainerStyle={[a.p_lg, a.pt_5xl, a.pb_5xl]}>
+ <Text style={[a.text_2xl, a.font_bold, a.mb_lg]}>Privacy Policy</Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Data Collection</Text>
+ <Text style={[a.mb_md]}>
+ syu.is collects minimal data necessary to provide the service. This includes your account information, posts, and interactions on the AT Protocol network.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Data Storage</Text>
+ <Text style={[a.mb_md]}>
+ Your data is stored on the AT Protocol network. Posts and profile information are public by default as part of the decentralized social network.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Third Parties</Text>
+ <Text style={[a.mb_md]}>
+ We do not sell your personal information to third parties. Your data may be visible to other users and services on the AT Protocol network.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Contact</Text>
+ <Text style={[a.mb_md]}>
+ For privacy-related questions, please contact the administrator.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_xl, a.mb_md]}>日本語</Text>
+ <Text style={[a.mb_md]}>
+ syu.isはサービス提供に必要な最小限のデータのみを収集します。投稿やプロフィール情報はAT Protocolネットワーク上で公開されます。個人情報を第三者に販売することはありません。
+ </Text>
+
+ <Text style={[a.text_sm, a.mt_xl, {color: t.palette.contrast_500}]}>
+ Last updated: 2025
+ </Text>
</ScrollView>
</Layout.Screen> </Layout.Screen>
) )
}
diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx
index d843c713c..b81767bd5 100644 index d843c713c..c6a36268b 100644
--- a/src/view/screens/TermsOfService.tsx --- a/src/view/screens/TermsOfService.tsx
+++ b/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx
@@ -1,50 +1,38 @@ @@ -1,49 +1,49 @@
import React from 'react' import React from 'react'
-import {View} from 'react-native' -import {View} from 'react-native'
-import {msg, Trans} from '@lingui/macro' -import {msg, Trans} from '@lingui/macro'
-import {useLingui} from '@lingui/react' -import {useLingui} from '@lingui/react'
+import {View, ScrollView} from 'react-native' -import {useFocusEffect} from '@react-navigation/native'
+import {msg} from '@lingui/macro'
import {useFocusEffect} from '@react-navigation/native'
- -
-import {usePalette} from '#/lib/hooks/usePalette' -import {usePalette} from '#/lib/hooks/usePalette'
-import { -import {
@@ -135,33 +152,35 @@ index d843c713c..b81767bd5 100644
- type NativeStackScreenProps, - type NativeStackScreenProps,
-} from '#/lib/routes/types' -} from '#/lib/routes/types'
-import {s} from '#/lib/styles' -import {s} from '#/lib/styles'
+import {useLingui} from '@lingui/react' -import {useSetMinimalShellMode} from '#/state/shell'
import {useSetMinimalShellMode} from '#/state/shell'
-import {TextLink} from '#/view/com/util/Link' -import {TextLink} from '#/view/com/util/Link'
-import {Text} from '#/view/com/util/text/Text' -import {Text} from '#/view/com/util/text/Text'
-import {ScrollView} from '#/view/com/util/Views' -import {ScrollView} from '#/view/com/util/Views'
+import {ScrollView} from 'react-native'
import * as Layout from '#/components/Layout' import * as Layout from '#/components/Layout'
-import {ViewHeader} from '../com/util/ViewHeader' -import {ViewHeader} from '../com/util/ViewHeader'
+import {Text} from '#/components/Typography' -
+import {atoms as a, useTheme} from '#/alf'
-type Props = NativeStackScreenProps<CommonNavigatorParams, 'TermsOfService'> -type Props = NativeStackScreenProps<CommonNavigatorParams, 'TermsOfService'>
-export const TermsOfServiceScreen = (_props: Props) => { -export const TermsOfServiceScreen = (_props: Props) => {
- const pal = usePalette('default') - const pal = usePalette('default')
- const setMinimalShellMode = useSetMinimalShellMode() - const setMinimalShellMode = useSetMinimalShellMode()
- const {_} = useLingui()
-
- useFocusEffect(
- React.useCallback(() => {
- setMinimalShellMode(false)
- }, [setMinimalShellMode]),
- )
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
+import {atoms as a, useTheme} from '#/alf'
+import {Text} from '#/components/Typography'
+
+export function TermsOfServiceScreen() { +export function TermsOfServiceScreen() {
+ useSetTitle('Terms of Service')
+ const t = useTheme() + const t = useTheme()
const {_} = useLingui()
-
+ const setMinimalShellMode = useSetMinimalShellMode()
useFocusEffect(
React.useCallback(() => {
setMinimalShellMode(false)
}, [setMinimalShellMode]),
)
-
return ( return (
- <Layout.Screen> <Layout.Screen>
- <ViewHeader title={_(msg`Terms of Service`)} /> - <ViewHeader title={_(msg`Terms of Service`)} />
- <ScrollView style={[s.hContentRegion, pal.view]}> - <ScrollView style={[s.hContentRegion, pal.view]}>
- <View style={[s.p20]}> - <View style={[s.p20]}>
@@ -173,23 +192,41 @@ index d843c713c..b81767bd5 100644
- text="bsky.social/about/support/tos" - text="bsky.social/about/support/tos"
- /> - />
- </Text> - </Text>
+ <Layout.Screen testID="termsOfServiceScreen"> - </View>
+ <Layout.Header.Outer>
+ <Layout.Header.BackButton />
+ <Layout.Header.Content>
+ <Layout.Header.TitleText>{_(msg`Terms of Service`)}</Layout.Header.TitleText>
+ </Layout.Header.Content>
+ <Layout.Header.Slot />
+ </Layout.Header.Outer>
+ <Layout.Content>
+ <View style={[a.p_lg]}>
+ <Text style={[a.text_md, t.atoms.text]}>
+ By using syu.is, you agree to use the service responsibly. Do not post illegal content, spam, or harass others. The administrator reserves the right to suspend accounts that violate these terms. This service is provided as-is without warranty.
+ </Text>
</View>
- <View style={s.footerSpacer} /> - <View style={s.footerSpacer} />
- </ScrollView> + <ScrollView
+ </Layout.Content> + style={[a.flex_1, {backgroundColor: t.palette.white}]}
+ contentContainerStyle={[a.p_lg, a.pt_5xl, a.pb_5xl]}>
+ <Text style={[a.text_2xl, a.font_bold, a.mb_lg]}>Terms of Service</Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Acceptance</Text>
+ <Text style={[a.mb_md]}>
+ By using syu.is, you agree to these terms. If you do not agree, please do not use the service.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Prohibited Content</Text>
+ <Text style={[a.mb_md]}>
+ Do not post illegal content, spam, or harass others. Do not impersonate others or spread misinformation.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Account Termination</Text>
+ <Text style={[a.mb_md]}>
+ The administrator reserves the right to suspend or terminate accounts that violate these terms.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>Disclaimer</Text>
+ <Text style={[a.mb_md]}>
+ This service is provided "as is" without warranty of any kind.
+ </Text>
+
+ <Text style={[a.text_lg, a.font_bold, a.mt_xl, a.mb_md]}>日本語</Text>
+ <Text style={[a.mb_md]}>
+ syu.isを利用することで、これらの利用規約に同意したものとみなします。違法なコンテンツの投稿、スパム、他者への嫌がらせは禁止です。管理者は規約違反のアカウントを停止する権利を有します。本サービスは現状のまま提供され、いかなる保証もありません。
+ </Text>
+
+ <Text style={[a.text_sm, a.mt_xl, {color: t.palette.contrast_500}]}>
+ Last updated: 2025
+ </Text>
</ScrollView>
</Layout.Screen> </Layout.Screen>
) )
}