diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8a4d37d..7f917f5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -48,7 +48,7 @@ export default {
tags: [TAGS.frontend, TAGS.open_source],
links: {
- website: 'https://vuejs.org',
+ official_website: 'https://vuejs.org',
github: 'https://github.com/vuejs/core',
npm: 'https://www.npmjs.com/package/vue',
},
diff --git a/demo/src/components/CompletenessChart.tsx b/demo/src/components/CompletenessChart.tsx
index 20d170d..8c8b187 100644
--- a/demo/src/components/CompletenessChart.tsx
+++ b/demo/src/components/CompletenessChart.tsx
@@ -7,6 +7,10 @@ interface CompletenessChartProps {
baselinePercentage: number
additionalPercentage: number
fullPercentage: number
+ baselineCount: number
+ baselineTotal: number
+ additionalCount: number
+ additionalTotal: number
term: TTerm
}
@@ -16,6 +20,10 @@ export function CompletenessChart({
baselinePercentage,
additionalPercentage,
fullPercentage,
+ baselineCount,
+ baselineTotal,
+ additionalCount,
+ additionalTotal,
term,
}: CompletenessChartProps) {
const groupByCategory = (fields: FieldCompleteness[]) => {
@@ -39,6 +47,17 @@ export function CompletenessChart({
const baselineGroups = groupByCategory(baselineFields)
const additionalGroups = groupByCategory(additionalFields)
+ const renderCount = (completed: number, total: number) => {
+ const allDone = completed === total
+ return (
+
+ {completed}/{total}
+
+ )
+ }
+
const renderFieldList = (fields: FieldCompleteness[]) => {
if (fields.length === 0) return null
@@ -48,6 +67,7 @@ export function CompletenessChart({
{field.completed ? '✓' : '○'}
{field.label}
+ {field.optional && (Optional)}
))}
@@ -57,9 +77,16 @@ export function CompletenessChart({
const renderCategory = (title: string, fields: FieldCompleteness[]) => {
if (fields.length === 0) return null
+ const countableFields = fields.filter((f) => !f.optional)
+ const completed = countableFields.filter((f) => f.completed).length
+ const total = countableFields.length
+
return (
-
{title}
+
+
{title}
+ {total > 0 && renderCount(completed, total)}
+
{renderFieldList(fields)}
)
@@ -70,16 +97,18 @@ export function CompletenessChart({
const links = term.links
const linkStatuses = [
- { name: 'Website', completed: !!links?.website },
+ { name: 'Official Website', completed: !!links?.official_website },
{ name: 'Wikipedia', completed: !!links?.wikipedia },
{ name: 'GitHub', completed: !!links?.github },
{ name: 'npm', completed: !!links?.npm },
]
+ const hasAny = linkStatuses.some((l) => l.completed)
return (
Links (at least one)
+ {renderCount(hasAny ? 1 : 0, 1)}
{linkStatuses.map((link) => (
@@ -102,11 +131,15 @@ export function CompletenessChart({
-
Core fields: {baselinePercentage}%
+
+ Core fields: {baselineCount}/{baselineTotal}
+
-
Translations: {additionalPercentage}%
+
+ Translations: {additionalCount}/{additionalTotal}
+
{fullPercentage}%
@@ -139,7 +172,6 @@ export function CompletenessChart({
Translations
{renderCategory('en-US', additionalGroups['en-US'])}
- {renderCategory('Metadata', additionalGroups.metadata)}
{renderCategory('en-GB Translation', additionalGroups['en-GB'])}
{renderCategory('de-DE Translation', additionalGroups['de-DE'])}
diff --git a/demo/src/components/TermLinks.tsx b/demo/src/components/TermLinks.tsx
index e10cc46..cec1e0d 100644
--- a/demo/src/components/TermLinks.tsx
+++ b/demo/src/components/TermLinks.tsx
@@ -10,7 +10,7 @@ interface TermLinksProps {
}
const linkData = [
- { key: 'website' as const, label: 'Official Website', icon: Globe },
+ { key: 'official_website' as const, label: 'Official Website', icon: Globe },
{ key: 'wikipedia' as const, label: 'Wikipedia', icon: ExternalLink },
{ key: 'github' as const, label: 'GitHub', icon: ExternalLink },
{ key: 'npm' as const, label: 'npm', icon: ExternalLink },
diff --git a/demo/src/pages/DocsPage.tsx b/demo/src/pages/DocsPage.tsx
index 83c1c6b..6782bb2 100644
--- a/demo/src/pages/DocsPage.tsx
+++ b/demo/src/pages/DocsPage.tsx
@@ -290,7 +290,7 @@ const dictionary = getTerms({ terms, locale: 'en-US' })`}
{ id: 'frontend', name: { 'en-US': 'Frontend', ... } },
...
],
- links: { website: 'https://react.dev', wikipedia: '...', ... },
+ links: { official_website: 'https://react.dev', wikipedia: '...', ... },
sources: {
label: [ { id: 'community', name: { 'en-US': 'Community', ... } } ],
...
diff --git a/demo/src/pages/HomePage.tsx b/demo/src/pages/HomePage.tsx
index f8fae39..57c5980 100644
--- a/demo/src/pages/HomePage.tsx
+++ b/demo/src/pages/HomePage.tsx
@@ -138,12 +138,11 @@ export function HomePage({ searchQuery, onSearchChange, completeness, onComplete
setSelected={setSelectedTags}
multi
/>
- {(selectedTypes.length > 0 || selectedTags.length > 0 || completeness !== 'all') && (
+ {(selectedTypes.length > 0 || selectedTags.length > 0) && (