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'
|
-const HELP_DESK_LANG = 'en-us'
|
||||||
-export const HELP_DESK_URL = `https://blueskyweb.zendesk.com/hc/${HELP_DESK_LANG}`
|
-export const HELP_DESK_URL = `https://blueskyweb.zendesk.com/hc/${HELP_DESK_LANG}`
|
||||||
+const HELP_DESK_LANG = 'ja-jp'
|
+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_SERVICE = 'https://embed.bsky.app'
|
||||||
export const EMBED_SCRIPT = `${EMBED_SERVICE}/static/embed.js`
|
export const EMBED_SCRIPT = `${EMBED_SERVICE}/static/embed.js`
|
||||||
export const BSKY_DOWNLOAD_URL = 'https://bsky.app/download'
|
export const BSKY_DOWNLOAD_URL = 'https://bsky.app/download'
|
||||||
@@ -102,8 +102,8 @@ index 231447b4f..a44b3da05 100644
|
|||||||
export const webLinks = {
|
export const webLinks = {
|
||||||
- tos: `https://bsky.social/about/support/tos`,
|
- tos: `https://bsky.social/about/support/tos`,
|
||||||
- privacy: `https://bsky.social/about/support/privacy-policy`,
|
- privacy: `https://bsky.social/about/support/privacy-policy`,
|
||||||
+ tos: `https://syu.is/about/support/tos`,
|
+ tos: `/support/tos`,
|
||||||
+ privacy: `https://syu.is/about/support/privacy-policy`,
|
+ privacy: `/support/privacy-policy`,
|
||||||
community: `https://bsky.social/about/support/community-guidelines`,
|
community: `https://bsky.social/about/support/community-guidelines`,
|
||||||
communityDeprecated: `https://bsky.social/about/support/community-guidelines-deprecated`,
|
communityDeprecated: `https://bsky.social/about/support/community-guidelines-deprecated`,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ index 2c4d6fa41..b69e2b18d 100644
|
|||||||
-prefetchAgeAssuranceConfig()
|
-prefetchAgeAssuranceConfig()
|
||||||
+// // // prefetchAgeAssuranceConfig()
|
+// // // prefetchAgeAssuranceConfig()
|
||||||
prefetchLiveEvents()
|
prefetchLiveEvents()
|
||||||
|
|
||||||
function InnerApp() {
|
function InnerApp() {
|
||||||
diff --git a/src/routes.ts b/src/routes.ts
|
diff --git a/src/routes.ts b/src/routes.ts
|
||||||
index f325539c7..3e2c7b3eb 100644
|
index f325539c7..3e2c7b3eb 100644
|
||||||
@@ -21,11 +21,11 @@ index f325539c7..3e2c7b3eb 100644
|
|||||||
Support: '/support',
|
Support: '/support',
|
||||||
- PrivacyPolicy: '/support/privacy',
|
- PrivacyPolicy: '/support/privacy',
|
||||||
- TermsOfService: '/support/tos',
|
- TermsOfService: '/support/tos',
|
||||||
+ PrivacyPolicy: 'https://syu.is/about/support/privacy-policy',
|
+ PrivacyPolicy: ['/support/privacy-policy', '/about/support/privacy-policy'],
|
||||||
+ TermsOfService: 'https://syu.is/about/support/tos',
|
+ TermsOfService: ['/support/tos', '/about/support/tos'],
|
||||||
CommunityGuidelines: '/support/community-guidelines',
|
CommunityGuidelines: '/support/community-guidelines',
|
||||||
+ License: 'https://syu.is/about/support/license',
|
+ License: ['/support/license', '/about/support/license'],
|
||||||
+ AppInfo: 'https://syu.is/about/support/app',
|
+ AppInfo: '/support/app',
|
||||||
CopyrightPolicy: '/support/copyright',
|
CopyrightPolicy: '/support/copyright',
|
||||||
// hashtags
|
// hashtags
|
||||||
Hashtag: '/hashtag/:tag',
|
Hashtag: '/hashtag/:tag',
|
||||||
@@ -35,41 +35,41 @@ index 5c8ce3b97..ee85beb08 100644
|
|||||||
+++ b/src/state/session/agent.ts
|
+++ b/src/state/session/agent.ts
|
||||||
@@ -47,7 +47,8 @@ export function createPublicAgent() {
|
@@ -47,7 +47,8 @@ export function createPublicAgent() {
|
||||||
configureModerationForGuest() // Side effect but only relevant for tests
|
configureModerationForGuest() // Side effect but only relevant for tests
|
||||||
|
|
||||||
const agent = new BskyAppAgent({service: PUBLIC_BSKY_SERVICE})
|
const agent = new BskyAppAgent({service: PUBLIC_BSKY_SERVICE})
|
||||||
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
+ // Disable proxy for self-hosted environments
|
+ // Disable proxy for self-hosted environments
|
||||||
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
return agent
|
return agent
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +89,8 @@ export async function createAgentAndResume(
|
@@ -88,7 +89,8 @@ export async function createAgentAndResume(
|
||||||
// after session is attached
|
// after session is attached
|
||||||
const aa = prefetchAgeAssuranceData({agent})
|
const aa = prefetchAgeAssuranceData({agent})
|
||||||
|
|
||||||
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
+ // Disable proxy for self-hosted environments
|
+ // Disable proxy for self-hosted environments
|
||||||
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
|
|
||||||
return agent.prepare({
|
return agent.prepare({
|
||||||
resolvers: [gates, moderation, aa],
|
resolvers: [gates, moderation, aa],
|
||||||
@@ -127,7 +129,8 @@ export async function createAgentAndLogin(
|
@@ -127,7 +129,8 @@ export async function createAgentAndLogin(
|
||||||
const moderation = configureModerationForAccount(agent, account)
|
const moderation = configureModerationForAccount(agent, account)
|
||||||
const aa = prefetchAgeAssuranceData({agent})
|
const aa = prefetchAgeAssuranceData({agent})
|
||||||
|
|
||||||
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
+ // Disable proxy for self-hosted environments
|
+ // Disable proxy for self-hosted environments
|
||||||
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
|
|
||||||
return agent.prepare({
|
return agent.prepare({
|
||||||
resolvers: [gates, moderation, aa],
|
resolvers: [gates, moderation, aa],
|
||||||
@@ -299,7 +302,8 @@ export async function createAgentAndCreateAccount(
|
@@ -299,7 +302,8 @@ export async function createAgentAndCreateAccount(
|
||||||
logger.error(e, {message: `session: failed snoozeEmailConfirmationPrompt`})
|
logger.error(e, {message: `session: failed snoozeEmailConfirmationPrompt`})
|
||||||
}
|
}
|
||||||
|
|
||||||
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
- agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
+ // Disable proxy for self-hosted environments
|
+ // Disable proxy for self-hosted environments
|
||||||
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
+ // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
|
||||||
|
|
||||||
return agent.prepare({
|
return agent.prepare({
|
||||||
resolvers: [gates, moderation, aa],
|
resolvers: [gates, moderation, aa],
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ index 6b8257b91..48ba7909e 100644
|
|||||||
<SettingsList.Container>
|
<SettingsList.Container>
|
||||||
<SettingsList.LinkItem
|
<SettingsList.LinkItem
|
||||||
- to="https://bsky.social/about/support/tos"
|
- to="https://bsky.social/about/support/tos"
|
||||||
+ to="https://syu.is/about/support/tos"
|
+ to="/support/tos"
|
||||||
label={_(msg`Terms of Service`)}>
|
label={_(msg`Terms of Service`)}>
|
||||||
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||||
<SettingsList.ItemText>
|
<SettingsList.ItemText>
|
||||||
@@ -16,7 +16,7 @@ index 6b8257b91..48ba7909e 100644
|
|||||||
</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"
|
+ to="/support/privacy-policy"
|
||||||
label={_(msg`Privacy Policy`)}>
|
label={_(msg`Privacy Policy`)}>
|
||||||
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
<SettingsList.ItemIcon icon={NewspaperIcon} />
|
||||||
<SettingsList.ItemText>
|
<SettingsList.ItemText>
|
||||||
@@ -31,7 +31,7 @@ index 77f219e55..53f5e0cc0 100644
|
|||||||
- label={_(msg`Bluesky Social Terms of Service`)}
|
- label={_(msg`Bluesky Social Terms of Service`)}
|
||||||
- to="https://bsky.social/about/support/tos"
|
- to="https://bsky.social/about/support/tos"
|
||||||
+ label={_(msg`syu.is Terms of Service`)}
|
+ label={_(msg`syu.is Terms of Service`)}
|
||||||
+ to="https://syu.is/about/support/tos"
|
+ to="/support/tos"
|
||||||
style={[a.text_md, a.leading_snug]}>
|
style={[a.text_md, a.leading_snug]}>
|
||||||
- Bluesky Social Terms of Service
|
- Bluesky Social Terms of Service
|
||||||
+ syu.is Terms of Service
|
+ syu.is Terms of Service
|
||||||
@@ -42,12 +42,14 @@ diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy
|
|||||||
index a89eaadc4..1da393f03 100644
|
index a89eaadc4..1da393f03 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,52 +1,38 @@
|
||||||
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 {useFocusEffect} from '@react-navigation/native'
|
+import {View, ScrollView} from 'react-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 {
|
||||||
@@ -55,31 +57,32 @@ 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 {useSetMinimalShellMode} from '#/state/shell'
|
+import {useLingui} from '@lingui/react'
|
||||||
|
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 { WebView } from 'react-native-webview'
|
|
||||||
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'
|
|
||||||
|
|
||||||
+export function PrivacyPolicyScreen() {
|
+export function PrivacyPolicyScreen() {
|
||||||
+ useSetTitle('Privacy Policy')
|
+ 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]}>
|
||||||
@@ -93,10 +96,23 @@ index a89eaadc4..1da393f03 100644
|
|||||||
- />
|
- />
|
||||||
- </Trans>
|
- </Trans>
|
||||||
- </Text>
|
- </Text>
|
||||||
- </View>
|
+ <Layout.Screen testID="privacyPolicyScreen">
|
||||||
|
+ <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>
|
||||||
+ <WebView source={{ uri: 'https://syu.is/about/support/privacy-policy' }} style={{ flex: 1 }} />
|
+ </Layout.Content>
|
||||||
</Layout.Screen>
|
</Layout.Screen>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -104,12 +120,14 @@ diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfServi
|
|||||||
index d843c713c..b81767bd5 100644
|
index d843c713c..b81767bd5 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,50 +1,38 @@
|
||||||
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 {useFocusEffect} from '@react-navigation/native'
|
+import {View, ScrollView} from 'react-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 {
|
||||||
@@ -117,31 +135,33 @@ 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 {useSetMinimalShellMode} from '#/state/shell'
|
+import {useLingui} from '@lingui/react'
|
||||||
|
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 { WebView } from 'react-native-webview'
|
|
||||||
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'
|
|
||||||
|
|
||||||
+export function TermsOfServiceScreen() {
|
+export function TermsOfServiceScreen() {
|
||||||
+ useSetTitle('Terms of Service')
|
+ 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]}>
|
||||||
@@ -153,10 +173,23 @@ index d843c713c..b81767bd5 100644
|
|||||||
- text="bsky.social/about/support/tos"
|
- text="bsky.social/about/support/tos"
|
||||||
- />
|
- />
|
||||||
- </Text>
|
- </Text>
|
||||||
- </View>
|
+ <Layout.Screen testID="termsOfServiceScreen">
|
||||||
|
+ <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>
|
||||||
+ <WebView source={{ uri: 'https://syu.is/about/support/tos' }} style={{ flex: 1 }} />
|
+ </Layout.Content>
|
||||||
</Layout.Screen>
|
</Layout.Screen>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,13 +44,13 @@ index f76147ccf..36b4d7de1 100644
|
|||||||
style={[a.text_md]}
|
style={[a.text_md]}
|
||||||
label={_(msg`Terms of Service`)}
|
label={_(msg`Terms of Service`)}
|
||||||
- to="https://bsky.social/about/support/tos">
|
- to="https://bsky.social/about/support/tos">
|
||||||
+ to="https://syu.is/about/support/tos">
|
+ to="/support/tos">
|
||||||
<Trans>Terms of Service</Trans>
|
<Trans>Terms of Service</Trans>
|
||||||
</InlineLinkText>
|
</InlineLinkText>
|
||||||
<InlineLinkText
|
<InlineLinkText
|
||||||
style={[a.text_md]}
|
style={[a.text_md]}
|
||||||
- to="https://bsky.social/about/support/privacy-policy"
|
- to="https://bsky.social/about/support/privacy-policy"
|
||||||
+ to="https://syu.is/about/support/privacy-policy"
|
+ to="/support/privacy-policy"
|
||||||
label={_(msg`Privacy Policy`)}>
|
label={_(msg`Privacy Policy`)}>
|
||||||
<Trans>Privacy Policy</Trans>
|
<Trans>Privacy Policy</Trans>
|
||||||
</InlineLinkText>
|
</InlineLinkText>
|
||||||
|
|||||||
@@ -20,13 +20,13 @@ index 8365057e8..59c8506a2 100644
|
|||||||
terms: {
|
terms: {
|
||||||
overridePresentation: false,
|
overridePresentation: false,
|
||||||
- to: `https://bsky.social/about/support/tos`,
|
- to: `https://bsky.social/about/support/tos`,
|
||||||
+ to: `https://syu.is/about/support/tos`,
|
+ to: `/support/tos`,
|
||||||
label: _(msg`Terms of Service`),
|
label: _(msg`Terms of Service`),
|
||||||
},
|
},
|
||||||
privacy: {
|
privacy: {
|
||||||
overridePresentation: false,
|
overridePresentation: false,
|
||||||
- to: `https://bsky.social/about/support/privacy-policy`,
|
- to: `https://bsky.social/about/support/privacy-policy`,
|
||||||
+ to: `https://syu.is/about/support/privacy-policy`,
|
+ to: `/support/privacy-policy`,
|
||||||
label: _(msg`Privacy Policy`),
|
label: _(msg`Privacy Policy`),
|
||||||
},
|
},
|
||||||
copyright: {
|
copyright: {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ index 3442d1bdf..8ed9e3d0d 100644
|
|||||||
@@ -1,5 +1,6 @@
|
@@ -1,5 +1,6 @@
|
||||||
import {useMemo} from 'react'
|
import {useMemo} from 'react'
|
||||||
-import {Image as RNImage, View} from 'react-native'
|
-import {Image as RNImage, View} from 'react-native'
|
||||||
+import {Image as RNImage, View, Pressable, Linking} from 'react-native'
|
+import {Image as RNImage, View, Pressable} from 'react-native'
|
||||||
+import {Text} from '#/components/Typography'
|
+import {Text} from '#/components/Typography'
|
||||||
import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
|
import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
|
||||||
import {Image} from 'expo-image'
|
import {Image} from 'expo-image'
|
||||||
@@ -15,7 +15,7 @@ index 3442d1bdf..8ed9e3d0d 100644
|
|||||||
</Button>
|
</Button>
|
||||||
</View>
|
</View>
|
||||||
+ <View style={[a.pb_sm, a.justify_center, a.align_center]}>
|
+ <View style={[a.pb_sm, a.justify_center, a.align_center]}>
|
||||||
+ <Pressable onPress={() => Linking.openURL('https://syu.is/about/support/license')}>
|
+ <Pressable onPress={() => navigation.navigate('License')}>
|
||||||
+ <Text
|
+ <Text
|
||||||
+ style={[
|
+ style={[
|
||||||
+ a.text_xs,
|
+ a.text_xs,
|
||||||
|
|||||||
@@ -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
|
--- a/bskyweb/cmd/bskyweb/server.go
|
||||||
+++ b/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/tos", server.WebGeneric)
|
||||||
e.GET("/support/community-guidelines", server.WebGeneric)
|
e.GET("/support/community-guidelines", server.WebGeneric)
|
||||||
e.GET("/support/copyright", server.WebGeneric)
|
e.GET("/support/copyright", server.WebGeneric)
|
||||||
+ // about/support pages (syu.is specific)
|
+ e.GET("/support/privacy-policy", server.WebGeneric)
|
||||||
+ e.GET("/about/support/tos", server.WebAboutTOS)
|
+ e.GET("/support/license", server.WebGeneric)
|
||||||
+ e.GET("/about/support/privacy-policy", server.WebAboutPrivacy)
|
+ e.GET("/support/app", server.WebGeneric)
|
||||||
+ e.GET("/about/support/help", server.WebAboutHelp)
|
+ e.GET("/support/help", server.WebGeneric)
|
||||||
+ e.GET("/about/support/license", server.WebAboutLicense)
|
+ // /about/support/ paths (for web compatibility)
|
||||||
+ e.GET("/about/support/app", server.WebAboutApp)
|
+ 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/compose", server.WebGeneric)
|
||||||
e.GET("/intent/verify-email", server.WebGeneric)
|
e.GET("/intent/verify-email", server.WebGeneric)
|
||||||
e.GET("/intent/age-assurance", 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