'use client'; import { type ComponentRenderProps } from '@json-render/react'; import { useData } from '@json-render/react'; import { getByPath } from '@json-render/core'; function useResolvedValue(value: T | { path: string } | null | undefined): T | undefined { const { data } = useData(); if (value === null || value === undefined) return undefined; if (typeof value === 'object' && 'path' in value) { return getByPath(data, value.path) as T | undefined; } return value as T; } export function Badge({ element }: ComponentRenderProps) { const { text, variant } = element.props as { text: string | { path: string }; variant?: string | null }; const resolvedText = useResolvedValue(text); const colors: Record = { default: 'var(--foreground)', success: '#22c55e', warning: '#eab308', error: '#ef4444', info: 'var(--muted)', }; return ( {resolvedText} ); }