feat(frontend): draft/publish, certificate approval UI, contributors, leaderboard tiers
- admin-studio: chapter/lesson publish toggle with Draft/Published badges; per-chapter accordion - cap/page: remove auto-issue effect; student requests, admin approves - learning-panel: admin issue-certificate action per student - site-settings: contributors editor with avatar upload (ContributorAvatarPicker, TagInput) - community-panel: render contributors section below social links - leaderboard-panel: TierBadge, totalParticipants, tier on entries and self - page.tsx: fix "شروع مسیر" routing to /register instead of /login - navbar: correct icons (Settings, Palette) in user dropdown - types: Contributor, LeaderboardTier, Certificate status field, updated LeaderboardData/Entry - layout: PWA icon metadata (192, 512, apple-touch-icon)
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
import Link from "next/link";
|
||||
import { usePathname, useRouter } from "next/navigation";
|
||||
import { Flame, Heart, LogOut, Sparkles, User, UserCog } from "lucide-react";
|
||||
import { Flame, Heart, LogOut, Palette, Settings, Sparkles, User, UserCog } from "lucide-react";
|
||||
import { NotificationBell } from "@/components/notification-bell";
|
||||
import { ThemeToggle } from "@/components/theme-toggle";
|
||||
import { BrandMark } from "@/components/brand-mark";
|
||||
@@ -28,7 +28,6 @@ import {
|
||||
} from "@/components/ui/dropdown-menu";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { cn, formatFaNumber } from "@/lib/utils";
|
||||
import { GlobalSearch } from "@/components/global-search";
|
||||
import { isVerifiedRole, VerifiedBadge } from "@/components/verified-badge";
|
||||
|
||||
const navLinks = [
|
||||
@@ -65,7 +64,6 @@ export function Navbar() {
|
||||
<BrandMark />
|
||||
</Link>
|
||||
<div className="flex items-center gap-2">
|
||||
<GlobalSearch />
|
||||
<ThemeToggle />
|
||||
{pathname !== "/login" && (
|
||||
<Button asChild size="sm" className="font-bold">
|
||||
@@ -188,10 +186,10 @@ export function Navbar() {
|
||||
<User /> پروفایل من
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => router.push("/settings")}>
|
||||
<User /> تنظیمات
|
||||
<Settings /> تنظیمات
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onSelect={() => setStudioOpen(true)}>
|
||||
<User /> ویرایش آواتار
|
||||
<Palette /> ویرایش آواتار
|
||||
</DropdownMenuItem>
|
||||
{liveUser.role === "admin" && (
|
||||
<DropdownMenuItem onClick={() => router.push("/admin")}>
|
||||
|
||||
Reference in New Issue
Block a user