Fix GFTD portal routing and copy

This commit is contained in:
defiQUG
2026-07-30 20:42:40 -07:00
parent 2e7f434fb5
commit ea5da55669
3 changed files with 35 additions and 5 deletions
@@ -44,7 +44,10 @@ export default function MarketplaceEntitlementPage() {
const [message, setMessage] = useState<string | null>(null);
const [error, setError] = useState<string | null>(null);
const partnerMeta = [...partnerStackServices, gftdMarketplaceService].find((s) => s.href?.includes(slug));
const marketplaceServices = [...partnerStackServices, gftdMarketplaceService];
const partnerMeta = marketplaceServices.find(
(s) => s.href?.includes(slug) || ('productSlug' in s && s.productSlug === slug)
);
const isGftd = slug === 'phoenix-gftd-directory';
const loadProduct = useCallback(async () => {
@@ -151,6 +154,25 @@ export default function MarketplaceEntitlementPage() {
{product?.shortDescription || product?.description || partnerMeta?.description}
</p>
{isGftd ? (
<div className="mt-4 flex flex-wrap gap-3">
<Link
href="/marketplace/gftd"
className="inline-flex items-center gap-2 rounded-lg border border-sovereign-bronze/40 px-4 py-2 text-sm font-semibold text-sovereign-ivory no-underline hover:border-sovereign-gold"
>
Review GFTD listing
</Link>
<Link
href="https://gftd.d-bis.org/docs"
className="inline-flex items-center gap-2 rounded-lg border border-sovereign-bronze/40 px-4 py-2 text-sm font-semibold text-sovereign-ivory no-underline hover:border-sovereign-gold"
target="_blank"
rel="noopener noreferrer"
>
Public docs
</Link>
</div>
) : null}
{isGftd ? (
<section className="mt-8 rounded-xl border border-white/10 bg-white/5 p-6">
<p className="text-xs font-semibold uppercase tracking-wider text-teal-300">
@@ -236,7 +258,10 @@ export default function MarketplaceEntitlementPage() {
) : hasActive ? (
<p className="mt-6 text-emerald-400">Active entitlements: {activeKeys.join(', ')}</p>
) : hasPending ? (
<p className="mt-6 text-amber-300">Pending operator activation.</p>
<p className="mt-6 text-amber-300">
Pending operator activation. Use the landing page to review the tier and guardrail summary
before the workspace request is approved.
</p>
) : (
<button
type="button"
+2 -2
View File
@@ -28,8 +28,8 @@ export default function MarketplacePage() {
<p className="text-xs font-semibold uppercase tracking-wider text-sovereign-gold">Phoenix marketplace</p>
<h1 className="mt-2 text-3xl font-bold tracking-tight sm:text-4xl">Sovereign platform catalog</h1>
<p className="mt-4 text-lg text-sovereign-ivory/70">
Subscribe to ledger, identity, wallet, orchestration, and Chain 138 onboarding services. Sign in to
manage entitlements and deployments.
Subscribe to ledger, identity, registry, wallet, orchestration, and Chain 138 onboarding services.
Sign in to manage entitlements and deployments.
</p>
<Link
href={ECOSYSTEM_SIGN_IN_PATH}
+6 -1
View File
@@ -1,5 +1,9 @@
import type { PartnerStackService } from '@/lib/corporate-site-data';
export interface GftdMarketplaceService extends PartnerStackService {
productSlug: string;
}
export const gftdMarketplaceSubscriptionTiers = [
{
name: 'Preview',
@@ -39,9 +43,10 @@ export const gftdMarketplaceGuardrails = [
'No redistribution of restricted data without rights approval.',
];
export const gftdMarketplaceService: PartnerStackService = {
export const gftdMarketplaceService: GftdMarketplaceService = {
name: 'GFTD Directory',
href: '/marketplace/gftd',
productSlug: 'phoenix-gftd-directory',
description:
'Rights-aware entity intelligence with live approved source lanes, redacted public-safe outputs, subscription tiers, and bounded observability.',
serviceUrl: 'https://gftd.d-bis.org',