AV launch: global color scheme to match logo — gold #ffb800 primary, red #d60701 secondary, warm dark bars (1a1208 / 161310) replacing the inherited BB blue palette. Swapped 21 root tokens + 112 component files.
This commit is contained in:
@@ -384,7 +384,7 @@ export default function AdminArticlesPage() {
|
||||
if (loading || (!user && !loading)) {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#0a0a0a] flex items-center justify-center">
|
||||
<div className="w-6 h-6 border-2 border-[#3b82f6] border-t-transparent rounded-full animate-spin" />
|
||||
<div className="w-6 h-6 border-2 border-[#ffb800] border-t-transparent rounded-full animate-spin" />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -409,7 +409,7 @@ export default function AdminArticlesPage() {
|
||||
<div className="bg-[#111111] border-b border-[#252525]">
|
||||
<div className="max-w-7xl mx-auto px-4 py-5">
|
||||
<div className="flex items-center gap-3 mb-1">
|
||||
<Link href="/home-page" className="text-[#555] hover:text-[#3b82f6] transition-colors text-sm">Home</Link>
|
||||
<Link href="/home-page" className="text-[#555] hover:text-[#ffb800] transition-colors text-sm">Home</Link>
|
||||
<span className="text-[#333]">/</span>
|
||||
<span className="text-[#888] text-sm">Admin</span>
|
||||
<span className="text-[#333]">/</span>
|
||||
@@ -423,13 +423,13 @@ export default function AdminArticlesPage() {
|
||||
<div className="flex items-center gap-2">
|
||||
<button
|
||||
onClick={() => setShowNewArticle(true)}
|
||||
className="flex items-center gap-1.5 text-xs font-bold text-white bg-[#3b82f6] hover:bg-[#2563eb] rounded px-3 py-2 transition-colors">
|
||||
className="flex items-center gap-1.5 text-xs font-bold text-white bg-[#ffb800] hover:bg-[#d99700] rounded px-3 py-2 transition-colors">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5"><line x1="12" y1="5" x2="12" y2="19" /><line x1="5" y1="12" x2="19" y2="12" /></svg>
|
||||
New Article
|
||||
</button>
|
||||
<Link
|
||||
href="/admin/import"
|
||||
className="flex items-center gap-1.5 text-xs text-[#666] hover:text-[#3b82f6] border border-[#252525] hover:border-[#3b82f6] rounded px-3 py-2 transition-colors">
|
||||
className="flex items-center gap-1.5 text-xs text-[#666] hover:text-[#ffb800] border border-[#252525] hover:border-[#ffb800] rounded px-3 py-2 transition-colors">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /><polyline points="7 10 12 15 17 10" /><line x1="12" y1="15" x2="12" y2="3" /></svg>
|
||||
WP Import
|
||||
</Link>
|
||||
@@ -512,13 +512,13 @@ export default function AdminArticlesPage() {
|
||||
placeholder="Search articles..."
|
||||
value={searchQuery}
|
||||
onChange={(e) => setSearchQuery(e.target.value)}
|
||||
className="w-full bg-[#111] border border-[#252525] text-[#cccccc] text-sm rounded pl-9 pr-4 py-2 focus:outline-none focus:border-[#3b82f6] placeholder-[#444]"
|
||||
className="w-full bg-[#111] border border-[#252525] text-[#cccccc] text-sm rounded pl-9 pr-4 py-2 focus:outline-none focus:border-[#ffb800] placeholder-[#444]"
|
||||
/>
|
||||
</div>
|
||||
<select
|
||||
value={sourceFilter}
|
||||
onChange={(e) => setSourceFilter(e.target.value as SourceFilter)}
|
||||
className="bg-[#111] border border-[#252525] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6]">
|
||||
className="bg-[#111] border border-[#252525] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800]">
|
||||
<option value="all">All Sources</option>
|
||||
<option value="imported">Imported (WP)</option>
|
||||
<option value="native">Native</option>
|
||||
@@ -527,13 +527,13 @@ export default function AdminArticlesPage() {
|
||||
|
||||
{/* Bulk Actions Bar */}
|
||||
{selectedIds.size > 0 && (
|
||||
<div className="flex items-center gap-3 bg-[#0d1a2e] border border-[#1e3a5f] rounded-lg px-4 py-3">
|
||||
<span className="text-[#3b82f6] text-sm font-bold">{selectedIds.size} selected</span>
|
||||
<div className="flex items-center gap-3 bg-[#0d1a2e] border border-[#4a3500] rounded-lg px-4 py-3">
|
||||
<span className="text-[#ffb800] text-sm font-bold">{selectedIds.size} selected</span>
|
||||
<div className="flex-1" />
|
||||
<select
|
||||
value={bulkAction}
|
||||
onChange={(e) => setBulkAction(e.target.value as BulkAction | '')}
|
||||
className="bg-[#111] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-1.5 focus:outline-none focus:border-[#3b82f6]">
|
||||
className="bg-[#111] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-1.5 focus:outline-none focus:border-[#ffb800]">
|
||||
<option value="">Bulk Action…</option>
|
||||
<option value="publish">Publish</option>
|
||||
<option value="pending">Submit for Review</option>
|
||||
@@ -544,7 +544,7 @@ export default function AdminArticlesPage() {
|
||||
<button
|
||||
onClick={handleBulkAction}
|
||||
disabled={!bulkAction || bulkProcessing}
|
||||
className="flex items-center gap-1.5 bg-[#3b82f6] hover:bg-[#2563eb] disabled:bg-[#1e3a5f] disabled:cursor-not-allowed text-white text-sm font-bold px-4 py-1.5 rounded transition-colors">
|
||||
className="flex items-center gap-1.5 bg-[#ffb800] hover:bg-[#d99700] disabled:bg-[#4a3500] disabled:cursor-not-allowed text-white text-sm font-bold px-4 py-1.5 rounded transition-colors">
|
||||
{bulkProcessing ? (
|
||||
<div className="w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin" />
|
||||
) : null}
|
||||
@@ -587,9 +587,9 @@ export default function AdminArticlesPage() {
|
||||
<div className="flex items-center gap-3 mt-1">
|
||||
<span className="text-[11px] text-[#555]">{article.author_name || 'Unknown author'}</span>
|
||||
{article.category && (
|
||||
<span className="text-[10px] font-bold uppercase tracking-wider text-[#3b82f6] bg-[#0d1a2e] px-1.5 py-0.5 rounded">{article.category}</span>
|
||||
<span className="text-[10px] font-bold uppercase tracking-wider text-[#ffb800] bg-[#0d1a2e] px-1.5 py-0.5 rounded">{article.category}</span>
|
||||
)}
|
||||
<span className={`text-[10px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded ${article.source === 'imported' ? 'text-purple-400 bg-purple-400/10' : 'text-[#3b82f6] bg-[#3b82f6]/10'}`}>
|
||||
<span className={`text-[10px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded ${article.source === 'imported' ? 'text-purple-400 bg-purple-400/10' : 'text-[#ffb800] bg-[#ffb800]/10'}`}>
|
||||
{article.source === 'imported' ? 'WP' : 'Native'}
|
||||
</span>
|
||||
</div>
|
||||
@@ -612,7 +612,7 @@ export default function AdminArticlesPage() {
|
||||
</button>
|
||||
<button
|
||||
onClick={() => openEdit(article)}
|
||||
className="p-1.5 text-[#555] hover:text-[#3b82f6] transition-colors rounded hover:bg-[#1a1a1a]"
|
||||
className="p-1.5 text-[#555] hover:text-[#ffb800] transition-colors rounded hover:bg-[#1a1a1a]"
|
||||
title="Edit">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
|
||||
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
|
||||
@@ -634,7 +634,7 @@ export default function AdminArticlesPage() {
|
||||
type="checkbox"
|
||||
checked={articles.length > 0 && selectedIds.size === articles.length}
|
||||
onChange={toggleSelectAll}
|
||||
className="w-4 h-4 rounded border-[#333] bg-[#1a1a1a] accent-[#3b82f6] cursor-pointer"
|
||||
className="w-4 h-4 rounded border-[#333] bg-[#1a1a1a] accent-[#ffb800] cursor-pointer"
|
||||
/>
|
||||
<span className="text-[10px] text-[#555] uppercase tracking-wider font-bold flex-1">Article</span>
|
||||
<span className="text-[10px] text-[#555] uppercase tracking-wider font-bold w-24 hidden md:block">Category</span>
|
||||
@@ -646,7 +646,7 @@ export default function AdminArticlesPage() {
|
||||
|
||||
{loadingData ? (
|
||||
<div className="flex items-center justify-center py-16">
|
||||
<div className="w-6 h-6 border-2 border-[#3b82f6] border-t-transparent rounded-full animate-spin" />
|
||||
<div className="w-6 h-6 border-2 border-[#ffb800] border-t-transparent rounded-full animate-spin" />
|
||||
</div>
|
||||
) : articles.length === 0 ? (
|
||||
<div className="text-center py-16">
|
||||
@@ -668,7 +668,7 @@ export default function AdminArticlesPage() {
|
||||
type="checkbox"
|
||||
checked={selectedIds.has(article.id)}
|
||||
onChange={() => toggleSelect(article.id)}
|
||||
className="w-4 h-4 rounded border-[#333] bg-[#1a1a1a] accent-[#3b82f6] cursor-pointer flex-shrink-0"
|
||||
className="w-4 h-4 rounded border-[#333] bg-[#1a1a1a] accent-[#ffb800] cursor-pointer flex-shrink-0"
|
||||
/>
|
||||
|
||||
{/* Thumbnail + Title */}
|
||||
@@ -699,7 +699,7 @@ export default function AdminArticlesPage() {
|
||||
{/* Category */}
|
||||
<div className="w-24 hidden md:block">
|
||||
{article.category ? (
|
||||
<span className="text-[10px] font-bold uppercase tracking-wider text-[#3b82f6] bg-[#0d1a2e] px-1.5 py-0.5 rounded">
|
||||
<span className="text-[10px] font-bold uppercase tracking-wider text-[#ffb800] bg-[#0d1a2e] px-1.5 py-0.5 rounded">
|
||||
{article.category}
|
||||
</span>
|
||||
) : (
|
||||
@@ -710,7 +710,7 @@ export default function AdminArticlesPage() {
|
||||
{/* Source */}
|
||||
<div className="w-20 hidden lg:block">
|
||||
<span className={`text-[10px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded ${
|
||||
article.source === 'imported' ? 'text-purple-400 bg-purple-400/10' : 'text-[#3b82f6] bg-[#3b82f6]/10'
|
||||
article.source === 'imported' ? 'text-purple-400 bg-purple-400/10' : 'text-[#ffb800] bg-[#ffb800]/10'
|
||||
}`}>
|
||||
{article.source === 'imported' ? 'WP' : 'Native'}
|
||||
</span>
|
||||
@@ -741,7 +741,7 @@ export default function AdminArticlesPage() {
|
||||
<button
|
||||
onClick={() => openEdit(article)}
|
||||
title="Edit"
|
||||
className="p-1.5 text-[#555] hover:text-[#3b82f6] transition-colors rounded hover:bg-[#1a1a1a]">
|
||||
className="p-1.5 text-[#555] hover:text-[#ffb800] transition-colors rounded hover:bg-[#1a1a1a]">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
|
||||
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
|
||||
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />
|
||||
@@ -839,7 +839,7 @@ export default function AdminArticlesPage() {
|
||||
<div className="flex items-center justify-between px-6 py-4 border-b border-[#252525] sticky top-0 bg-[#111] z-10 rounded-t-xl">
|
||||
<div className="flex items-center gap-3">
|
||||
<h2 className="text-base font-bold text-white font-heading">New Article</h2>
|
||||
<span className="text-[10px] font-bold uppercase tracking-wider text-[#3b82f6] bg-[#3b82f6]/10 px-1.5 py-0.5 rounded">Native</span>
|
||||
<span className="text-[10px] font-bold uppercase tracking-wider text-[#ffb800] bg-[#ffb800]/10 px-1.5 py-0.5 rounded">Native</span>
|
||||
</div>
|
||||
<button
|
||||
onClick={() => setShowNewArticle(false)}
|
||||
@@ -859,7 +859,7 @@ export default function AdminArticlesPage() {
|
||||
value={newTitle}
|
||||
onChange={(e) => setNewTitle(e.target.value)}
|
||||
placeholder="Enter article title..."
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-white text-lg font-bold rounded px-4 py-3 focus:outline-none focus:border-[#3b82f6] placeholder-[#444]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-white text-lg font-bold rounded px-4 py-3 focus:outline-none focus:border-[#ffb800] placeholder-[#444]"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -871,7 +871,7 @@ export default function AdminArticlesPage() {
|
||||
onChange={(e) => setNewExcerpt(e.target.value)}
|
||||
placeholder="Brief summary shown in article listings..."
|
||||
rows={2}
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2.5 focus:outline-none focus:border-[#3b82f6] placeholder-[#444] resize-none"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2.5 focus:outline-none focus:border-[#ffb800] placeholder-[#444] resize-none"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -894,7 +894,7 @@ export default function AdminArticlesPage() {
|
||||
value={newAuthor}
|
||||
onChange={(e) => setNewAuthor(e.target.value)}
|
||||
placeholder="Author name"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6] placeholder-[#444]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800] placeholder-[#444]"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
@@ -904,7 +904,7 @@ export default function AdminArticlesPage() {
|
||||
value={newCategory}
|
||||
onChange={(e) => setNewCategory(e.target.value)}
|
||||
placeholder="e.g. Technology"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6] placeholder-[#444]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800] placeholder-[#444]"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
@@ -912,7 +912,7 @@ export default function AdminArticlesPage() {
|
||||
<select
|
||||
value={newStatus}
|
||||
onChange={(e) => setNewStatus(e.target.value as 'draft' | 'pending' | 'published')}
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6]">
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800]">
|
||||
<option value="draft">Draft</option>
|
||||
<option value="pending">Submit for Review</option>
|
||||
<option value="published">Publish Now</option>
|
||||
@@ -929,7 +929,7 @@ export default function AdminArticlesPage() {
|
||||
value={newFeaturedImage}
|
||||
onChange={(e) => setNewFeaturedImage(e.target.value)}
|
||||
placeholder="https://..."
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6] placeholder-[#444]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800] placeholder-[#444]"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
@@ -939,7 +939,7 @@ export default function AdminArticlesPage() {
|
||||
value={newFeaturedImageAlt}
|
||||
onChange={(e) => setNewFeaturedImageAlt(e.target.value)}
|
||||
placeholder="Describe the image..."
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6] placeholder-[#444]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800] placeholder-[#444]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -966,7 +966,7 @@ export default function AdminArticlesPage() {
|
||||
<button
|
||||
onClick={handleNewArticleSave}
|
||||
disabled={newSaving || !newTitle.trim()}
|
||||
className="flex items-center gap-2 bg-[#3b82f6] hover:bg-[#2563eb] disabled:bg-[#1e3a5f] disabled:cursor-not-allowed text-white text-sm font-bold px-5 py-2 rounded transition-colors">
|
||||
className="flex items-center gap-2 bg-[#ffb800] hover:bg-[#d99700] disabled:bg-[#4a3500] disabled:cursor-not-allowed text-white text-sm font-bold px-5 py-2 rounded transition-colors">
|
||||
{newSaving ? (
|
||||
<div className="w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin" />
|
||||
) : (
|
||||
@@ -1002,7 +1002,7 @@ export default function AdminArticlesPage() {
|
||||
type="text"
|
||||
value={editTitle}
|
||||
onChange={(e) => setEditTitle(e.target.value)}
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800]"
|
||||
/>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
@@ -1012,7 +1012,7 @@ export default function AdminArticlesPage() {
|
||||
type="text"
|
||||
value={editAuthor}
|
||||
onChange={(e) => setEditAuthor(e.target.value)}
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800]"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
@@ -1021,7 +1021,7 @@ export default function AdminArticlesPage() {
|
||||
type="text"
|
||||
value={editCategory}
|
||||
onChange={(e) => setEditCategory(e.target.value)}
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6]"
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1030,7 +1030,7 @@ export default function AdminArticlesPage() {
|
||||
<select
|
||||
value={editStatus}
|
||||
onChange={(e) => setEditStatus(e.target.value)}
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6]">
|
||||
className="w-full bg-[#1a1a1a] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800]">
|
||||
<option value="draft">Draft</option>
|
||||
<option value="pending">Pending Review</option>
|
||||
<option value="published">Published</option>
|
||||
@@ -1040,19 +1040,19 @@ export default function AdminArticlesPage() {
|
||||
|
||||
{/* Scheduling — only shown for draft status */}
|
||||
{editStatus === 'draft' && (
|
||||
<div className="bg-[#0d1a2e] border border-[#1e3a5f] rounded-lg p-4">
|
||||
<div className="bg-[#0d1a2e] border border-[#4a3500] rounded-lg p-4">
|
||||
<div className="flex items-center gap-2 mb-3">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" className="text-[#3b82f6]">
|
||||
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" className="text-[#ffb800]">
|
||||
<circle cx="12" cy="12" r="10" /><polyline points="12 6 12 12 16 14" />
|
||||
</svg>
|
||||
<label className="text-xs text-[#3b82f6] font-bold uppercase tracking-wider">Schedule Publish</label>
|
||||
<label className="text-xs text-[#ffb800] font-bold uppercase tracking-wider">Schedule Publish</label>
|
||||
</div>
|
||||
<input
|
||||
type="datetime-local"
|
||||
value={editScheduledAt}
|
||||
onChange={(e) => setEditScheduledAt(e.target.value)}
|
||||
min={new Date().toISOString().slice(0, 16)}
|
||||
className="w-full bg-[#111] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#3b82f6] [color-scheme:dark]"
|
||||
className="w-full bg-[#111] border border-[#333] text-[#cccccc] text-sm rounded px-3 py-2 focus:outline-none focus:border-[#ffb800] [color-scheme:dark]"
|
||||
/>
|
||||
{editScheduledAt && (
|
||||
<div className="flex items-center justify-between mt-2">
|
||||
@@ -1074,7 +1074,7 @@ export default function AdminArticlesPage() {
|
||||
<div className="flex items-center gap-2 pt-1">
|
||||
<span className="text-xs text-[#555]">Source:</span>
|
||||
<span className={`text-[10px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded ${
|
||||
editingArticle.source === 'imported' ? 'text-purple-400 bg-purple-400/10' : 'text-[#3b82f6] bg-[#3b82f6]/10'
|
||||
editingArticle.source === 'imported' ? 'text-purple-400 bg-purple-400/10' : 'text-[#ffb800] bg-[#ffb800]/10'
|
||||
}`}>
|
||||
{editingArticle.source === 'imported' ? 'WordPress Import' : 'Native'}
|
||||
</span>
|
||||
@@ -1090,7 +1090,7 @@ export default function AdminArticlesPage() {
|
||||
<button
|
||||
onClick={handleEditSave}
|
||||
disabled={editSaving || !editTitle.trim()}
|
||||
className="flex items-center gap-2 bg-[#3b82f6] hover:bg-[#2563eb] disabled:bg-[#1e3a5f] disabled:cursor-not-allowed text-white text-sm font-bold px-5 py-2 rounded transition-colors">
|
||||
className="flex items-center gap-2 bg-[#ffb800] hover:bg-[#d99700] disabled:bg-[#4a3500] disabled:cursor-not-allowed text-white text-sm font-bold px-5 py-2 rounded transition-colors">
|
||||
{editSaving ? (
|
||||
<div className="w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin" />
|
||||
) : null}
|
||||
|
||||
Reference in New Issue
Block a user