Clean up admin hub UX: tabs, chrome, and redundant headers.
Local Build and Deploy / deploy (push) Failing after 53s

Wire orphan routes into hub tabs, group Radio into primary/tools rows, show theme/language once on desktop, and remove duplicate page titles under AdminHubChrome.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-17 18:01:01 +02:00
1 parent 378705dd73
commit d2c0619f2f
75 files changed
+244 -915

No files matched your search

@@ -1,6 +1,6 @@
"use client";
import { Download, Gamepad2, Info, Lock, Save } from "lucide-react";
import { Download, Info, Lock, Save } from "lucide-react";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import { useEffect, useMemo, useState } from "react";
import { toast } from "sonner";
@@ -100,11 +100,7 @@ export function ClientTranslations({
return (
<div className="space-y-4">
<div className="flex items-center justify-between flex-wrap gap-2">
<h1 className="text-2xl font-bold flex items-center gap-2">
<Gamepad2 className="w-6 h-6" />
Client (Nitro)
</h1>
<div className="flex justify-end flex-wrap gap-2">
<div className="flex gap-2">
<Button variant="outline" size="sm" onClick={handleExport}>
<Download className="w-4 h-4 mr-1" /> Export
+2 -9
View File
@@ -1,4 +1,4 @@
import { ExternalLink, Server } from "lucide-react";
import { ExternalLink } from "lucide-react";
import Link from "next/link";
import { getTranslations } from "next-intl/server";
import { EmulatorSettingsForm } from "@/components/admin/emulator-settings-form";
@@ -74,14 +74,7 @@ export default async function EmulatorTranslationsPage({
return (
<div className="space-y-4">
<div className="flex items-start justify-between flex-wrap gap-2">
<div>
<h1 className="text-2xl font-bold flex items-center gap-2">
<Server className="w-6 h-6" />
{t("title")}
</h1>
<p className="text-sm text-muted-foreground">{t("subtitle")}</p>
</div>
<div className="flex justify-end">
<Button asChild variant="outline" size="sm">
<Link href="/admin/emulator">
<ExternalLink className="w-4 h-4 mr-1" />
@@ -1,6 +1,6 @@
"use client";
import { Download, Globe, Save } from "lucide-react";
import { Download, Save } from "lucide-react";
import { useMemo, useState } from "react";
import { saveTranslations } from "@/actions/translations";
import { Button } from "@/components/ui/button";
@@ -138,11 +138,7 @@ export function TranslationsClient({ localeContents }: Props) {
return (
<div className="space-y-6">
<div className="flex items-center justify-between">
<h1 className="text-2xl font-bold flex items-center gap-2">
<Globe className="w-6 h-6" />
CMS
</h1>
<div className="flex justify-end">
<div className="flex gap-2">
<Button variant="outline" size="sm" onClick={handleExport}>
<Download className="w-4 h-4 mr-1" /> Export