diff --git a/client/App.tsx b/client/App.tsx
index 638243a5..271226b5 100644
--- a/client/App.tsx
+++ b/client/App.tsx
@@ -53,7 +53,10 @@ const App = () => (
} />
} />
} />
- } />
+ }
+ />
} />
= ({
user.id,
updates,
);
- setProfile((prev) => ({ ...(prev || {} as any), ...(updatedProfile || {} as any), ...updates } as any));
+ setProfile(
+ (prev) =>
+ ({
+ ...(prev || ({} as any)),
+ ...(updatedProfile || ({} as any)),
+ ...updates,
+ }) as any,
+ );
aethexToast.success({
title: "Profile updated",
description: "Your profile has been updated successfully",
});
} catch (error: any) {
- setProfile((prev) => ({ ...(prev || {} as any), ...updates } as any));
+ setProfile((prev) => ({ ...(prev || ({} as any)), ...updates }) as any);
aethexToast.error({
title: "Update failed",
description: error.message,
diff --git a/client/lib/aethex-database-adapter.ts b/client/lib/aethex-database-adapter.ts
index 5ac1f5d4..b720c63e 100644
--- a/client/lib/aethex-database-adapter.ts
+++ b/client/lib/aethex-database-adapter.ts
@@ -81,13 +81,17 @@ export const aethexUserService = {
// If table missing, fall back to mock for local dev only
if (isTableMissing(error)) {
const mock = await mockAuth.getUserProfile(user.id as any);
- if (mock) return { ...(mock as any), email: user.email } as AethexUserProfile;
- const created = await mockAuth.updateProfile(user.id as any, {
- username: user.email?.split("@")[0] || "user",
- email: user.email || "",
- role: "member",
- onboarded: true,
- } as any);
+ if (mock)
+ return { ...(mock as any), email: user.email } as AethexUserProfile;
+ const created = await mockAuth.updateProfile(
+ user.id as any,
+ {
+ username: user.email?.split("@")[0] || "user",
+ email: user.email || "",
+ role: "member",
+ onboarded: true,
+ } as any,
+ );
return { ...(created as any), email: user.email } as AethexUserProfile;
}
// If no row, create initial DB profile instead of mock
@@ -132,13 +136,19 @@ export const aethexUserService = {
if (error) {
if (isTableMissing(error)) {
- const mock = await mockAuth.updateProfile(userId as any, updates as any);
+ const mock = await mockAuth.updateProfile(
+ userId as any,
+ updates as any,
+ );
return mock as unknown as AethexUserProfile;
}
if ((error as any)?.code === "PGRST116") {
const { data: upserted, error: upsertError } = await supabase
.from("user_profiles")
- .upsert({ id: userId, user_type: "community_member", ...updates } as any, { onConflict: "id" })
+ .upsert(
+ { id: userId, user_type: "community_member", ...updates } as any,
+ { onConflict: "id" },
+ )
.select()
.single();
if (upsertError) throw upsertError;
diff --git a/client/pages/About.tsx b/client/pages/About.tsx
index adbc1783..f79cb420 100644
--- a/client/pages/About.tsx
+++ b/client/pages/About.tsx
@@ -1,20 +1,59 @@
import Layout from "@/components/Layout";
-import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card";
+import {
+ Card,
+ CardContent,
+ CardHeader,
+ CardTitle,
+ CardDescription,
+} from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Rocket, Cpu, Users, Shield, Zap, GitBranch } from "lucide-react";
export default function About() {
const values = [
- { icon: , title: "Integrity", desc: "Transparent processes, honest communication, dependable delivery." },
- { icon: , title: "Excellence", desc: "Relentless attention to quality, performance, and user experience." },
- { icon: , title: "Partnership", desc: "We win with our customers, not at their expense." },
+ {
+ icon: ,
+ title: "Integrity",
+ desc: "Transparent processes, honest communication, dependable delivery.",
+ },
+ {
+ icon: ,
+ title: "Excellence",
+ desc: "Relentless attention to quality, performance, and user experience.",
+ },
+ {
+ icon: ,
+ title: "Partnership",
+ desc: "We win with our customers, not at their expense.",
+ },
];
const capabilities = [
- { title: "Product Engineering", points: ["Web & Mobile Apps", "Realtime & AI Systems", "3D & Game Experiences"] },
- { title: "Platform & Infra", points: ["Cloud-native Architecture", "DevOps & Observability", "Security & Compliance"] },
- { title: "Advisory & Enablement", points: ["Technical Strategy", "Codebase Modernization", "Team Upskilling"] },
+ {
+ title: "Product Engineering",
+ points: [
+ "Web & Mobile Apps",
+ "Realtime & AI Systems",
+ "3D & Game Experiences",
+ ],
+ },
+ {
+ title: "Platform & Infra",
+ points: [
+ "Cloud-native Architecture",
+ "DevOps & Observability",
+ "Security & Compliance",
+ ],
+ },
+ {
+ title: "Advisory & Enablement",
+ points: [
+ "Technical Strategy",
+ "Codebase Modernization",
+ "Team Upskilling",
+ ],
+ },
];
const milestones = [
@@ -30,9 +69,13 @@ export default function About() {
-
About AeThex
+
+ About AeThex
+
- We craft reliable, scalable software—shipping fast without compromising quality. From prototypes to global platforms, we partner end-to-end: strategy, design, engineering, and growth.
+ We craft reliable, scalable software—shipping fast without
+ compromising quality. From prototypes to global platforms, we
+ partner end-to-end: strategy, design, engineering, and growth.