# thinkrank/1.0.0/src/admin/components/shared/ModelBadge.js

ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console &amp; Local SEO, version 1.0.0. 66 lines.

- Page: https://pluginprobe.com/plugins/thinkrank/1.0.0/code/src/admin/components/shared/ModelBadge.js
- Raw: https://pluginprobe.com/plugins/thinkrank/1.0.0/raw/src/admin/components/shared/ModelBadge.js
- Modified: 2025-08-10T10:57:26+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/thinkrank/1.0.0/code/src/admin/components/shared/ModelBadge.js#L10-L20`.

```javascript
/**
 * Model Badge Component
 *
 * Shared component for displaying AI model badges across the application
 *
 * @package ThinkRank
 * @since 1.0.0
 */

/**
 * Model Badge Component
 */
const ModelBadge = ({ provider, model }) => {
    if (!provider || !model) return null;

    const getModelDisplayName = (provider, model) => {
        if (provider === 'openai') {
            switch (model) {
                case 'gpt-5-nano': return 'GPT‑5‑nano';
                case 'gpt-5-mini': return 'GPT‑5‑mini';
                case 'gpt-5': return 'GPT‑5';
                case 'gpt-4o': return 'GPT‑4o';
                default: return model;
            }
        } else if (provider === 'claude') {
            switch (model) {
                // Claude 4 models (use -0 aliases)
                case 'claude-sonnet-4-0': return 'Claude 4 Sonnet';
                case 'claude-opus-4-0': return 'Claude 4 Opus';
                case 'claude-sonnet-4-20250514': return 'Claude 4 Sonnet';
                case 'claude-opus-4-20250514': return 'Claude 4 Opus';
                // Claude 3.x models (use -latest aliases)
                case 'claude-3-7-sonnet-latest': return 'Claude 3.7 Sonnet';
                case 'claude-3-5-sonnet-latest': return 'Claude 3.5 Sonnet';
                case 'claude-3-5-haiku-latest': return 'Claude 3.5 Haiku';
                // Support for versioned models from API responses
                case 'claude-3-7-sonnet-20250219': return 'Claude 3.7 Sonnet';
                case 'claude-3-5-sonnet-20241022': return 'Claude 3.5 Sonnet';
                case 'claude-3-5-haiku-20241022': return 'Claude 3.5 Haiku';
                default: return model;
            }
        } else if (provider === 'gemini') {
            switch (model) {
                case 'gemini-2.5-flash': return 'Gemini 2.5 Flash';
                case 'gemini-2.5-flash-lite': return 'Gemini 2.5 Flash-Lite';
                case 'gemini-2.5-pro': return 'Gemini 2.5 Pro';
                case 'gemini-2.0-flash': return 'Gemini 2.0 Flash';
                case 'gemini-1.5-flash': return 'Gemini 1.5 Flash';
                default: return model;
            }
        }
        return model;
    };

    const displayName = getModelDisplayName(provider, model);
    const badgeClass = `model-badge ${provider}`;

    return (
        <span className={badgeClass} title={`Generated using ${displayName}`}>
            {displayName}
        </span>
    );
};

export default ModelBadge;

```
