more impeorventes for kewyrods libreary

This commit is contained in:
IGNY8 VPS (Salman)
2026-01-14 18:55:08 +00:00
parent d2fc5b1a6b
commit cb2d109593
5 changed files with 291 additions and 6 deletions

View File

@@ -13,6 +13,8 @@ import { GridIcon, PlusIcon } from "../../icons";
import {
fetchSites,
Site,
fetchKeywordStats,
KeywordStats,
} from "../../services/api";
import { getDashboardStats } from "../../services/billing.api";
import { useSiteStore } from "../../store/siteStore";
@@ -33,6 +35,7 @@ import AutomationStatusWidget, { AutomationData } from "../../components/dashboa
import SitesOverviewWidget from "../../components/dashboard/SitesOverviewWidget";
import CreditsUsageWidget from "../../components/dashboard/CreditsUsageWidget";
import AccountInfoWidget from "../../components/dashboard/AccountInfoWidget";
import KeywordLibraryStatsWidget from "../../components/dashboard/KeywordLibraryStatsWidget";
import { getSubscriptions, Subscription } from "../../services/billing.api";
export default function Home() {
@@ -52,6 +55,8 @@ export default function Home() {
const [showAddSite, setShowAddSite] = useState(false);
const [loading, setLoading] = useState(true);
const [subscription, setSubscription] = useState<Subscription | null>(null);
const [keywordStats, setKeywordStats] = useState<KeywordStats | null>(null);
const [keywordStatsLoading, setKeywordStatsLoading] = useState(true);
// Dashboard data state
const [attentionItems, setAttentionItems] = useState<AttentionItem[]>([]);
@@ -114,9 +119,23 @@ export default function Home() {
loadSites();
loadBalance();
loadSubscription();
loadKeywordStats();
loadFromBackend().catch(() => {});
}, [loadFromBackend, loadBalance]);
// Load keyword stats
const loadKeywordStats = async () => {
try {
setKeywordStatsLoading(true);
const stats = await fetchKeywordStats();
setKeywordStats(stats);
} catch (error) {
console.error('Failed to load keyword stats:', error);
} finally {
setKeywordStatsLoading(false);
}
};
// Load subscription info
const loadSubscription = async () => {
try {
@@ -414,6 +433,24 @@ export default function Home() {
/>
</div>
{/* Row 6: Keyword Library Stats (3 columns) */}
<div className="space-y-3">
<div className="flex items-center justify-between">
<div>
<h2 className="text-lg font-semibold text-gray-900 dark:text-white">
Quick-Start Keywords Complimentary
</h2>
<p className="text-sm text-gray-500 dark:text-gray-400">
Ready-to-use, pre-vetted keywords to jumpstart your content creation no research needed
</p>
</div>
</div>
<KeywordLibraryStatsWidget
stats={keywordStats}
loading={keywordStatsLoading}
/>
</div>
{/* Add Site Button - Floating */}
{canAddMoreSites && (
<div className="fixed bottom-6 right-6 z-50">

View File

@@ -954,7 +954,7 @@ export default function IndustriesSectorsKeywords() {
<CheckCircleIcon className="w-5 h-5 text-success-600 dark:text-success-400" />
<div>
<h3 className="text-sm font-medium text-success-900 dark:text-success-200">
High Opportunity Keywords Complete
Quick-Start Keywords Added Successfully
</h3>
<p className="text-xs text-success-700 dark:text-success-300">
{addedCount} keywords added to your workflow
@@ -982,11 +982,11 @@ export default function IndustriesSectorsKeywords() {
<div className="flex items-center justify-between mb-2">
<div className="flex items-center gap-3">
<h2 className="text-xl font-bold text-gray-900 dark:text-white">
High Opportunity Keywords
Quick-Start Keywords Complimentary
</h2>
<Badge tone="brand" variant="soft" size="sm">
<BoltIcon className="w-3 h-3 mr-1" />
Curated
Pre-Vetted
</Badge>
</div>
{!allAdded && (
@@ -1000,7 +1000,7 @@ export default function IndustriesSectorsKeywords() {
)}
</div>
<p className="text-sm text-gray-600 dark:text-gray-400">
Add top keywords for each of your sectors. Keywords will be added to your planner workflow.
Ready-to-use keywords to jumpstart your content no research needed. Simply add to your workflow and start creating.
</p>
</div>
@@ -1151,8 +1151,8 @@ export default function IndustriesSectorsKeywords() {
</h3>
</div>
<p className="text-sm text-gray-600 dark:text-gray-400 mb-4 max-w-2xl mx-auto">
💡 <strong>Recommended:</strong> Start by adding High Opportunity Keywords from the section above.
They're curated for your sectors and ready to use. Once you've added those, you can browse our full keyword library below for additional targeted keywords.
💡 <strong>Recommended:</strong> Start with the complimentary Quick-Start Keywords above to accelerate your workflow.
They're pre-vetted and ready to use immediately. Once added, you can browse our full library below for additional targeted keywords.
</p>
<Button
variant="outline"