finalizing app adn fixes

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-25 22:58:21 +00:00
parent 4bffede052
commit 91525b8999
19 changed files with 2498 additions and 555 deletions

View File

@@ -19,8 +19,6 @@ import {
UserCircleIcon,
} from "../icons";
import { useSidebar } from "../context/SidebarContext";
import SidebarWidget from "./SidebarWidget";
import { APP_VERSION } from "../config/version";
import { useAuthStore } from "../store/authStore";
import { useSettingsStore } from "../store/settingsStore";
import { useModuleStore } from "../store/moduleStore";
@@ -66,26 +64,32 @@ const AppSidebar: React.FC = () => {
const setupItems: NavItem[] = [
{
icon: <DocsIcon />,
name: "Find Keywords",
name: "Add Keywords",
path: "/setup/add-keywords",
},
{
icon: <PageIcon />,
name: "Content Settings",
path: "/account/content-settings",
},
];
// Add Sites (Site Builder) if enabled
if (isModuleEnabled('site_builder')) {
setupItems.push({
icon: <GridIcon />,
name: "Your Websites",
name: "Sites",
path: "/sites", // Submenus shown as in-page navigation
});
}
// Add Thinker if enabled
// Add Thinker if enabled (admin only - prompts and AI settings)
if (isModuleEnabled('thinker')) {
setupItems.push({
icon: <BoltIcon />,
name: "AI Writer Setup",
name: "Thinker",
path: "/thinker/prompts", // Default to prompts, submenus shown as in-page navigation
adminOnly: true, // Only visible to admin/staff users
});
}
@@ -96,7 +100,7 @@ const AppSidebar: React.FC = () => {
if (isModuleEnabled('planner')) {
workflowItems.push({
icon: <ListIcon />,
name: "Organize Keywords",
name: "Planner",
path: "/planner/keywords", // Default to keywords, submenus shown as in-page navigation
});
}
@@ -105,7 +109,7 @@ const AppSidebar: React.FC = () => {
if (isModuleEnabled('writer')) {
workflowItems.push({
icon: <TaskIcon />,
name: "Write Articles",
name: "Writer",
path: "/writer/tasks", // Default to tasks, submenus shown as in-page navigation
});
}
@@ -114,7 +118,7 @@ const AppSidebar: React.FC = () => {
if (isModuleEnabled('automation')) {
workflowItems.push({
icon: <BoltIcon />,
name: "Automate Everything",
name: "Automation",
path: "/automation",
});
}
@@ -150,26 +154,21 @@ const AppSidebar: React.FC = () => {
],
},
{
label: "GET STARTED",
label: "SETUP",
items: setupItems,
},
{
label: "CREATE CONTENT",
label: "WORKFLOW",
items: workflowItems,
},
{
label: "MANAGE ACCOUNT",
label: "ACCOUNT",
items: [
{
icon: <UserCircleIcon />,
name: "Account Settings",
path: "/account/settings",
},
{
icon: <UserIcon />,
name: "Team Management",
path: "/account/team",
},
{
icon: <DollarLineIcon />,
name: "Plans & Billing",
@@ -177,42 +176,23 @@ const AppSidebar: React.FC = () => {
},
{
icon: <PieChartIcon />,
name: "Usage & Analytics",
name: "Usage",
path: "/account/usage",
},
],
},
{
label: "CONFIGURATION",
items: [
{
icon: <UserCircleIcon />,
name: "Profile Settings",
path: "/settings/profile",
},
{
icon: <PlugInIcon />,
name: "AI Model Settings",
name: "AI Models",
path: "/settings/integration",
},
{
icon: <PageIcon />,
name: "Publishing",
path: "/settings/publishing",
},
{
icon: <FileIcon />,
name: "Import / Export",
path: "/settings/import-export",
adminOnly: true, // Only visible to admin/staff users
},
],
},
{
label: "HELP & LEARNING",
label: "HELP",
items: [
{
icon: <DocsIcon />,
name: "Help Center",
name: "Help & Docs",
path: "/help",
},
],
@@ -303,7 +283,7 @@ const AppSidebar: React.FC = () => {
};
const renderMenuItems = (items: NavItem[], sectionIndex: number) => (
<ul className="flex flex-col gap-2">
<ul className="flex flex-col gap-0.5">
{items
.filter((nav) => {
// Filter out admin-only items for non-admin users
@@ -450,9 +430,7 @@ const AppSidebar: React.FC = () => {
onMouseEnter={() => !isExpanded && setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
>
<div
className={`py-8 flex flex-col justify-center items-center gap-3`}
>
<div className="py-4 flex justify-center items-center">
<Link to="/" className="flex justify-center items-center">
{isExpanded || isHovered || isMobileOpen ? (
<>
@@ -480,23 +458,15 @@ const AppSidebar: React.FC = () => {
/>
)}
</Link>
{/* Version Badge - Only show when sidebar is expanded */}
{(isExpanded || isHovered || isMobileOpen) && (
<div className="flex justify-center items-center">
<span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-900 dark:bg-gray-700 text-gray-100 dark:text-gray-300">
v{APP_VERSION}
</span>
</div>
)}
</div>
<div className="flex flex-col overflow-y-auto duration-300 ease-linear no-scrollbar">
<nav className="mb-6">
<div className="flex flex-col gap-2">
<nav>
<div className="flex flex-col gap-1">
{allSections.map((section, sectionIndex) => (
<div key={section.label || `section-${sectionIndex}`}>
<div key={section.label || `section-${sectionIndex}`} className={section.label ? "mt-4" : ""}>
{section.label && (
<h2
className={`mb-4 text-xs uppercase flex leading-[20px] text-gray-400 ${
className={`mb-2 text-xs font-medium uppercase flex leading-[20px] text-gray-500 dark:text-gray-400 ${
!isExpanded && !isHovered
? "lg:justify-center"
: "justify-start"
@@ -514,7 +484,6 @@ const AppSidebar: React.FC = () => {
))}
</div>
</nav>
{isExpanded || isHovered || isMobileOpen ? <SidebarWidget /> : null}
</div>
</aside>
);