ai/at
1
0

fix social-app patch support page

This commit is contained in:
2026-02-03 10:35:37 +09:00
parent f27cae0669
commit 88cb429951
7 changed files with 137 additions and 123 deletions

View File

@@ -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`,
} }

View File

@@ -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',

View File

@@ -1,37 +1,37 @@
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
- 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>
<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
- 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>
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
- 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
@@ -39,10 +39,10 @@ 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,13 @@ @@ -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'
@@ -59,7 +59,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'
- -
@@ -75,9 +75,13 @@ index a89eaadc4..1da393f03 100644
- }, [setMinimalShellMode]), - }, [setMinimalShellMode]),
- ) - )
+import {useSetTitle} from '#/lib/hooks/useSetTitle' +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') + useSetTitle('Privacy Policy')
+ const t = useTheme()
return ( return (
<Layout.Screen> <Layout.Screen>
- <ViewHeader title={_(msg`Privacy Policy`)} /> - <ViewHeader title={_(msg`Privacy Policy`)} />
@@ -95,16 +99,47 @@ 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.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,13 @@ @@ -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'
@@ -121,7 +156,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'
- -
@@ -137,9 +172,13 @@ index d843c713c..b81767bd5 100644
- }, [setMinimalShellMode]), - }, [setMinimalShellMode]),
- ) - )
+import {useSetTitle} from '#/lib/hooks/useSetTitle' +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') + 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`)} />
@@ -155,8 +194,39 @@ 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.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>
) )
}

View File

@@ -1,8 +1,8 @@
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 f76147ccf..36b4d7de1 100644 index 42a5fe417..8e7963512 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
@@ -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} /> <SearchMenuItem isActive={isAtSearch} onPress={onPressSearch} />
<HomeMenuItem isActive={isAtHome} onPress={onPressHome} /> <HomeMenuItem isActive={isAtHome} onPress={onPressHome} />
@@ -20,7 +20,7 @@ index f76147ccf..36b4d7de1 100644
<ProfileMenuItem <ProfileMenuItem
isActive={isAtMyProfile} isActive={isAtMyProfile}
onPress={onPressProfile} onPress={onPressProfile}
@@ -357,17 +351,7 @@ let DrawerFooter = ({ @@ -359,17 +353,7 @@ let DrawerFooter = ({
), ),
}, },
]}> ]}>
@@ -39,18 +39,27 @@ index f76147ccf..36b4d7de1 100644
<Button <Button
label={_(msg`Get help`)} label={_(msg`Get help`)}
size="small" size="small"
@@ -695,12 +679,12 @@ function ExtraLinks() { @@ -697,15 +681,21 @@ function ExtraLinks() {
<InlineLinkText <InlineLinkText
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>
+ <InlineLinkText
+ style={[a.text_md]}
+ to="/support/license"
+ label="License">
+ License
+ </InlineLinkText>
{kawaii && (
<Text style={t.atoms.text_contrast_medium}>
<Trans>

View File

@@ -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: {

View File

@@ -1,36 +1,5 @@
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 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 --- a/src/view/com/auth/SplashScreen.web.tsx
+++ b/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx
@@ -94,14 +94,6 @@ export const SplashScreen = ({ @@ -94,14 +94,6 @@ export const SplashScreen = ({

View File

@@ -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)
+}