fix social-app patch support page
This commit is contained in:
@@ -38,7 +38,7 @@ index 231447b4f..a44b3da05 100644
|
||||
-const HELP_DESK_LANG = 'en-us'
|
||||
-export const HELP_DESK_URL = `https://blueskyweb.zendesk.com/hc/${HELP_DESK_LANG}`
|
||||
+const HELP_DESK_LANG = 'ja-jp'
|
||||
+export const HELP_DESK_URL = 'https://syu.is/about/support/help'
|
||||
+export const HELP_DESK_URL = '/support/help'
|
||||
export const EMBED_SERVICE = 'https://embed.bsky.app'
|
||||
export const EMBED_SCRIPT = `${EMBED_SERVICE}/static/embed.js`
|
||||
export const BSKY_DOWNLOAD_URL = 'https://bsky.app/download'
|
||||
@@ -102,8 +102,8 @@ index 231447b4f..a44b3da05 100644
|
||||
export const webLinks = {
|
||||
- tos: `https://bsky.social/about/support/tos`,
|
||||
- privacy: `https://bsky.social/about/support/privacy-policy`,
|
||||
+ tos: `https://syu.is/about/support/tos`,
|
||||
+ privacy: `https://syu.is/about/support/privacy-policy`,
|
||||
+ tos: `/support/tos`,
|
||||
+ privacy: `/support/privacy-policy`,
|
||||
community: `https://bsky.social/about/support/community-guidelines`,
|
||||
communityDeprecated: `https://bsky.social/about/support/community-guidelines-deprecated`,
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@ index f325539c7..3e2c7b3eb 100644
|
||||
Support: '/support',
|
||||
- PrivacyPolicy: '/support/privacy',
|
||||
- TermsOfService: '/support/tos',
|
||||
+ PrivacyPolicy: 'https://syu.is/about/support/privacy-policy',
|
||||
+ TermsOfService: 'https://syu.is/about/support/tos',
|
||||
+ PrivacyPolicy: ['/support/privacy-policy', '/about/support/privacy-policy'],
|
||||
+ TermsOfService: ['/support/tos', '/about/support/tos'],
|
||||
CommunityGuidelines: '/support/community-guidelines',
|
||||
+ License: 'https://syu.is/about/support/license',
|
||||
+ AppInfo: 'https://syu.is/about/support/app',
|
||||
+ License: ['/support/license', '/about/support/license'],
|
||||
+ AppInfo: '/support/app',
|
||||
CopyrightPolicy: '/support/copyright',
|
||||
// hashtags
|
||||
Hashtag: '/hashtag/:tag',
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
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
|
||||
+++ b/src/screens/Settings/AboutSettings.tsx
|
||||
@@ -78,14 +78,14 @@ export function AboutSettingsScreen({}: Props) {
|
||||
@@ -78,7 +78,7 @@ export function AboutSettingsScreen({}: Props) {
|
||||
<Layout.Content>
|
||||
<SettingsList.Container>
|
||||
<SettingsList.LinkItem
|
||||
- to="https://bsky.social/about/support/tos"
|
||||
+ to="https://syu.is/about/support/tos"
|
||||
+ to="/support/tos"
|
||||
label={_(msg`Terms of Service`)}>
|
||||
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||
<SettingsList.ItemText>
|
||||
<Trans>Terms of Service</Trans>
|
||||
@@ -86,7 +86,7 @@ export function AboutSettingsScreen({}: Props) {
|
||||
</SettingsList.ItemText>
|
||||
</SettingsList.LinkItem>
|
||||
<SettingsList.LinkItem
|
||||
- to="https://bsky.social/about/support/privacy-policy"
|
||||
+ to="https://syu.is/about/support/privacy-policy"
|
||||
+ to="/support/privacy-policy"
|
||||
label={_(msg`Privacy Policy`)}>
|
||||
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||
<SettingsList.ItemText>
|
||||
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
|
||||
+++ b/src/screens/Takendown.tsx
|
||||
@@ -214,10 +214,10 @@ export function Takendown() {
|
||||
@@ -212,10 +212,10 @@ export function Takendown() {
|
||||
<Trans>
|
||||
Your account was found to be in violation of the{' '}
|
||||
<SimpleInlineLinkText
|
||||
- label={_(msg`Bluesky Social Terms of Service`)}
|
||||
- to="https://bsky.social/about/support/tos"
|
||||
+ label={_(msg`syu.is Terms of Service`)}
|
||||
+ to="https://syu.is/about/support/tos"
|
||||
+ to="/support/tos"
|
||||
style={[a.text_md, a.leading_snug]}>
|
||||
- Bluesky Social Terms of Service
|
||||
+ syu.is Terms of Service
|
||||
@@ -39,10 +39,10 @@ index 77f219e55..53f5e0cc0 100644
|
||||
. You have been sent an email outlining the specific violation
|
||||
and suspension period, if applicable. You can appeal this
|
||||
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
|
||||
+++ b/src/view/screens/PrivacyPolicy.tsx
|
||||
@@ -1,52 +1,13 @@
|
||||
@@ -1,51 +1,49 @@
|
||||
import React from 'react'
|
||||
-import {View} from 'react-native'
|
||||
-import {msg, Trans} from '@lingui/macro'
|
||||
@@ -59,7 +59,7 @@ index a89eaadc4..1da393f03 100644
|
||||
-import {TextLink} from '#/view/com/util/Link'
|
||||
-import {Text} from '#/view/com/util/text/Text'
|
||||
-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 {ViewHeader} from '../com/util/ViewHeader'
|
||||
-
|
||||
@@ -75,9 +75,13 @@ index a89eaadc4..1da393f03 100644
|
||||
- }, [setMinimalShellMode]),
|
||||
- )
|
||||
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
||||
|
||||
+import {atoms as a, useTheme} from '#/alf'
|
||||
+import {Text} from '#/components/Typography'
|
||||
+
|
||||
+export function PrivacyPolicyScreen() {
|
||||
+ useSetTitle('Privacy Policy')
|
||||
+ const t = useTheme()
|
||||
|
||||
return (
|
||||
<Layout.Screen>
|
||||
- <ViewHeader title={_(msg`Privacy Policy`)} />
|
||||
@@ -95,16 +99,47 @@ index a89eaadc4..1da393f03 100644
|
||||
- </Text>
|
||||
- </View>
|
||||
- <View style={s.footerSpacer} />
|
||||
- </ScrollView>
|
||||
+ <WebView source={{ uri: 'https://syu.is/about/support/privacy-policy' }} style={{ flex: 1 }} />
|
||||
+ <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]}>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>
|
||||
)
|
||||
}
|
||||
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
|
||||
+++ b/src/view/screens/TermsOfService.tsx
|
||||
@@ -1,50 +1,13 @@
|
||||
@@ -1,49 +1,49 @@
|
||||
import React from 'react'
|
||||
-import {View} from 'react-native'
|
||||
-import {msg, Trans} from '@lingui/macro'
|
||||
@@ -121,7 +156,7 @@ index d843c713c..b81767bd5 100644
|
||||
-import {TextLink} from '#/view/com/util/Link'
|
||||
-import {Text} from '#/view/com/util/text/Text'
|
||||
-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 {ViewHeader} from '../com/util/ViewHeader'
|
||||
-
|
||||
@@ -137,9 +172,13 @@ index d843c713c..b81767bd5 100644
|
||||
- }, [setMinimalShellMode]),
|
||||
- )
|
||||
+import {useSetTitle} from '#/lib/hooks/useSetTitle'
|
||||
|
||||
+import {atoms as a, useTheme} from '#/alf'
|
||||
+import {Text} from '#/components/Typography'
|
||||
+
|
||||
+export function TermsOfServiceScreen() {
|
||||
+ useSetTitle('Terms of Service')
|
||||
+ const t = useTheme()
|
||||
|
||||
return (
|
||||
<Layout.Screen>
|
||||
- <ViewHeader title={_(msg`Terms of Service`)} />
|
||||
@@ -155,8 +194,39 @@ index d843c713c..b81767bd5 100644
|
||||
- </Text>
|
||||
- </View>
|
||||
- <View style={s.footerSpacer} />
|
||||
- </ScrollView>
|
||||
+ <WebView source={{ uri: 'https://syu.is/about/support/tos' }} style={{ flex: 1 }} />
|
||||
+ <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]}>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>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx
|
||||
index f76147ccf..36b4d7de1 100644
|
||||
index 42a5fe417..8e7963512 100644
|
||||
--- a/src/view/shell/Drawer.tsx
|
||||
+++ b/src/view/shell/Drawer.tsx
|
||||
@@ -292,17 +292,11 @@ let DrawerContent = ({}: React.PropsWithoutRef<{}>): React.ReactNode => {
|
||||
@@ -294,17 +294,11 @@ let DrawerContent = ({}: React.PropsWithoutRef<{}>): React.ReactNode => {
|
||||
<>
|
||||
<SearchMenuItem isActive={isAtSearch} onPress={onPressSearch} />
|
||||
<HomeMenuItem isActive={isAtHome} onPress={onPressHome} />
|
||||
@@ -20,7 +20,7 @@ index f76147ccf..36b4d7de1 100644
|
||||
<ProfileMenuItem
|
||||
isActive={isAtMyProfile}
|
||||
onPress={onPressProfile}
|
||||
@@ -357,17 +351,7 @@ let DrawerFooter = ({
|
||||
@@ -359,17 +353,7 @@ let DrawerFooter = ({
|
||||
),
|
||||
},
|
||||
]}>
|
||||
@@ -39,18 +39,27 @@ index f76147ccf..36b4d7de1 100644
|
||||
<Button
|
||||
label={_(msg`Get help`)}
|
||||
size="small"
|
||||
@@ -695,12 +679,12 @@ function ExtraLinks() {
|
||||
@@ -697,15 +681,21 @@ function ExtraLinks() {
|
||||
<InlineLinkText
|
||||
style={[a.text_md]}
|
||||
label={_(msg`Terms of Service`)}
|
||||
- to="https://bsky.social/about/support/tos">
|
||||
+ to="https://syu.is/about/support/tos">
|
||||
+ to="/support/tos">
|
||||
<Trans>Terms of Service</Trans>
|
||||
</InlineLinkText>
|
||||
<InlineLinkText
|
||||
style={[a.text_md]}
|
||||
- to="https://bsky.social/about/support/privacy-policy"
|
||||
+ to="https://syu.is/about/support/privacy-policy"
|
||||
+ to="/support/privacy-policy"
|
||||
label={_(msg`Privacy Policy`)}>
|
||||
<Trans>Privacy Policy</Trans>
|
||||
</InlineLinkText>
|
||||
+ <InlineLinkText
|
||||
+ style={[a.text_md]}
|
||||
+ to="/support/license"
|
||||
+ label="License">
|
||||
+ License
|
||||
+ </InlineLinkText>
|
||||
{kawaii && (
|
||||
<Text style={t.atoms.text_contrast_medium}>
|
||||
<Trans>
|
||||
|
||||
@@ -20,13 +20,13 @@ index 8365057e8..59c8506a2 100644
|
||||
terms: {
|
||||
overridePresentation: false,
|
||||
- to: `https://bsky.social/about/support/tos`,
|
||||
+ to: `https://syu.is/about/support/tos`,
|
||||
+ to: `/support/tos`,
|
||||
label: _(msg`Terms of Service`),
|
||||
},
|
||||
privacy: {
|
||||
overridePresentation: false,
|
||||
- to: `https://bsky.social/about/support/privacy-policy`,
|
||||
+ to: `https://syu.is/about/support/privacy-policy`,
|
||||
+ to: `/support/privacy-policy`,
|
||||
label: _(msg`Privacy Policy`),
|
||||
},
|
||||
copyright: {
|
||||
|
||||
@@ -1,41 +1,10 @@
|
||||
diff --git a/src/view/com/auth/SplashScreen.tsx b/src/view/com/auth/SplashScreen.tsx
|
||||
index 3442d1bdf..8ed9e3d0d 100644
|
||||
--- a/src/view/com/auth/SplashScreen.tsx
|
||||
+++ b/src/view/com/auth/SplashScreen.tsx
|
||||
@@ -1,5 +1,6 @@
|
||||
import {useMemo} from 'react'
|
||||
-import {Image as RNImage, View} from 'react-native'
|
||||
+import {Image as RNImage, View, Pressable, Linking} from 'react-native'
|
||||
+import {Text} from '#/components/Typography'
|
||||
import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
|
||||
import {Image} from 'expo-image'
|
||||
import {msg, Trans} from '@lingui/macro'
|
||||
@@ -124,6 +125,18 @@ export const SplashScreen = ({
|
||||
</ButtonText>
|
||||
</Button>
|
||||
</View>
|
||||
+ <View style={[a.pb_sm, a.justify_center, a.align_center]}>
|
||||
+ <Pressable onPress={() => Linking.openURL('https://syu.is/about/support/license')}>
|
||||
+ <Text
|
||||
+ style={[
|
||||
+ a.text_xs,
|
||||
+ t.atoms.text_contrast_low,
|
||||
+ {textDecorationLine: 'underline'},
|
||||
+ ]}>
|
||||
+ License
|
||||
+ </Text>
|
||||
+ </Pressable>
|
||||
+ </View>
|
||||
</Animated.View>
|
||||
</>
|
||||
)
|
||||
diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx
|
||||
index 22dd23d7f..7ceb3800e 100644
|
||||
index d9185d778..504f521a4 100644
|
||||
--- a/src/view/com/auth/SplashScreen.web.tsx
|
||||
+++ b/src/view/com/auth/SplashScreen.web.tsx
|
||||
@@ -94,14 +94,6 @@ export const SplashScreen = ({
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
)}
|
||||
|
||||
- <Text
|
||||
- style={[
|
||||
|
||||
@@ -1,51 +1,17 @@
|
||||
diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go
|
||||
index 790f211ee..ec05a8bcd 100644
|
||||
--- a/bskyweb/cmd/bskyweb/server.go
|
||||
+++ b/bskyweb/cmd/bskyweb/server.go
|
||||
@@ -317,6 +317,12 @@ func serve(cctx *cli.Context) error {
|
||||
@@ -317,6 +317,14 @@ func serve(cctx *cli.Context) error {
|
||||
e.GET("/support/tos", server.WebGeneric)
|
||||
e.GET("/support/community-guidelines", server.WebGeneric)
|
||||
e.GET("/support/copyright", server.WebGeneric)
|
||||
+ // about/support pages (syu.is specific)
|
||||
+ e.GET("/about/support/tos", server.WebAboutTOS)
|
||||
+ e.GET("/about/support/privacy-policy", server.WebAboutPrivacy)
|
||||
+ e.GET("/about/support/help", server.WebAboutHelp)
|
||||
+ e.GET("/about/support/license", server.WebAboutLicense)
|
||||
+ e.GET("/about/support/app", server.WebAboutApp)
|
||||
+ e.GET("/support/privacy-policy", server.WebGeneric)
|
||||
+ e.GET("/support/license", server.WebGeneric)
|
||||
+ e.GET("/support/app", server.WebGeneric)
|
||||
+ e.GET("/support/help", server.WebGeneric)
|
||||
+ // /about/support/ paths (for web compatibility)
|
||||
+ e.GET("/about/support/tos", server.WebGeneric)
|
||||
+ e.GET("/about/support/privacy-policy", server.WebGeneric)
|
||||
+ e.GET("/about/support/license", server.WebGeneric)
|
||||
e.GET("/intent/compose", server.WebGeneric)
|
||||
e.GET("/intent/verify-email", server.WebGeneric)
|
||||
e.GET("/intent/age-assurance", server.WebGeneric)
|
||||
@@ -825,3 +831,33 @@ func (srv *Server) serveSitemapRequest(c echo.Context, url, sitemapType string)
|
||||
|
||||
return nil
|
||||
}
|
||||
+
|
||||
+// Handler for About TOS page (syu.is specific)
|
||||
+func (srv *Server) WebAboutTOS(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-tos.html", data)
|
||||
+}
|
||||
+
|
||||
+// Handler for About Privacy Policy page (syu.is specific)
|
||||
+func (srv *Server) WebAboutPrivacy(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-privacy.html", data)
|
||||
+}
|
||||
+
|
||||
+// Handler for About Help page (syu.is specific)
|
||||
+func (srv *Server) WebAboutHelp(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-help.html", data)
|
||||
+}
|
||||
+
|
||||
+// Handler for About License page (syu.is specific)
|
||||
+func (srv *Server) WebAboutLicense(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-license.html", data)
|
||||
+}
|
||||
+
|
||||
+// Handler for About App page (syu.is specific)
|
||||
+func (srv *Server) WebAboutApp(c echo.Context) error {
|
||||
+ data := srv.NewTemplateContext()
|
||||
+ return c.Render(http.StatusOK, "about-app.html", data)
|
||||
+}
|
||||
|
||||
Reference in New Issue
Block a user