PluginProbe
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO / 1.0.0
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO v1.0.0
2.7.0 2.6.0 2.5.0 2.4.0 2.3.0 2.2.0 2.1.1 2.1.0 2.0.2 2.0.1 2.0.0 1.32.0 1.31.0 1.30.0 1.29.0 1.28.0 1.27.0 1.26.0 1.25.0 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.10.0 All 48 releases
thinkrank / src / admin / components / shared / ModelBadge.js

ModelBadge.js in ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO 1.0.0, at src/admin/components/shared/ModelBadge.js

66 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Model Badge Component
3 *
4 * Shared component for displaying AI model badges across the application
5 *
6 * @package ThinkRank
7 * @since 1.0.0
8 */
9
10 /**
11 * Model Badge Component
12 */
13 const ModelBadge = ({ provider, model }) => {
14 if (!provider || !model) return null;
15
16 const getModelDisplayName = (provider, model) => {
17 if (provider === 'openai') {
18 switch (model) {
19 case 'gpt-5-nano': return 'GPT‑5‑nano';
20 case 'gpt-5-mini': return 'GPT‑5‑mini';
21 case 'gpt-5': return 'GPT‑5';
22 case 'gpt-4o': return 'GPT‑4o';
23 default: return model;
24 }
25 } else if (provider === 'claude') {
26 switch (model) {
27 // Claude 4 models (use -0 aliases)
28 case 'claude-sonnet-4-0': return 'Claude 4 Sonnet';
29 case 'claude-opus-4-0': return 'Claude 4 Opus';
30 case 'claude-sonnet-4-20250514': return 'Claude 4 Sonnet';
31 case 'claude-opus-4-20250514': return 'Claude 4 Opus';
32 // Claude 3.x models (use -latest aliases)
33 case 'claude-3-7-sonnet-latest': return 'Claude 3.7 Sonnet';
34 case 'claude-3-5-sonnet-latest': return 'Claude 3.5 Sonnet';
35 case 'claude-3-5-haiku-latest': return 'Claude 3.5 Haiku';
36 // Support for versioned models from API responses
37 case 'claude-3-7-sonnet-20250219': return 'Claude 3.7 Sonnet';
38 case 'claude-3-5-sonnet-20241022': return 'Claude 3.5 Sonnet';
39 case 'claude-3-5-haiku-20241022': return 'Claude 3.5 Haiku';
40 default: return model;
41 }
42 } else if (provider === 'gemini') {
43 switch (model) {
44 case 'gemini-2.5-flash': return 'Gemini 2.5 Flash';
45 case 'gemini-2.5-flash-lite': return 'Gemini 2.5 Flash-Lite';
46 case 'gemini-2.5-pro': return 'Gemini 2.5 Pro';
47 case 'gemini-2.0-flash': return 'Gemini 2.0 Flash';
48 case 'gemini-1.5-flash': return 'Gemini 1.5 Flash';
49 default: return model;
50 }
51 }
52 return model;
53 };
54
55 const displayName = getModelDisplayName(provider, model);
56 const badgeClass = `model-badge ${provider}`;
57
58 return (
59 <span className={badgeClass} title={`Generated using ${displayName}`}>
60 {displayName}
61 </span>
62 );
63 };
64
65 export default ModelBadge;
66