ui frotneedn fixes

This commit is contained in:
IGNY8 VPS (Salman)
2025-11-26 06:47:23 +00:00
parent 451594bd29
commit 4fe68cc271
40 changed files with 1638 additions and 275 deletions

View File

@@ -127,6 +127,7 @@ export default function AutomationRules() {
icon: <BoltIcon />,
color: 'purple',
}}
navigation={<ModuleNavigationTabs tabs={automationTabs} />}
/>
<div className="flex items-center justify-between">

View File

@@ -113,8 +113,8 @@ export default function AutomationTasks() {
icon: <ClockIcon />,
color: 'blue',
}}
navigation={<ModuleNavigationTabs tabs={automationTabs} />}
/>
<ModuleNavigationTabs tabs={automationTabs} />
<div className="flex items-center gap-4">
<div className="flex-1">

View File

@@ -104,10 +104,10 @@ export default function LinkerContentList() {
<PageHeader
title="Link Content"
description="Add internal links to your content"
navigation={<ModuleNavigationTabs tabs={[
{ label: 'Content', path: '/linker/content', icon: <FileIcon /> },
]} />}
/>
<ModuleNavigationTabs tabs={[
{ label: 'Content', path: '/linker/content', icon: <FileIcon /> },
]} />
{loading ? (
<div className="text-center py-12">

View File

@@ -148,10 +148,10 @@ export default function OptimizerContentSelector() {
icon: <BoltIcon />,
color: 'orange',
}}
navigation={<ModuleNavigationTabs tabs={[
{ label: 'Content', path: '/optimizer/content', icon: <FileIcon /> },
]} />}
/>
<ModuleNavigationTabs tabs={[
{ label: 'Content', path: '/optimizer/content', icon: <FileIcon /> },
]} />
<div className="flex items-center justify-between mb-6">
<div className="flex items-center gap-4">
<select

View File

@@ -396,8 +396,8 @@ export default function Clusters() {
<PageHeader
title="Keyword Clusters"
badge={{ icon: <GroupIcon />, color: 'purple' }}
navigation={<ModuleNavigationTabs tabs={plannerTabs} />}
/>
<ModuleNavigationTabs tabs={plannerTabs} />
<TablePageTemplate
columns={pageConfig.columns}
data={clusters}

View File

@@ -306,8 +306,8 @@ export default function Ideas() {
<PageHeader
title="Content Ideas"
badge={{ icon: <BoltIcon />, color: 'orange' }}
navigation={<ModuleNavigationTabs tabs={plannerTabs} />}
/>
<ModuleNavigationTabs tabs={plannerTabs} />
<TablePageTemplate
columns={pageConfig.columns}
data={ideas}

View File

@@ -764,8 +764,8 @@ export default function Keywords() {
<PageHeader
title="Keywords"
badge={{ icon: <ListIcon />, color: 'green' }}
navigation={<ModuleNavigationTabs tabs={plannerTabs} />}
/>
<ModuleNavigationTabs tabs={plannerTabs} />
<TablePageTemplate
columns={pageConfig.columns}
data={keywords}

View File

@@ -1062,7 +1062,6 @@ export default function Integration() {
/>
</div>
</div>
{/* Image Generation Testing Cards - 50/50 Split */}
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
<ImageGenerationCard
@@ -1141,7 +1140,7 @@ export default function Integration() {
<div className="flex justify-between items-center pt-4">
<Button
type="button"
variant="secondary"
variant="outline"
onClick={() => {
handleTestConnection();
}}
@@ -1153,7 +1152,7 @@ export default function Integration() {
<div className="flex gap-3">
<Button
type="button"
variant="outline"
variant="ghost"
onClick={() => setShowSettingsModal(false)}
disabled={isSaving || isTesting}
>

View File

@@ -11,6 +11,7 @@
import { useState, useEffect, useCallback, useMemo } from 'react';
import PageMeta from '../../components/common/PageMeta';
import PageHeader from '../../components/common/PageHeader';
import ModuleNavigationTabs from '../../components/navigation/ModuleNavigationTabs';
import { useToast } from '../../components/ui/toast/ToastContainer';
import {
fetchIndustries,
@@ -252,6 +253,13 @@ export default function IndustriesSectorsKeywords() {
setCurrentPage(1);
};
// Navigation tabs for Industries/Sectors/Keywords
const setupTabs = [
{ label: 'Industries', path: '#industries', icon: <PieChartIcon className="w-4 h-4" /> },
{ label: 'Sectors', path: '#sectors', icon: <CheckCircleIcon className="w-4 h-4" /> },
{ label: 'Keywords', path: '#keywords', icon: <BoltIcon className="w-4 h-4" /> },
];
// Handle sector toggle
const handleSectorToggle = (sectorSlug: string) => {
setSelectedSectors(prev =>
@@ -381,6 +389,7 @@ export default function IndustriesSectorsKeywords() {
title="Industries, Sectors & Keywords"
badge={{ icon: <PieChartIcon />, color: 'blue' }}
hideSiteSector={true}
navigation={<ModuleNavigationTabs tabs={setupTabs} />}
/>
<div className="p-6">

View File

@@ -130,8 +130,7 @@ export default function SiteContentManager() {
hideSiteSector
/>
<div className="mb-6 flex justify-end">
<Button onClick={() => navigate(`/sites/${siteId}/posts/new`)} variant="primary">
<PlusIcon className="w-4 h-4 mr-2" />
<Button onClick={() => navigate(`/sites/${siteId}/posts/new`)} variant="primary" startIcon={<PlusIcon className="w-4 h-4" />}>
New Post
</Button>
</div>

View File

@@ -7,6 +7,7 @@ import React, { useState, useEffect } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import PageMeta from '../../components/common/PageMeta';
import PageHeader from '../../components/common/PageHeader';
import ComponentCard from '../../components/common/ComponentCard';
import { Card } from '../../components/ui/card';
import Button from '../../components/ui/button/Button';
import EnhancedMetricCard from '../../components/dashboard/EnhancedMetricCard';
@@ -204,8 +205,8 @@ export default function SiteDashboard() {
<Button
variant="outline"
onClick={() => navigate(`/sites/${siteId}/preview`)}
startIcon={<EyeIcon className="w-4 h-4" />}
>
<EyeIcon className="w-4 h-4 mr-2" />
Preview
</Button>
<Button
@@ -245,11 +246,8 @@ export default function SiteDashboard() {
</div>
{/* Quick Actions - Matching Planner Dashboard pattern */}
<div className="mb-6">
<h2 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">
Quick Actions
</h2>
{/* Quick Actions */}
<ComponentCard title="Quick Actions" desc="Common site management tasks">
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<button
onClick={() => navigate(`/sites/${siteId}/pages`)}
@@ -321,7 +319,7 @@ export default function SiteDashboard() {
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-primary)] transition" />
</button>
</div>
</div>
</ComponentCard>
{/* Recent Activity */}
<Card className="p-6">

View File

@@ -389,8 +389,8 @@ export default function DeploymentPanel() {
<Button
variant="outline"
onClick={() => loadReadiness(selectedBlueprintId!)}
startIcon={<BoltIcon className="w-4 h-4" />}
>
<BoltIcon className="w-4 h-4 mr-2" />
Refresh Checks
</Button>
<Button

View File

@@ -571,43 +571,39 @@ export default function SiteList() {
<div className="border-t border-gray-200 p-5 dark:border-gray-800">
<div className="grid grid-cols-3 gap-2 mb-3">
<Button
variant="outline"
size="sm"
onClick={() => navigate(`/sites/${site.id}`)}
className="w-full justify-center text-xs"
variant="primary"
size="sm"
startIcon={<EyeIcon className="w-4 h-4" />}
>
<EyeIcon className="w-3 h-3 mr-1" />
Dashboard
</Button>
<Button
variant="outline"
size="sm"
onClick={() => navigate(`/sites/${site.id}/content`)}
className="w-full justify-center text-xs"
variant="secondary"
size="sm"
startIcon={<FileIcon className="w-4 h-4" />}
>
<FileIcon className="w-3 h-3 mr-1" />
Content
</Button>
<Button
onClick={() => navigate(`/sites/${site.id}/pages`)}
variant="outline"
size="sm"
onClick={() => navigate(`/sites/${site.id}/pages`)}
className="w-full justify-center text-xs"
startIcon={<PageIcon className="w-4 h-4" />}
>
<PageIcon className="w-3 h-3 mr-1" />
Pages
</Button>
</div>
<div className="flex items-center justify-between">
<div className="flex gap-2">
<Button
onClick={() => navigate(`/sites/${site.id}/settings`)}
variant="outline"
size="sm"
onClick={() => navigate(`/sites/${site.id}/settings`)}
title="Site Settings"
startIcon={<PlugInIcon className="w-4 h-4" />}
>
<PlugInIcon className="w-4 h-4 mr-1" />
<span className="text-xs">Settings</span>
Settings
</Button>
</div>
<Switch
@@ -649,11 +645,9 @@ export default function SiteList() {
title="Sites Management"
badge={{ icon: <GridIcon />, color: 'blue' }}
hideSiteSector={true}
navigation={<ModuleNavigationTabs tabs={sitesTabs} />}
/>
{/* In-page navigation tabs */}
<ModuleNavigationTabs tabs={sitesTabs} />
{/* Info Alert */}
<div className="mb-6">
<Alert
@@ -667,39 +661,29 @@ export default function SiteList() {
<div className="flex items-center justify-between mb-6">
<div className="flex-1"></div>
<div className="flex items-center gap-3">
<Button onClick={() => navigate('/sites/builder')} variant="outline">
<PlusIcon className="w-4 h-4 mr-2" />
<Button onClick={() => navigate('/sites/builder')} variant="outline" startIcon={<PlusIcon className="w-4 h-4" />}>
Create with Builder
</Button>
<Button onClick={handleCreateSite} variant="primary">
<PlusIcon className="w-4 h-4 mr-2" />
<Button onClick={handleCreateSite} variant="primary" startIcon={<PlusIcon className="w-4 h-4" />}>
Add Site
</Button>
<div className="flex items-center gap-2">
<button
<Button
onClick={() => setViewType('table')}
className={`inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${
viewType === 'table'
? 'bg-white text-gray-900 dark:bg-gray-800 dark:text-white shadow-sm border border-gray-200 dark:border-gray-700'
: 'text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white'
}`}
title="Table View"
variant={viewType === 'table' ? 'secondary' : 'ghost'}
size="sm"
startIcon={<TableIcon className="w-4 h-4" />}
>
<TableIcon className="w-4 h-4" />
<span className="hidden sm:inline">Table</span>
</button>
<button
</Button>
<Button
onClick={() => setViewType('grid')}
className={`inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${
viewType === 'grid'
? 'bg-white text-gray-900 dark:bg-gray-800 dark:text-white shadow-sm border border-gray-200 dark:border-gray-700'
: 'text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white'
}`}
title="Grid View"
variant={viewType === 'grid' ? 'secondary' : 'ghost'}
size="sm"
startIcon={<GridIcon className="w-4 h-4" />}
>
<GridIcon className="w-4 h-4" />
<span className="hidden sm:inline">Grid</span>
</button>
</Button>
</div>
</div>
</div>

View File

@@ -127,8 +127,7 @@ export default function SiteManagement() {
Manage your sites, pages, and content
</p>
</div>
<Button onClick={handleCreateSite} variant="primary">
<PlusIcon className="w-4 h-4 mr-2" />
<Button onClick={handleCreateSite} variant="primary" startIcon={<PlusIcon className="w-4 h-4" />}>
Create New Site
</Button>
</div>
@@ -182,8 +181,8 @@ export default function SiteManagement() {
size="sm"
onClick={() => handleIntegration(site.id)}
className="w-full"
startIcon={<PlugIcon className="w-4 h-4" />}
>
<PlugIcon className="w-4 h-4 mr-2" />
{site.has_wordpress_integration ? 'Manage Integration' : 'Connect WordPress'}
</Button>
</div>

View File

@@ -286,8 +286,7 @@ export default function PageManager() {
hideSiteSector
/>
<div className="mb-6 flex justify-end">
<Button onClick={handleAddPage} variant="primary">
<PlusIcon className="w-4 h-4 mr-2" />
<Button onClick={handleAddPage} variant="primary" startIcon={<PlusIcon className="w-4 h-4" />}>
Add Page
</Button>
</div>

View File

@@ -247,8 +247,8 @@ export default function PostEditor() {
<Button
variant="outline"
onClick={() => navigate(`/sites/${siteId}/content`)}
startIcon={<XIcon className="w-4 h-4" />}
>
<XIcon className="w-4 h-4 mr-2" />
Cancel
</Button>
<Button
@@ -256,8 +256,8 @@ export default function PostEditor() {
onClick={handleSave}
disabled={saving || (content.status === 'publish' && validationResult && !validationResult.is_valid)}
title={content.status === 'publish' && validationResult && !validationResult.is_valid ? 'Please fix validation errors before publishing' : undefined}
startIcon={<SaveIcon className="w-4 h-4" />}
>
<SaveIcon className="w-4 h-4 mr-2" />
{saving ? 'Saving...' : content.status === 'publish' ? 'Publish' : 'Save Post'}
</Button>
</div>

View File

@@ -179,16 +179,13 @@ export default function SitePreview() {
</p>
</div>
<div className="flex gap-2">
<Button variant="outline" onClick={handleRefresh}>
<RefreshCwIcon className="w-4 h-4 mr-2" />
<Button variant="outline" onClick={handleRefresh} startIcon={<RefreshCwIcon className="w-4 h-4" />}>
Refresh
</Button>
<Button variant="outline" onClick={handleOpenInNewTab}>
<ExternalLinkIcon className="w-4 h-4 mr-2" />
<Button variant="outline" onClick={handleOpenInNewTab} startIcon={<ExternalLinkIcon className="w-4 h-4" />}>
Open in New Tab
</Button>
<Button variant="outline" onClick={() => setIsFullscreen(true)}>
<Maximize2Icon className="w-4 h-4 mr-2" />
<Button variant="outline" onClick={() => setIsFullscreen(true)} startIcon={<Maximize2Icon className="w-4 h-4" />}>
Fullscreen
</Button>
</div>
@@ -197,8 +194,7 @@ export default function SitePreview() {
{isFullscreen && (
<div className="absolute top-4 right-4 z-10">
<Button variant="outline" onClick={() => setIsFullscreen(false)}>
<Minimize2Icon className="w-4 h-4 mr-2" />
<Button variant="outline" onClick={() => setIsFullscreen(false)} startIcon={<Minimize2Icon className="w-4 h-4" />}>
Exit Fullscreen
</Button>
</div>

View File

@@ -400,8 +400,8 @@ export default function SyncDashboard() {
size="sm"
onClick={() => handleSync('both')}
disabled={syncing}
startIcon={<BoltIcon className="w-4 h-4" />}
>
<BoltIcon className="w-4 h-4 mr-2" />
Retry Sync to Resolve
</Button>
</div>

View File

@@ -113,8 +113,8 @@ export default function AuthorProfiles() {
<PageHeader
title="Author Profiles"
badge={{ icon: <UserIcon />, color: 'blue' }}
navigation={<ModuleNavigationTabs tabs={thinkerTabs} />}
/>
<ModuleNavigationTabs tabs={thinkerTabs} />
<div className="mb-6 flex justify-between items-center">
<Button onClick={handleCreate} variant="primary">
<PlusIcon className="w-4 h-4 mr-2" />

View File

@@ -260,47 +260,56 @@ export default function ThinkerDashboard() {
{/* Quick Actions */}
<ComponentCard title="Quick Actions" desc="Create new prompts, profiles, or strategies">
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<button
<Button
onClick={() => navigate("/thinker/prompts")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--color-warning)] hover:shadow-lg transition-all group"
variant="outline"
size="lg"
startIcon={
<div className="size-8 rounded-lg bg-gradient-to-br from-[var(--color-warning)] to-[var(--color-warning-dark)] flex items-center justify-center text-white shadow-md">
<PlusIcon className="h-4 w-4" />
</div>
}
className="!justify-start !h-auto !py-4"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-warning)] to-[var(--color-warning-dark)] flex items-center justify-center text-white shadow-lg">
<PlusIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">New Prompt</h4>
<p className="text-sm text-slate-600">Create a reusable prompt template</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#ff7a00] transition" />
</button>
</Button>
<button
<Button
onClick={() => navigate("/thinker/profiles")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#0693e3] hover:shadow-lg transition-all group"
variant="outline"
size="lg"
startIcon={
<div className="size-8 rounded-lg bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-primary-dark)] flex items-center justify-center text-white shadow-md">
<PlusIcon className="h-4 w-4" />
</div>
}
className="!justify-start !h-auto !py-4"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-primary-dark)] flex items-center justify-center text-white shadow-lg">
<PlusIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">New Author Profile</h4>
<p className="text-sm text-slate-600">Define a writing voice and style</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-primary)] transition" />
</button>
</Button>
<button
<Button
onClick={() => navigate("/thinker/strategies")}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[#5d4ae3] hover:shadow-lg transition-all group"
variant="outline"
size="lg"
startIcon={
<div className="size-8 rounded-lg bg-gradient-to-br from-[var(--color-purple)] to-[var(--color-purple-dark)] flex items-center justify-center text-white shadow-md">
<PlusIcon className="h-4 w-4" />
</div>
}
className="!justify-start !h-auto !py-4"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-purple)] to-[var(--color-purple-dark)] flex items-center justify-center text-white shadow-lg">
<PlusIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">New Strategy</h4>
<p className="text-sm text-slate-600">Build a content playbook</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[#5d4ae3] transition" />
</button>
</Button>
</div>
</ComponentCard>

View File

@@ -19,8 +19,8 @@ export default function ImageTesting() {
<PageHeader
title="Image Testing"
badge={{ icon: <ImageIcon />, color: 'indigo' }}
navigation={<ModuleNavigationTabs tabs={thinkerTabs} />}
/>
<ModuleNavigationTabs tabs={thinkerTabs} />
<ComponentCard title="Coming Soon" desc="AI image testing">
<div className="text-center py-8">
<p className="text-gray-600 dark:text-gray-400">

View File

@@ -213,8 +213,8 @@ export default function Prompts() {
<PageHeader
title="AI Prompts Management"
badge={{ icon: <BoltIcon />, color: 'orange' }}
navigation={<ModuleNavigationTabs tabs={thinkerTabs} />}
/>
<ModuleNavigationTabs tabs={thinkerTabs} />
<div className="p-6">
{/* Planner Prompts Section */}
@@ -265,16 +265,7 @@ export default function Prompts() {
placeholder="Enter prompt template..."
className="font-mono-custom text-sm"
/>
<div className="flex gap-3 mt-4">
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
className="flex-1"
variant="solid"
color="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
<div className="flex justify-end gap-3 mt-4">
<Button
onClick={() => handleReset(type.key)}
disabled={saving[type.key]}
@@ -282,6 +273,13 @@ export default function Prompts() {
>
Reset to Default
</Button>
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
variant="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
</div>
</div>
</div>
@@ -337,16 +335,7 @@ export default function Prompts() {
placeholder="Enter prompt template..."
className="font-mono-custom text-sm"
/>
<div className="flex gap-3 mt-4">
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
className="flex-1"
variant="solid"
color="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
<div className="flex justify-end gap-3 mt-4">
<Button
onClick={() => handleReset(type.key)}
disabled={saving[type.key]}
@@ -354,6 +343,13 @@ export default function Prompts() {
>
Reset to Default
</Button>
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
variant="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
</div>
</div>
</div>
@@ -409,16 +405,7 @@ export default function Prompts() {
placeholder="Enter prompt template..."
className="font-mono-custom text-sm"
/>
<div className="flex gap-3 mt-4">
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
className="flex-1"
variant="solid"
color="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
<div className="flex justify-end gap-3 mt-4">
{type.key === 'image_prompt_template' && (
<Button
onClick={() => handleReset(type.key)}
@@ -428,6 +415,13 @@ export default function Prompts() {
Reset to Default
</Button>
)}
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
variant="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
</div>
</div>
</div>
@@ -492,16 +486,7 @@ export default function Prompts() {
placeholder="Enter prompt template for site structure generation..."
className="font-mono-custom text-sm"
/>
<div className="flex gap-3 mt-4">
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
className="flex-1"
variant="solid"
color="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
<div className="flex justify-end gap-3 mt-4">
<Button
onClick={() => handleReset(type.key)}
disabled={saving[type.key]}
@@ -509,6 +494,13 @@ export default function Prompts() {
>
Reset to Default
</Button>
<Button
onClick={() => handleSave(type.key)}
disabled={saving[type.key]}
variant="primary"
>
{saving[type.key] ? 'Saving...' : 'Save Prompt'}
</Button>
</div>
</div>
</div>

View File

@@ -19,8 +19,8 @@ export default function Strategies() {
<PageHeader
title="Content Strategies"
badge={{ icon: <ShootingStarIcon />, color: 'purple' }}
navigation={<ModuleNavigationTabs tabs={thinkerTabs} />}
/>
<ModuleNavigationTabs tabs={thinkerTabs} />
<ComponentCard title="Coming Soon" desc="Content strategies">
<div className="text-center py-8">
<p className="text-gray-600 dark:text-gray-400">

View File

@@ -246,8 +246,8 @@ export default function Content() {
<PageHeader
title="Content"
badge={{ icon: <FileIcon />, color: 'purple' }}
navigation={<ModuleNavigationTabs tabs={writerTabs} />}
/>
<ModuleNavigationTabs tabs={writerTabs} />
<TablePageTemplate
columns={pageConfig.columns}
data={content}

View File

@@ -474,8 +474,8 @@ export default function Images() {
<PageHeader
title="Content Images"
badge={{ icon: <FileIcon />, color: 'orange' }}
navigation={<ModuleNavigationTabs tabs={writerTabs} />}
/>
<ModuleNavigationTabs tabs={writerTabs} />
<TablePageTemplate
columns={pageConfig.columns}
data={images}

View File

@@ -571,8 +571,8 @@ export default function Tasks() {
<PageHeader
title="Tasks"
badge={{ icon: <TaskIcon />, color: 'indigo' }}
navigation={<ModuleNavigationTabs tabs={writerTabs} />}
/>
<ModuleNavigationTabs tabs={writerTabs} />
<TablePageTemplate
columns={pageConfig.columns}
data={tasks}