AV deep sweep: account / news / marketplace placeholders + newsletter default tag + admin overview text + content-status & dashboard adops slug mappings (broadcast-beat → avbeat)

This commit is contained in:
2026-06-03 00:50:46 +00:00
parent 2876ac6ecd
commit 4bcd841c53
10 changed files with 11 additions and 11 deletions

View File

@@ -774,7 +774,7 @@ export default function AccountPage() {
<div className="flex items-center justify-between py-3 border-b border-[#222]">
<div>
<p className="font-body text-sm font-bold text-[#e0e0e0]">Email Newsletter</p>
<p className="font-body text-xs text-[#666] mt-0.5">Receive weekly broadcast industry news</p>
<p className="font-body text-xs text-[#666] mt-0.5">Receive weekly pro AV industry news</p>
</div>
<Link
href="/home-page"

View File

@@ -98,7 +98,7 @@ export default function AdOpsIOsPage() {
</select>
<select value={filterSite} onChange={e => setFilterSite(e.target.value)} className="px-2 py-1 bg-[#111] border border-[#3a322b] rounded text-xs text-[#888] focus:outline-none">
<option value="">All Sites</option>
{['avbeat','avbeat','backlotbeat','broadcastengineering'].map(s => <option key={s} value={s}>{s}</option>)}
{['avbeat','broadcastbeat','backlotbeat','broadcastengineering'].map(s => <option key={s} value={s}>{s}</option>)}
</select>
</div>

View File

@@ -75,7 +75,7 @@ export default function AdOpsDashboardPage() {
<div className="flex gap-2 flex-wrap">
<select value={filterSite} onChange={e => setFilterSite(e.target.value)} className="px-2 py-1 bg-[#111] border border-[#3a322b] rounded text-xs text-[#888] focus:outline-none">
<option value="">All Sites</option>
{['avbeat','avbeat','backlotbeat','broadcastengineering'].map(s => <option key={s} value={s}>{s}</option>)}
{['avbeat','broadcastbeat','backlotbeat','broadcastengineering'].map(s => <option key={s} value={s}>{s}</option>)}
</select>
<select value={filterStatus} onChange={e => setFilterStatus(e.target.value)} className="px-2 py-1 bg-[#111] border border-[#3a322b] rounded text-xs text-[#888] focus:outline-none">
<option value="">All Statuses</option>

View File

@@ -47,7 +47,7 @@ interface LaunchChecklist {
// ─── Site labels ──────────────────────────────────────────────────────────────
const SITE_LABELS: Record<string, { label: string; color: string; target: string }> = {
'broadcast-beat': { label: 'AV Beat', color: 'text-blue-400', target: '1525/day' },
'avbeat': { label: 'AV Beat', color: 'text-blue-400', target: '1525/day' },
'av-beat': { label: 'AV Beat', color: 'text-purple-400', target: '1015/day' },
'backlot-beat': { label: 'Backlot Beat', color: 'text-amber-400', target: '1015/day' },
'broadcast-engineering': { label: 'BroadcastEngineering.com', color: 'text-green-400', target: '1015/day' },
@@ -124,7 +124,7 @@ function ChecklistItem({ label, done }: { label: string; done: boolean }) {
type RMPSite = 'broadcast-beat' | 'av-beat' | 'backlot-beat' | 'broadcast-engineering';
function GeneratePanel({ onGenerated }: { onGenerated: () => void }) {
const [site, setSite] = useState<RMPSite>('broadcast-beat');
const [site, setSite] = useState<RMPSite>('avbeat');
const [topic, setTopic] = useState('');
const [loading, setLoading] = useState(false);
const [result, setResult] = useState<string | null>(null);

View File

@@ -256,7 +256,7 @@ export default function AdminDashboardPage() {
<div className="mb-8 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
<div>
<h1 className="text-2xl font-display font-bold text-white">Admin Dashboard</h1>
<p className="text-[#555] text-sm font-body mt-1">Overview of your broadcast platform</p>
<p className="text-[#555] text-sm font-body mt-1">Overview of your pro AV platform</p>
</div>
<div className="flex items-center gap-2 text-xs text-[#555] font-body">
<svg className="w-3.5 h-3.5" fill="none" stroke="currentColor" strokeWidth="2" viewBox="0 0 24 24">

View File

@@ -47,7 +47,7 @@ interface Stats {
}
const PUBLICATIONS = [
{ id: 'broadcast-beat', name: 'AV Beat', short: 'BB' },
{ id: 'avbeat', name: 'AV Beat', short: 'AVB' },
{ id: 'av-beat', name: 'AV Beat', short: 'AV' },
];

View File

@@ -316,7 +316,7 @@ export default function AccountPage() {
onChange={(e) => setJobTitle(e.target.value)}
required
className="w-full bg-[#1c1815] border border-white/20 rounded-lg px-3 py-2.5 text-white text-sm focus:outline-none focus:border-[#CC0000]"
placeholder="e.g. Senior Broadcast Engineer"
placeholder="e.g. Senior AV Integrator"
/>
</div>
<div>

View File

@@ -347,7 +347,7 @@ export default function NewsPage({
</div>
<div className="bg-[#0d1520] border border-[#412402] p-4">
<h3 className="font-body font-bold text-xs text-[#F0A623] uppercase tracking-widest mb-2">Newsletter</h3>
<p className="text-[#777] text-xs font-body mb-3">Get broadcast news delivered to your inbox every week.</p>
<p className="text-[#777] text-xs font-body mb-3">Get pro AV news delivered to your inbox every week.</p>
<Link href="/home-page#newsletter" className="btn-subscribe text-xs py-2 px-4 inline-block">Subscribe Free</Link>
</div>
</aside>

View File

@@ -144,7 +144,7 @@ function NewsletterCard({ newsletter }: { newsletter: Newsletter }) {
// ─── Signup CTA ────────────────────────────────────────────────────────────────
function SignupCTA() {
const [email, setEmail] = useState("");
const [selected, setSelected] = useState<string[]>(["Broadcast"]);
const [selected, setSelected] = useState<string[]>(["Pro AV"]);
const [status, setStatus] = useState<"idle" | "loading" | "success" | "error">("idle");
const [message, setMessage] = useState("");
const formId = useId();

View File

@@ -26,7 +26,7 @@ export default function PrivacyPage() {
<section aria-labelledby="section-intro">
<p id="section-intro">
This Privacy Policy describes how <strong className="text-[#e0e0e0]">Relevant Media Properties, LLC</strong> ("we," "us," or "our"), publisher of AV Beat, AV Beat, Backlot Beat, and BroadcastEngineering.com, collects, uses, and shares information about you when you use our websites and services. We are committed to protecting your privacy and complying with applicable data protection laws including GDPR and CCPA.
This Privacy Policy describes how <strong className="text-[#e0e0e0]">Relevant Media Properties, LLC</strong> ("we," "us," or "our"), publisher of AV Beat, Broadcast Beat, and BroadcastEngineering.com, collects, uses, and shares information about you when you use our websites and services. We are committed to protecting your privacy and complying with applicable data protection laws including GDPR and CCPA.
</p>
</section>