Skip to content

Commit 67ee18b

Browse files
committed
feat: agreement differentiate between regions and language types
1 parent bc104b7 commit 67ee18b

File tree

8 files changed

+148
-25
lines changed

8 files changed

+148
-25
lines changed

cspell.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module.exports = {
22
version: "0.1",
33
language: "en",
44
words: [
5+
"apprtc",
56
"cspell",
67
"vite",
78
"vitejs",

desktop/renderer-app/src/constants/process.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,16 @@ export const FLAT_WEB_DOMAIN = process.env.FLAT_WEB_DOMAIN;
55

66
export const FLAT_WEB_BASE_URL = `https://${FLAT_WEB_DOMAIN}`;
77

8-
export const PRIVACY_URL_CN = "https://www.flat.apprtc.cn/privacy.html";
9-
export const PRIVACY_URL_EN = "https://flat.whiteboard.agora.io/en/privacy.html";
8+
export const FLAT_REGION = process.env.FLAT_REGION;
109

11-
export const SERVICE_URL_CN = "https://www.flat.apprtc.cn/service.html";
12-
export const SERVICE_URL_EN = "https://flat.whiteboard.agora.io/en/service.html";
10+
export const PRIVACY_URL_CN_CN = "https://www.flat.apprtc.cn/privacy.html";
11+
export const PRIVACY_URL_CN_EN = "https://www.flat.apprtc.cn/en/privacy.html";
12+
13+
export const PRIVACY_URL_EN_CN = "https://flat.agora.io/zh/privacy.html";
14+
export const PRIVACY_URL_EN_EN = "https://flat.agora.io/privacy.html";
15+
16+
export const SERVICE_URL_CN_CN = "https://www.flat.apprtc.cn/service.html";
17+
export const SERVICE_URL_CN_EN = "https://www.flat.apprtc.cn/en/service.html";
18+
19+
export const SERVICE_URL_EN_CN = "https://flat.agora.io/zh/service.html";
20+
export const SERVICE_URL_EN_EN = "https://flat.agora.io/service.html";

packages/flat-components/src/components/LoginPage/LoginWithCode/index.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,13 @@ export async function getPrivacy(props: {
241241
serviceURL: string;
242242
}): Promise<PrivacyAgreementData | undefined> {
243243
const { privacyURL, serviceURL } = props;
244+
// 仅中国地区,language为zh的情况下,使用中文隐私协议
245+
const isZh = serviceURL.indexOf("apprtc.cn") > -1 && privacyURL.indexOf("/en") === -1;
244246
if (FLAT_AGREEMENT_URL) {
245-
const data = await fetch(FLAT_AGREEMENT_URL).then(response => {
247+
const url = isZh
248+
? FLAT_AGREEMENT_URL
249+
: FLAT_AGREEMENT_URL.replace("privacy.json", "privacy_en.json");
250+
const data = await fetch(url).then(response => {
246251
return response.json();
247252
});
248253
if (data.content) {

packages/flat-pages/src/AppRoutes/WeChatRedirect.tsx

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,15 @@ import React, { useCallback, useEffect, useState } from "react";
77
import { useLanguage, useTranslate } from "@netless/flat-i18n";
88
import {
99
FLAT_DOWNLOAD_URL,
10-
PRIVACY_URL,
11-
PRIVACY_URL_CN,
12-
SERVICE_URL,
13-
SERVICE_URL_CN,
10+
FLAT_REGION,
11+
PRIVACY_URL_CN_CN,
12+
PRIVACY_URL_CN_EN,
13+
PRIVACY_URL_EN_CN,
14+
PRIVACY_URL_EN_EN,
15+
SERVICE_URL_CN_CN,
16+
SERVICE_URL_CN_EN,
17+
SERVICE_URL_EN_CN,
18+
SERVICE_URL_EN_EN,
1419
} from "../constants/process";
1520
import { isWeChatBrowser } from "../utils/user-agent";
1621

@@ -25,8 +30,22 @@ export const WeChatRedirect = ({ url, open }: WeChatRedirectProps): React.ReactE
2530
const language = useLanguage();
2631
const [openCount, setOpenCount] = useState(0);
2732

28-
const privacyURL = language.startsWith("zh") ? PRIVACY_URL_CN : PRIVACY_URL;
29-
const serviceURL = language.startsWith("zh") ? SERVICE_URL_CN : SERVICE_URL;
33+
const privacyURL =
34+
FLAT_REGION === "CN"
35+
? language.startsWith("zh")
36+
? PRIVACY_URL_CN_CN
37+
: PRIVACY_URL_CN_EN
38+
: language.startsWith("zh")
39+
? PRIVACY_URL_EN_CN
40+
: PRIVACY_URL_EN_EN;
41+
const serviceURL =
42+
FLAT_REGION === "CN"
43+
? language.startsWith("zh")
44+
? SERVICE_URL_CN_CN
45+
: SERVICE_URL_CN_EN
46+
: language.startsWith("zh")
47+
? SERVICE_URL_EN_CN
48+
: SERVICE_URL_EN_EN;
3049

3150
const openApp = useCallback((): void => {
3251
window.location.href = url || "x-agora-flat-client://active";

packages/flat-pages/src/JoinPage/index.tsx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,17 @@ import { RouteNameType, RouteParams, usePushHistory } from "../utils/routes";
1010
import { GlobalStoreContext, PageStoreContext } from "../components/StoreProvider";
1111
import { loginCheck } from "@netless/flat-server-api";
1212
import { joinRoomHandler } from "../utils/join-room-handler";
13-
import { PRIVACY_URL, PRIVACY_URL_CN, SERVICE_URL, SERVICE_URL_CN } from "../constants/process";
13+
import {
14+
FLAT_REGION,
15+
PRIVACY_URL_CN_CN,
16+
PRIVACY_URL_CN_EN,
17+
PRIVACY_URL_EN_CN,
18+
PRIVACY_URL_EN_EN,
19+
SERVICE_URL_CN_CN,
20+
SERVICE_URL_CN_EN,
21+
SERVICE_URL_EN_CN,
22+
SERVICE_URL_EN_EN,
23+
} from "../constants/process";
1424
import JoinPageDesktop from "./JoinPageDesktop";
1525
import JoinPageMobile from "./JoinPageMobile";
1626

@@ -61,8 +71,22 @@ export const JoinPage = observer(function JoinPage() {
6171

6272
const isMobile = width <= 480;
6373

64-
const privacyURL = language.startsWith("zh") ? PRIVACY_URL_CN : PRIVACY_URL;
65-
const serviceURL = language.startsWith("zh") ? SERVICE_URL_CN : SERVICE_URL;
74+
const privacyURL =
75+
FLAT_REGION === "CN"
76+
? language.startsWith("zh")
77+
? PRIVACY_URL_CN_CN
78+
: PRIVACY_URL_CN_EN
79+
: language.startsWith("zh")
80+
? PRIVACY_URL_EN_CN
81+
: PRIVACY_URL_EN_EN;
82+
const serviceURL =
83+
FLAT_REGION === "CN"
84+
? language.startsWith("zh")
85+
? SERVICE_URL_CN_CN
86+
: SERVICE_URL_CN_EN
87+
: language.startsWith("zh")
88+
? SERVICE_URL_EN_CN
89+
: SERVICE_URL_EN_EN;
6690

6791
return (
6892
<div>

packages/flat-pages/src/LoginPage/index.tsx

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,16 @@ import { observer } from "mobx-react-lite";
66
import { wrap } from "./utils/disposer";
77
import { useLoginState } from "./utils/state";
88
import { WeChatLogin } from "./WeChatLogin";
9-
import { PRIVACY_URL, PRIVACY_URL_CN, SERVICE_URL, SERVICE_URL_CN } from "../constants/process";
9+
import {
10+
PRIVACY_URL_CN_CN,
11+
PRIVACY_URL_CN_EN,
12+
PRIVACY_URL_EN_CN,
13+
PRIVACY_URL_EN_EN,
14+
SERVICE_URL_CN_CN,
15+
SERVICE_URL_CN_EN,
16+
SERVICE_URL_EN_CN,
17+
SERVICE_URL_EN_EN,
18+
} from "../constants/process";
1019
import { useSafePromise } from "../utils/hooks/lifecycle";
1120
import { AppUpgradeModal } from "../components/AppUpgradeModal";
1221

@@ -39,6 +48,7 @@ import {
3948
registerPhoneSendCode,
4049
rebindingPhoneSendCode,
4150
rebindingPhone,
51+
FLAT_REGION,
4252
} from "@netless/flat-server-api";
4353
import { globalStore } from "@netless/flat-stores";
4454

@@ -51,8 +61,25 @@ export const LoginPage = observer(function LoginPage() {
5161
useLoginState();
5262

5363
const panel = useMemo(() => {
54-
const privacyURL = language.startsWith("zh") ? PRIVACY_URL_CN : PRIVACY_URL;
55-
const serviceURL = language.startsWith("zh") ? SERVICE_URL_CN : SERVICE_URL;
64+
// const privacyURL = language.startsWith("zh") ? PRIVACY_URL_CN : PRIVACY_URL;
65+
// const serviceURL = language.startsWith("zh") ? SERVICE_URL_CN : SERVICE_URL;
66+
67+
const privacyURL =
68+
FLAT_REGION === "CN"
69+
? language.startsWith("zh")
70+
? PRIVACY_URL_CN_CN
71+
: PRIVACY_URL_CN_EN
72+
: language.startsWith("zh")
73+
? PRIVACY_URL_EN_CN
74+
: PRIVACY_URL_EN_EN;
75+
const serviceURL =
76+
FLAT_REGION === "CN"
77+
? language.startsWith("zh")
78+
? SERVICE_URL_CN_CN
79+
: SERVICE_URL_CN_EN
80+
: language.startsWith("zh")
81+
? SERVICE_URL_EN_CN
82+
: SERVICE_URL_EN_EN;
5683
const emailLanguage = language.startsWith("zh") ? "zh" : "en";
5784

5885
const loginProps = {

packages/flat-pages/src/constants/process.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,24 @@ export const NODE_ENV = process.env.NODE_ENV;
22

33
export const FLAT_DOWNLOAD_URL = process.env.FLAT_DOWNLOAD_URL;
44

5-
export const PRIVACY_URL_CN = "https://www.flat.apprtc.cn/privacy.html";
6-
export const PRIVACY_URL = "https://flat.whiteboard.agora.io/en/privacy.html";
5+
// export const PRIVACY_URL_CN = "https://www.flat.apprtc.cn/privacy.html";
6+
// export const PRIVACY_URL = "https://flat.agora.io/privacy.html";
77

8-
export const SERVICE_URL_CN = "https://www.flat.apprtc.cn/service.html";
9-
export const SERVICE_URL = "https://flat.whiteboard.agora.io/en/service.html";
8+
// export const SERVICE_URL_CN = "https://www.flat.apprtc.cn/service.html";
9+
// export const SERVICE_URL = "https://flat.agora.io/service.html";
10+
11+
export const FLAT_REGION = process.env.FLAT_REGION;
12+
13+
export const PRIVACY_URL_CN_CN = "https://www.flat.apprtc.cn/privacy.html";
14+
export const PRIVACY_URL_CN_EN = "https://www.flat.apprtc.cn/en/privacy.html";
15+
16+
export const PRIVACY_URL_EN_CN = "https://flat.agora.io/zh/privacy.html";
17+
export const PRIVACY_URL_EN_EN = "https://flat.agora.io/privacy.html";
18+
19+
export const SERVICE_URL_CN_CN = "https://www.flat.apprtc.cn/service.html";
20+
export const SERVICE_URL_CN_EN = "https://www.flat.apprtc.cn/en/service.html";
21+
22+
export const SERVICE_URL_EN_CN = "https://flat.agora.io/zh/service.html";
23+
export const SERVICE_URL_EN_EN = "https://flat.agora.io/service.html";
1024

1125
export const FLAT_WEB_BASE_URL = `https://${process.env.FLAT_WEB_DOMAIN}`;

packages/flat-pages/src/utils/join-room-handler.tsx

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
import { RouteNameType } from "./routes";
22
import { roomStore, globalStore } from "@netless/flat-stores";
3-
import { RequestErrorCode, RoomType } from "@netless/flat-server-api";
3+
import { FLAT_REGION, RequestErrorCode, RoomType } from "@netless/flat-server-api";
44
import { errorTips, message, Modal } from "flat-components";
55
import { FlatI18n } from "@netless/flat-i18n";
66
import React from "react";
7-
import { PRIVACY_URL, PRIVACY_URL_CN, SERVICE_URL, SERVICE_URL_CN } from "../constants/process";
7+
import {
8+
PRIVACY_URL_CN_CN,
9+
PRIVACY_URL_CN_EN,
10+
PRIVACY_URL_EN_CN,
11+
PRIVACY_URL_EN_EN,
12+
SERVICE_URL_CN_CN,
13+
SERVICE_URL_CN_EN,
14+
SERVICE_URL_EN_CN,
15+
SERVICE_URL_EN_EN,
16+
} from "../constants/process";
817
const { confirm } = Modal;
918

1019
export enum Region {
@@ -23,8 +32,24 @@ export const joinRoomHandler = async (
2332
const promise = await new Promise<boolean>(resolve => {
2433
if (serverRegion && checkCrossRegionAuth(formatRoomUUID, serverRegion)) {
2534
const language = FlatI18n.getInstance().language;
26-
const privacyURL = language.startsWith("zh") ? PRIVACY_URL_CN : PRIVACY_URL;
27-
const serviceURL = language.startsWith("zh") ? SERVICE_URL_CN : SERVICE_URL;
35+
// const privacyURL = language.startsWith("zh") ? PRIVACY_URL_CN : PRIVACY_URL;
36+
// const serviceURL = language.startsWith("zh") ? SERVICE_URL_CN : SERVICE_URL;
37+
const privacyURL =
38+
FLAT_REGION === "CN"
39+
? language.startsWith("zh")
40+
? PRIVACY_URL_CN_CN
41+
: PRIVACY_URL_CN_EN
42+
: language.startsWith("zh")
43+
? PRIVACY_URL_EN_CN
44+
: PRIVACY_URL_EN_EN;
45+
const serviceURL =
46+
FLAT_REGION === "CN"
47+
? language.startsWith("zh")
48+
? SERVICE_URL_CN_CN
49+
: SERVICE_URL_CN_EN
50+
: language.startsWith("zh")
51+
? SERVICE_URL_EN_CN
52+
: SERVICE_URL_EN_EN;
2853

2954
const context = FlatI18n.t("cross-region-auth.desc", {
3055
serviceAgreement: `<a href='${serviceURL}'>《${FlatI18n.t("cross-region-auth.serviceAgreement")}》</a>`,

0 commit comments

Comments
 (0)