Skip to content

Commit 1d4c603

Browse files
committed
Add agreement page
1 parent 4c55d85 commit 1d4c603

File tree

11 files changed

+143
-14
lines changed

11 files changed

+143
-14
lines changed

bin/build-all.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,22 @@ async function main () {
3737
keywords: 'electerm, electerm-cloud',
3838
siteName: 'electerm cloud admin'
3939
})
40+
41+
const from2 = resolve(cwd, 'src/server/views/agreement.pug')
42+
const to2 = resolve(cwd, 'public/agreement/index.html')
43+
mkdirSync(
44+
resolve(cwd, 'public/agreement'),
45+
{ recursive: true }
46+
)
47+
48+
await buildPug(from2, to2, {
49+
dev: false,
50+
cssUrl: '/css/style.css',
51+
jsUrl: '/js/agreement.bundle.js',
52+
desc: 'electerm cloud agreement: sync your electerm data to cloud',
53+
keywords: 'electerm, electerm-cloud',
54+
siteName: 'electerm cloud agreement'
55+
})
4056
}
4157

4258
main()

bin/vite/conf.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export default defineConfig({
2020
rollupOptions: {
2121
input: {
2222
app: resolve(cwd, 'src/client/entry/app.tsx'),
23-
admin: resolve(cwd, 'src/client/entry/admin.tsx')
23+
admin: resolve(cwd, 'src/client/entry/admin.tsx'),
24+
agreement: resolve(cwd, 'src/client/entry/agreement.tsx')
2425
},
2526
external: [
2627
'universe-bg',

bin/vite/dev-server.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,17 @@ function handleAdmin (req: express.Request, res: express.Response) {
4646
})
4747
}
4848

49+
function handleAgreement (req: express.Request, res: express.Response) {
50+
res.render('agreement', {
51+
dev: true,
52+
cssUrl: '/agreement.bundle.css',
53+
jsUrl: '/src/client/entry/agreement.tsx',
54+
desc: 'electerm cloud agreement',
55+
keywords: 'electerm, electerm-cloud',
56+
siteName: 'electerm cloud agreement'
57+
})
58+
}
59+
4960

5061
async function createServer(): Promise<void> {
5162
const app: express.Application = express()
@@ -68,6 +79,7 @@ async function createServer(): Promise<void> {
6879

6980
app.get('/', handleIndex)
7081
app.get('/admin', handleAdmin)
82+
app.get('/agreement', handleAgreement)
7183
route(app)
7284
app.use(vite.middlewares)
7385

src/client/agreement/agreement.tsx

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import React, { useEffect } from 'react'
2+
import { t } from '../locales/lang'
3+
import Links from '../common/links'
4+
import Footer from '../common/footer'
5+
import LangSelect from '../locales/lang-select'
6+
import Logo from '../common/logo'
7+
8+
export default function Agreement (): JSX.Element {
9+
useEffect(() => {
10+
document.getElementById('content-loading')?.remove()
11+
}, [])
12+
13+
return (
14+
<div className='wrap'>
15+
<div className='pd1y'>
16+
<LangSelect />
17+
</div>
18+
<Logo />
19+
<div className='pd2y'>
20+
<a href='/'>{t('backToHome')}</a>
21+
</div>
22+
<h1>{t('agreement')}</h1>
23+
<div className='pd2y'>
24+
{
25+
t('agreementContent').split('\n').map((line, i) => (
26+
<p key={i}>{line}</p>
27+
))
28+
}
29+
</div>
30+
<Links />
31+
<Footer />
32+
</div>
33+
)
34+
}

src/client/common/footer.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,29 @@ export default function Footer (): JSX.Element {
55
{
66
url: 'https://github.com/zxdong262',
77
title: '@ZHAO Xudong'
8+
},
9+
{
10+
url: '/agreement',
11+
title: 'Agreement'
812
}
913
]
1014
return (
1115
<div className='footer pd2y'>
1216
{
13-
links.map(item => (
14-
<a target='_blank' rel='noreferrer' href={item.url} key={item.url}>{item.title}</a>
15-
))
17+
links.map((item, i) => {
18+
const cls = i === 0 ? '' : 'mg2l'
19+
return (
20+
<a
21+
target='_blank'
22+
rel='noreferrer'
23+
href={item.url}
24+
key={item.url}
25+
className={cls}
26+
>
27+
{item.title}
28+
</a>
29+
)
30+
})
1631
}
1732
</div>
1833
)

src/client/common/logo.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import React from 'react'
2+
import { t } from '../locales/lang'
23

3-
export default function Logout (): JSX.Element {
4+
export default function Logo (): JSX.Element {
45
return (
56
<div className='pd3y'>
67
<img
78
src='https://electerm.html5beta.com/electerm.png'
89
alt=''
910
className='logo iblock'
1011
/>
12+
<p className='pd1y'>
13+
{t('electermCloud')}
14+
</p>
1115
</div>
1216
)
1317
}

src/client/entry/agreement.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { createRoot } from 'react-dom/client'
2+
import React from 'react'
3+
import App from '../agreement/agreement'
4+
import './app.styl'
5+
6+
const root = createRoot(document.getElementById('container') as HTMLElement)
7+
root.render(<App />)

src/client/locales/cn.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,6 @@ export const cn: Lang = {
3737
tokens: '访问令牌',
3838
email: '电子邮件',
3939
name: '姓名',
40+
backToHome: '返回首页',
4041
download: '下载'
4142
}

src/client/locales/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ If you do not agree with these terms, please do not use this application. By cli
3333
tokens: 'Tokens',
3434
email: 'Email',
3535
name: 'Name',
36+
backToHome: 'Back to Home',
3637
download: 'Download'
3738
}

src/client/login/login.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import AgreeMent from './agreement'
1414
import Links from '../common/links'
1515
import Footer from '../common/footer'
1616
import LangSelect from '../locales/lang-select'
17+
import Logo from '../common/logo'
1718
import { t } from '../locales/lang'
1819

1920
declare global {
@@ -93,15 +94,7 @@ export default function Login (): JSX.Element {
9394
<div className='pd1y'>
9495
<LangSelect />
9596
</div>
96-
<div className='pd3y'>
97-
<img
98-
src='https://electerm.html5beta.com/electerm.png'
99-
alt=''
100-
/>
101-
<p className='pd1y'>
102-
{t('electermCloud')}
103-
</p>
104-
</div>
97+
<Logo />
10598
<Spin spinning={loading}>
10699
<div className='pd3y'>
107100
<Button

0 commit comments

Comments
 (0)