test gemini
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
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..045f660ef 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,13 @@
|
@@ -1,51 +1,28 @@
|
||||||
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'
|
||||||
@@ -19,7 +19,7 @@ index a89eaadc4..1da393f03 100644
|
|||||||
-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 { WebView } from 'react-native-webview'
|
+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'
|
||||||
-
|
-
|
||||||
@@ -28,16 +28,19 @@ index a89eaadc4..1da393f03 100644
|
|||||||
- const pal = usePalette('default')
|
- const pal = usePalette('default')
|
||||||
- const {_} = useLingui()
|
- const {_} = useLingui()
|
||||||
- const setMinimalShellMode = useSetMinimalShellMode()
|
- const setMinimalShellMode = useSetMinimalShellMode()
|
||||||
-
|
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
||||||
|
+import {atoms as a, useTheme} from '#/alf'
|
||||||
|
+import {Text} from '#/components/Typography'
|
||||||
|
|
||||||
- useFocusEffect(
|
- useFocusEffect(
|
||||||
- React.useCallback(() => {
|
- React.useCallback(() => {
|
||||||
- setMinimalShellMode(false)
|
- setMinimalShellMode(false)
|
||||||
- }, [setMinimalShellMode]),
|
- }, [setMinimalShellMode]),
|
||||||
- )
|
- )
|
||||||
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
|
||||||
|
|
||||||
+export function PrivacyPolicyScreen() {
|
+export function PrivacyPolicyScreen() {
|
||||||
+ useSetTitle('Privacy Policy')
|
+ useSetTitle('Privacy Policy')
|
||||||
|
+ const t = useTheme()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout.Screen>
|
<Layout.Screen>
|
||||||
- <ViewHeader title={_(msg`Privacy Policy`)} />
|
- <ViewHeader title={_(msg`Privacy Policy`)} />
|
||||||
@@ -55,16 +58,26 @@ index a89eaadc4..1da393f03 100644
|
|||||||
- </Text>
|
- </Text>
|
||||||
- </View>
|
- </View>
|
||||||
- <View style={s.footerSpacer} />
|
- <View style={s.footerSpacer} />
|
||||||
- </ScrollView>
|
+ <ScrollView
|
||||||
+ <WebView source={{ uri: 'https://syu.is/about/support/privacy-policy' }} style={{ flex: 1 }} />
|
+ 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.mb_md]}>
|
||||||
|
+ Please refer to the following page for the Privacy Policy.
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.text_md, a.mb_md, {color: t.palette.primary_500}]}>
|
||||||
|
+ https://syu.is/about/support/privacy-policy
|
||||||
|
+ </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..324b270af 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,13 @@
|
@@ -1,49 +1,28 @@
|
||||||
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'
|
||||||
@@ -81,7 +94,7 @@ index d843c713c..b81767bd5 100644
|
|||||||
-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 { WebView } from 'react-native-webview'
|
+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'
|
||||||
-
|
-
|
||||||
@@ -90,16 +103,19 @@ index d843c713c..b81767bd5 100644
|
|||||||
- const pal = usePalette('default')
|
- const pal = usePalette('default')
|
||||||
- const setMinimalShellMode = useSetMinimalShellMode()
|
- const setMinimalShellMode = useSetMinimalShellMode()
|
||||||
- const {_} = useLingui()
|
- const {_} = useLingui()
|
||||||
-
|
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
||||||
|
+import {atoms as a, useTheme} from '#/alf'
|
||||||
|
+import {Text} from '#/components/Typography'
|
||||||
|
|
||||||
- useFocusEffect(
|
- useFocusEffect(
|
||||||
- React.useCallback(() => {
|
- React.useCallback(() => {
|
||||||
- setMinimalShellMode(false)
|
- setMinimalShellMode(false)
|
||||||
- }, [setMinimalShellMode]),
|
- }, [setMinimalShellMode]),
|
||||||
- )
|
- )
|
||||||
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
|
||||||
|
|
||||||
+export function TermsOfServiceScreen() {
|
+export function TermsOfServiceScreen() {
|
||||||
+ useSetTitle('Terms of Service')
|
+ useSetTitle('Terms of Service')
|
||||||
|
+ const t = useTheme()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout.Screen>
|
<Layout.Screen>
|
||||||
- <ViewHeader title={_(msg`Terms of Service`)} />
|
- <ViewHeader title={_(msg`Terms of Service`)} />
|
||||||
@@ -115,8 +131,18 @@ index d843c713c..b81767bd5 100644
|
|||||||
- </Text>
|
- </Text>
|
||||||
- </View>
|
- </View>
|
||||||
- <View style={s.footerSpacer} />
|
- <View style={s.footerSpacer} />
|
||||||
- </ScrollView>
|
+ <ScrollView
|
||||||
+ <WebView source={{ uri: 'https://syu.is/about/support/tos' }} style={{ flex: 1 }} />
|
+ 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.mb_md]}>
|
||||||
|
+ Please refer to the following page for the Terms of Service.
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.text_md, a.mb_md, {color: t.palette.primary_500}]}>
|
||||||
|
+ https://syu.is/about/support/tos
|
||||||
|
+ </Text>
|
||||||
|
</ScrollView>
|
||||||
</Layout.Screen>
|
</Layout.Screen>
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|||||||
@@ -34,15 +34,144 @@ index c315a8341..9b2f50a83 100644
|
|||||||
CommunityGuidelines: undefined
|
CommunityGuidelines: undefined
|
||||||
CopyrightPolicy: undefined
|
CopyrightPolicy: undefined
|
||||||
LanguageSettings: undefined
|
LanguageSettings: undefined
|
||||||
|
diff --git a/src/view/screens/License.tsx b/src/view/screens/License.tsx
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..d35fe20ea
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/view/screens/License.tsx
|
||||||
|
@@ -0,0 +1,86 @@
|
||||||
|
+import React from 'react'
|
||||||
|
+import {ScrollView} from 'react-native'
|
||||||
|
+import * as Layout from '#/components/Layout'
|
||||||
|
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
||||||
|
+import {atoms as a, useTheme} from '#/alf'
|
||||||
|
+import {Text} from '#/components/Typography'
|
||||||
|
+
|
||||||
|
+export function LicenseScreen() {
|
||||||
|
+ useSetTitle('License')
|
||||||
|
+ const t = useTheme()
|
||||||
|
+
|
||||||
|
+ return (
|
||||||
|
+ <Layout.Screen>
|
||||||
|
+ <ScrollView
|
||||||
|
+ 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]}>License</Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ This application is based on Bluesky Social App.
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.text_md, a.mb_md, {color: t.palette.primary_500}]}>
|
||||||
|
+ https://github.com/bluesky-social/social-app
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.text_lg, a.font_bold, a.mt_lg, a.mb_md]}>MIT License</Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md, {fontFamily: 'monospace'}]}>
|
||||||
|
+ Copyright (c) 2022-2025 Bluesky PBC
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
+ of this software and associated documentation files (the "Software"), to deal
|
||||||
|
+ in the Software without restriction, including without limitation the rights
|
||||||
|
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
+ copies of the Software, and to permit persons to whom the Software is
|
||||||
|
+ furnished to do so, subject to the following conditions:
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ The above copyright notice and this permission notice shall be included in all
|
||||||
|
+ copies or substantial portions of the Software.
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
+ SOFTWARE.
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.text_lg, a.font_bold, a.mt_xl, a.mb_md]}>日本語訳(参考)</Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ 本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」)のコピーを取得する
|
||||||
|
+ すべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、
|
||||||
|
+ ソフトウェアのコピーを使用、複製、変更、結合、公開、配布、サブライセンス、
|
||||||
|
+ および/または販売する権利、ならびにソフトウェアを提供する相手にそうした行為を
|
||||||
|
+ 許可する権利が含まれますが、これらに限定されません。
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ 上記の著作権表示および本許諾表示を、ソフトウェアのすべてのコピーまたは
|
||||||
|
+ 重要な部分に記載するものとします。
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.mb_md]}>
|
||||||
|
+ ソフトウェアは「現状のまま」で提供され、明示黙示を問わず、商品性、特定目的への
|
||||||
|
+ 適合性、および権利非侵害についての保証を含む、いかなる種類の保証もなされません。
|
||||||
|
+ いかなる場合においても、作者または著作権者は、契約行為、不法行為、またはそれ以外で
|
||||||
|
+ あろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用または
|
||||||
|
+ その他の扱いによって生じる一切の請求、損害、その他の義務について責任を負わないものとします。
|
||||||
|
+ </Text>
|
||||||
|
+
|
||||||
|
+ <Text style={[a.text_sm, a.mt_xl, {color: t.palette.contrast_500}]}>
|
||||||
|
+ Original License: https://github.com/bluesky-social/social-app/blob/main/LICENSE
|
||||||
|
+ </Text>
|
||||||
|
+ </ScrollView>
|
||||||
|
+ </Layout.Screen>
|
||||||
|
+ )
|
||||||
|
+}
|
||||||
diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx
|
diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx
|
||||||
index ed2a6cfb7..0b429e6f3 100644
|
index ed2a6cfb7..f2192f20e 100644
|
||||||
--- a/src/view/shell/Drawer.tsx
|
--- a/src/view/shell/Drawer.tsx
|
||||||
+++ b/src/view/shell/Drawer.tsx
|
+++ b/src/view/shell/Drawer.tsx
|
||||||
@@ -460,6 +460,11 @@ function ExtraLinks() {
|
@@ -689,34 +689,25 @@ function ExtraLinks() {
|
||||||
<Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
const {_} = useLingui()
|
||||||
<Trans>Privacy Policy</Trans>
|
const t = useTheme()
|
||||||
|
const kawaii = useKawaiiMode()
|
||||||
|
+ const navigation = useNavigation<NavigationProp>()
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View style={[a.flex_col, a.gap_md, a.flex_wrap]}>
|
||||||
|
- <InlineLinkText
|
||||||
|
- style={[a.text_md]}
|
||||||
|
- label={_(msg`Terms of Service`)}
|
||||||
|
- to="https://bsky.social/about/support/tos">
|
||||||
|
- <Trans>Terms of Service</Trans>
|
||||||
|
- </InlineLinkText>
|
||||||
|
- <InlineLinkText
|
||||||
|
- style={[a.text_md]}
|
||||||
|
- to="https://bsky.social/about/support/privacy-policy"
|
||||||
|
- label={_(msg`Privacy Policy`)}>
|
||||||
|
- <Trans>Privacy Policy</Trans>
|
||||||
|
- </InlineLinkText>
|
||||||
|
- {kawaii && (
|
||||||
|
- <Text style={t.atoms.text_contrast_medium}>
|
||||||
|
- <Trans>
|
||||||
|
- Logo by{' '}
|
||||||
|
- <InlineLinkText
|
||||||
|
- style={[a.text_md]}
|
||||||
|
- to="/profile/sawaratsuki.bsky.social"
|
||||||
|
- label="@sawaratsuki.bsky.social">
|
||||||
|
- @sawaratsuki.bsky.social
|
||||||
|
- </InlineLinkText>
|
||||||
|
- </Trans>
|
||||||
|
+ <TouchableOpacity onPress={() => navigation.navigate('TermsOfService')}>
|
||||||
|
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||||
|
+ <Trans>Terms of Service</Trans>
|
||||||
</Text>
|
</Text>
|
||||||
</TouchableOpacity>
|
- )}
|
||||||
|
+ </TouchableOpacity>
|
||||||
|
+ <TouchableOpacity onPress={() => navigation.navigate('PrivacyPolicy')}>
|
||||||
|
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||||
|
+ <Trans>Privacy Policy</Trans>
|
||||||
|
+ </Text>
|
||||||
|
+ </TouchableOpacity>
|
||||||
+ <TouchableOpacity onPress={() => navigation.navigate('License')}>
|
+ <TouchableOpacity onPress={() => navigation.navigate('License')}>
|
||||||
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
+ <Text style={[a.text_md, t.atoms.text_contrast_medium]}>
|
||||||
+ <Trans>License</Trans>
|
+ <Trans>License</Trans>
|
||||||
|
|||||||
@@ -1,21 +1,60 @@
|
|||||||
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..06987be51 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'
|
@@ -45,36 +45,6 @@ export function FollowingEmptyState() {
|
||||||
import * as Layout from '#/components/Layout'
|
happening.
|
||||||
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
</Trans>
|
||||||
|
</Text>
|
||||||
+const DEFAULT_PINNED_FEEDS = [{
|
- <Button
|
||||||
+ feedDescriptor: 'following',
|
- type="inverted"
|
||||||
+ displayName: 'Following',
|
- style={styles.emptyBtn}
|
||||||
+ id: 'following',
|
- onPress={onPressFindAccounts}>
|
||||||
+ type: 'feed',
|
- <Text type="lg-medium" style={palInverted.text}>
|
||||||
+ savedFeed: undefined,
|
- <Trans>Find accounts to follow</Trans>
|
||||||
+ pinned: true,
|
- </Text>
|
||||||
+}]
|
- <FontAwesomeIcon
|
||||||
+
|
- icon="angle-right"
|
||||||
+
|
- style={palInverted.text as FontAwesomeIconStyle}
|
||||||
type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home' | 'Start'>
|
- size={14}
|
||||||
export function HomeScreen(props: Props) {
|
- />
|
||||||
const {setShowLoggedOut} = useLoggedOutViewControls()
|
- </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>
|
||||||
|
)
|
||||||
|
diff --git a/src/view/com/posts/PostFeed.tsx b/src/view/com/posts/PostFeed.tsx
|
||||||
|
index 4f25468c9..c35ad1c1a 100644
|
||||||
|
--- a/src/view/com/posts/PostFeed.tsx
|
||||||
|
+++ b/src/view/com/posts/PostFeed.tsx
|
||||||
|
@@ -543,14 +543,6 @@ let PostFeed = ({
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else if (feedKind === 'following') {
|
||||||
|
- if (sliceIndex === 0) {
|
||||||
|
- // Show composer prompt for Following feed
|
||||||
|
- if (hasSession && gate('show_composer_prompt')) {
|
||||||
|
- arr.push({
|
||||||
|
- type: 'composerPrompt',
|
||||||
|
- key: 'composerPrompt-' + sliceIndex,
|
||||||
|
- })
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
} else if (feedKind === 'profile') {
|
||||||
|
if (sliceIndex === 5) {
|
||||||
|
|||||||
Reference in New Issue
Block a user