From cf604638c550af05be796030de3b5b8cc2e86602 Mon Sep 17 00:00:00 2001
From: Kevin Williams <2096779623@qq.com>
Date: Wed, 3 May 2023 04:05:02 +0800
Subject: [PATCH] feat: add Umami Cloud Analysis (#476)
---
public/locales/ja/dashboard.json | 1 +
public/locales/zh-TW/dashboard.json | 1 +
public/locales/zh/dashboard.json | 1 +
src/components/site/SiteFooter.tsx | 10 +++++++
src/lib/expand-unit.ts | 4 +++
src/lib/types.ts | 1 +
src/models/site.model.ts | 10 +++++++
.../[subdomain]/settings/general.tsx | 27 +++++++++++++++++++
8 files changed, 55 insertions(+)
diff --git a/public/locales/ja/dashboard.json b/public/locales/ja/dashboard.json
index d08a1f74..ffb833bb 100644
--- a/public/locales/ja/dashboard.json
+++ b/public/locales/ja/dashboard.json
@@ -85,6 +85,7 @@
"Name": "名前",
"Description": "説明",
"Integrate Google Analytics": "Google Analytics と紐付けします。Measurement ID の検索方法については、<2>こちらの文章2>をご覧ください。",
+ "Integrate Umami Cloud Analytics": "Umami Cloud Analytics と紐付けします。Website ID の検索方法については、<2>こちらの文章2>をご覧ください。",
"Save": "保存",
"Tips": "ヒント",
"social tips": {
diff --git a/public/locales/zh-TW/dashboard.json b/public/locales/zh-TW/dashboard.json
index 6e869fe5..8d169035 100644
--- a/public/locales/zh-TW/dashboard.json
+++ b/public/locales/zh-TW/dashboard.json
@@ -90,6 +90,7 @@
"Name": "名稱",
"Description": "自我介紹",
"Integrate Google Analytics": "將 Google Analytics 整合至你的網站中。請按照<2>這裡2>的說明查找你的 Measurement ID。",
+ "Integrate Umami Cloud Analytics": "將 Umami Cloud Analytics 整合至你的網站中。請按照<2>這裡2>的說明查找你的 Website ID。",
"Save": "儲存",
"Tips": "提示",
"social tips": {
diff --git a/public/locales/zh/dashboard.json b/public/locales/zh/dashboard.json
index 556b4313..017a6a5e 100644
--- a/public/locales/zh/dashboard.json
+++ b/public/locales/zh/dashboard.json
@@ -91,6 +91,7 @@
"Name": "名称",
"Description": "描述",
"Integrate Google Analytics": "将 Google Analytics 集成到你的站点中。你可以按照<2>这里2>的说明查找你的 Measurement ID。",
+ "Integrate Umami Cloud Analytics": "将 Umami Cloud Analytics 集成到你的站点中。你可以按照<2>这里2>的说明查找你的 Website ID。",
"Save": "保存",
"Tips": "提示",
"social tips": {
diff --git a/src/components/site/SiteFooter.tsx b/src/components/site/SiteFooter.tsx
index 137700de..db0d96b0 100644
--- a/src/components/site/SiteFooter.tsx
+++ b/src/components/site/SiteFooter.tsx
@@ -89,6 +89,16 @@ export const SiteFooter: React.FC<{
)}
+ {site?.metadata?.content?.ua && (
+
+
+
+ )}
>
)
}
diff --git a/src/lib/expand-unit.ts b/src/lib/expand-unit.ts
index 3e49545a..7360d473 100644
--- a/src/lib/expand-unit.ts
+++ b/src/lib/expand-unit.ts
@@ -103,6 +103,10 @@ export const expandCrossbellCharacter = (site: CharacterEntity) => {
(expandedCharacter.metadata?.content?.attributes?.find(
(a: any) => a.trait_type === "xlog_ga",
)?.value as string) || ""
+ expandedCharacter.metadata.content.ua =
+ (expandedCharacter.metadata?.content?.attributes?.find(
+ (a: any) => a.trait_type === "xlog_ua",
+ )?.value as string) || ""
expandedCharacter.metadata.content.custom_domain =
(expandedCharacter.metadata?.content?.attributes?.find(
(a: any) => a.trait_type === "xlog_custom_domain",
diff --git a/src/lib/types.ts b/src/lib/types.ts
index f8d41dd5..0b9b6e7f 100644
--- a/src/lib/types.ts
+++ b/src/lib/types.ts
@@ -101,6 +101,7 @@ export type ExpandedCharacter = CharacterEntity & {
navigation?: SiteNavigationItem[]
css?: string
ga?: string
+ ua?: string
custom_domain?: string
}
}
diff --git a/src/models/site.model.ts b/src/models/site.model.ts
index 8773c36e..3d112190 100644
--- a/src/models/site.model.ts
+++ b/src/models/site.model.ts
@@ -106,6 +106,7 @@ export async function updateSite(
navigation?: SiteNavigationItem[]
css?: string
ga?: string
+ ua?: string
custom_domain?: string
banner?: {
address: string
@@ -141,6 +142,7 @@ export async function updateSite(
...((payload.navigation !== undefined ||
payload.css !== undefined ||
payload.ga !== undefined ||
+ payload.ua !== undefined ||
payload.custom_domain !== undefined) && {
attributes: [
...(payload.navigation !== undefined
@@ -167,6 +169,14 @@ export async function updateSite(
},
]
: []),
+ ...(payload.ua !== undefined
+ ? [
+ {
+ trait_type: "xlog_ua",
+ value: payload.ua,
+ },
+ ]
+ : []),
...(payload.custom_domain !== undefined
? [
{
diff --git a/src/pages/dashboard/[subdomain]/settings/general.tsx b/src/pages/dashboard/[subdomain]/settings/general.tsx
index e4aa3529..e7ca85a1 100644
--- a/src/pages/dashboard/[subdomain]/settings/general.tsx
+++ b/src/pages/dashboard/[subdomain]/settings/general.tsx
@@ -45,6 +45,7 @@ export default function SiteSettingsGeneralPage() {
name: "",
description: "",
ga: "",
+ ua: "",
} as {
icon: string
banner?: {
@@ -54,6 +55,7 @@ export default function SiteSettingsGeneralPage() {
name: string
description: string
ga: string
+ ua: string
},
})
@@ -65,6 +67,7 @@ export default function SiteSettingsGeneralPage() {
name: values.name,
description: values.description,
ga: values.ga,
+ ua: values.ua,
})
})
@@ -105,6 +108,8 @@ export default function SiteSettingsGeneralPage() {
form.setValue("description", site.data.metadata?.content?.bio || "")
!form.getValues("ga") &&
form.setValue("ga", site.data.metadata?.content?.ga || "")
+ !form.getValues("ua") &&
+ form.setValue("ua", site.data.metadata?.content?.ua || "")
}
}, [site.data, form])
@@ -211,6 +216,28 @@ export default function SiteSettingsGeneralPage() {
}
/>
+
+
+
+ Integrate Umami Cloud Analytics into your site. You can follow the
+ instructions{" "}
+
+ here
+ {" "}
+ to find your Website ID.
+
+
+ }
+ />
+