Working profile system

This commit is contained in:
2025-10-12 14:56:56 +02:00
parent ab84de8b03
commit 5f9bb4c877
8 changed files with 115 additions and 27 deletions
+3 -2
View File
@@ -6,9 +6,10 @@ import { useRouter } from "next/navigation";
import { useEffect, useState } from "react";
export interface User {
id: number;
id: string;
username: string;
email: string;
display_name: string;
avatar_url: string;
}
export default function useUser() {
+25 -6
View File
@@ -1,7 +1,7 @@
"use client";
import { defaultSettings, getClientSettings } from "@/lib/clientSettings";
import { AccountSettings, ClientSettings } from "@/types/settings";
import { ProfileSettings, ClientSettings } from "@/types/settings";
import { Dispatch, SetStateAction, useEffect, useState } from "react";
export function useClientSettings(): [
@@ -17,13 +17,32 @@ export function useClientSettings(): [
return [settings, setSettings];
}
export function useAccountSettings(): [
AccountSettings,
Dispatch<SetStateAction<AccountSettings>>
export function useProfileSettings(): [
ProfileSettings,
Dispatch<SetStateAction<ProfileSettings>>
] {
const [settings, setSettings] = useState<AccountSettings>({
node_ip: "node0.voxa.org",
const [settings, setSettings] = useState<ProfileSettings>({
node_address: "",
username: "",
display_name: "",
avatar_url: "",
});
useEffect(() => {
async function fetchProfileSettings() {
try {
const res = await fetch("/api/profile");
if (res.ok) {
const data = (await res.json()) as ProfileSettings;
setSettings(data);
}
} catch (error) {
console.error("Failed to fetch profile settings:", error);
}
}
fetchProfileSettings();
}, []);
return [settings, setSettings];
}