diff --git a/app/[locale]/tools/base64/page.tsx b/app/[locale]/tools/base64/page.tsx
new file mode 100644
index 0000000..4fc916b
--- /dev/null
+++ b/app/[locale]/tools/base64/page.tsx
@@ -0,0 +1,10 @@
+import { useTranslations } from "next-intl";
+
+export default function Base64() {
+ const t = useTranslations("tools");
+ return (
+
+
{t("base64.title")}
+
+ );
+}
diff --git a/app/[locale]/tools/layout.tsx b/app/[locale]/tools/layout.tsx
new file mode 100644
index 0000000..44a3663
--- /dev/null
+++ b/app/[locale]/tools/layout.tsx
@@ -0,0 +1,10 @@
+export default function ToolsLayout({ children }: { children: React.ReactNode }) {
+ return (
+
+
+ {children}
+
+
+ );
+}
diff --git a/components/index.tsx b/components/index.tsx
index db42ed0..9b21de4 100644
--- a/components/index.tsx
+++ b/components/index.tsx
@@ -1,7 +1,6 @@
"use client";
-import { useEffect } from "react";
-import { useRecoilState, useSetRecoilState } from "recoil";
+import { useRecoilValue, useSetRecoilState } from "recoil";
import { settingsState } from "./state/settings";
import Search from "./search/search";
import { bgFocusState } from "./state/background";
@@ -17,7 +16,7 @@ const Time = dynamic(() => import("./time"), {
});
export default function Homepage() {
- const [settings, setSettings] = useRecoilState(settingsState);
+ const settings = useRecoilValue(settingsState);
const setFocus = useSetRecoilState(bgFocusState);
return (
diff --git a/messages/en-US.json b/messages/en-US.json
index f627d0c..11db361 100644
--- a/messages/en-US.json
+++ b/messages/en-US.json
@@ -18,5 +18,10 @@
},
"About": {
"title": "SparkHome"
+ },
+ "tools": {
+ "base64": {
+ "title": "Base64 tools - LuminaraUtils"
+ }
}
}
diff --git a/messages/zh-CN.json b/messages/zh-CN.json
index 117c08b..0992ac2 100644
--- a/messages/zh-CN.json
+++ b/messages/zh-CN.json
@@ -15,5 +15,10 @@
},
"404": {
"title": "未找到"
+ },
+ "tools": {
+ "base64": {
+ "title": "Base64 工具"
+ }
}
}