Revert "test if works or revert"

This reverts commit e9e0de40d0.
This commit is contained in:
alorig
2025-11-29 11:24:35 +05:00
parent e9e0de40d0
commit 341650bddc
10 changed files with 85 additions and 422 deletions

View File

@@ -16,10 +16,7 @@
*/
import React, { useEffect, useMemo, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { Content, fetchImages, ImageRecord, publishContent, generateImagePrompts } from '../services/api';
import { useToast } from '../components/ui/toast/ToastContainer';
import { useFeatureFlag } from '../hooks/useFeatureFlag';
import { Content, fetchImages, ImageRecord } from '../services/api';
import { ArrowLeftIcon, CalendarIcon, TagIcon, FileTextIcon, CheckCircleIcon, XCircleIcon, ClockIcon } from '../icons';
interface ContentViewTemplateProps {
@@ -594,59 +591,6 @@ export default function ContentViewTemplate({ content, loading, onBack }: Conten
const shouldShowFeaturedBlock = imagesLoading || Boolean(resolvedFeaturedImage);
const navigate = useNavigate();
const toast = useToast();
const [publishing, setPublishing] = useState(false);
const [generatingImages, setGeneratingImages] = useState(false);
const featureEnabled = useFeatureFlag('feature.content_manager_refactor');
const handleEditContent = () => {
const siteId = content?.site ?? content?.site_id ?? null;
if (!siteId || !content?.id) {
toast.error('Site or content id missing');
return;
}
navigate(`/sites/${siteId}/posts/${content.id}/edit`);
};
const handleGenerateImages = async () => {
if (!content?.id) return;
try {
setGeneratingImages(true);
const result = await generateImagePrompts([content.id]);
if (result && result.success) {
toast.success('Image generation started');
// If async task_id returned, open progress modal elsewhere; refresh images after short delay
setTimeout(() => window.location.reload(), 1500);
} else {
toast.error(result?.error || 'Failed to start image generation');
}
} catch (e: any) {
toast.error(`Failed to generate images: ${e?.message || e}`);
} finally {
setGeneratingImages(false);
}
};
const handlePublish = async () => {
if (!content?.id) return;
try {
setPublishing(true);
const result = await publishContent(content.id);
if (result && (result.external_url || result.external_id)) {
toast.success('Content published successfully');
// Reload to show updated external_id/status
setTimeout(() => window.location.reload(), 800);
} else {
toast.error('Failed to publish content');
}
} catch (e: any) {
toast.error(`Publish failed: ${e?.message || e}`);
} finally {
setPublishing(false);
}
};
if (loading) {
return (
<div className="min-h-screen bg-gray-50 dark:bg-gray-900 py-8">
@@ -733,7 +677,7 @@ export default function ContentViewTemplate({ content, loading, onBack }: Conten
<div className="bg-white dark:bg-gray-800 rounded-2xl shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden">
{/* Header Section */}
<div className="bg-gradient-to-r from-brand-500 to-brand-600 px-8 py-6 text-white">
<div className="flex items-start justify-between gap-4">
<div className="flex items-start justify-between gap-4">
<div className="flex-1">
<div className="flex items-center gap-3 mb-3">
<FileTextIcon className="w-6 h-6" />
@@ -750,34 +694,6 @@ export default function ContentViewTemplate({ content, loading, onBack }: Conten
</p>
)}
</div>
<div className="flex-shrink-0 flex items-center gap-2">
{featureEnabled && (content.status === 'draft' || content.status === 'review') && (
<button
onClick={handleEditContent}
className="inline-flex items-center gap-2 px-3 py-2 bg-white text-gray-700 rounded-lg border border-gray-200 hover:bg-gray-50 transition"
>
Edit content
</button>
)}
{featureEnabled && content.status === 'draft' && (
<button
onClick={handleGenerateImages}
disabled={generatingImages}
className="inline-flex items-center gap-2 px-3 py-2 bg-white text-gray-700 rounded-lg border border-gray-200 hover:bg-gray-50 transition"
>
{generatingImages ? 'Generating...' : 'Generate images'}
</button>
)}
{featureEnabled && content.status === 'review' && (
<button
onClick={handlePublish}
disabled={publishing}
className="inline-flex items-center gap-2 px-3 py-2 bg-emerald-600 text-white rounded-lg hover:bg-emerald-700 transition"
>
{publishing ? 'Publishing...' : 'Publish'}
</button>
)}
</div>
</div>
</div>