fix(PBI-96/T-1104): toon echte folder-totaal op docs-index i.p.v. preview-cap
Some checks are pending
CI / Lint, Typecheck, Test & Build (pull_request) Waiting to run
CI / Detect deploy-relevant changes (pull_request) Blocked by required conditions
CI / Deploy Preview (PR) (pull_request) Blocked by required conditions
CI / Deploy Production (main) (pull_request) Blocked by required conditions
CI / Deploy Manual (workflow_dispatch) (pull_request) Waiting to run
Some checks are pending
CI / Lint, Typecheck, Test & Build (pull_request) Waiting to run
CI / Detect deploy-relevant changes (pull_request) Blocked by required conditions
CI / Deploy Preview (PR) (pull_request) Blocked by required conditions
CI / Deploy Production (main) (pull_request) Blocked by required conditions
CI / Deploy Manual (workflow_dispatch) (pull_request) Waiting to run
Page bouwde docsByFolder met max 3 docs per folder (voor preview-lijst), en de card gebruikte docs.length als telling — dus folders met >3 docs toonden altijd '3 docs'. Zichtbaar geworden door PBI-100 seed (vóór seed had geen folder >3 docs). Fix: page bouwt totalByFolder in dezelfde loop (geen extra query), geeft door via ProductDocsIndex → ProductDocsFolderCard.totalCount.
This commit is contained in:
parent
a3bf6dbd4e
commit
b2e26805b3
3 changed files with 12 additions and 2 deletions
|
|
@ -49,7 +49,9 @@ export default async function ProductDocsIndexPage({ params }: Props) {
|
|||
})
|
||||
|
||||
const docsByFolder: Partial<Record<ProductDocFolder, ProductDocCardItem[]>> = {}
|
||||
const totalByFolder: Partial<Record<ProductDocFolder, number>> = {}
|
||||
for (const doc of recentDocs) {
|
||||
totalByFolder[doc.folder] = (totalByFolder[doc.folder] ?? 0) + 1
|
||||
const bucket = docsByFolder[doc.folder] ?? []
|
||||
if (bucket.length < 3) {
|
||||
bucket.push({
|
||||
|
|
@ -68,6 +70,7 @@ export default async function ProductDocsIndexPage({ params }: Props) {
|
|||
productId={id}
|
||||
enabledFolders={enabledFolders}
|
||||
docsByFolder={docsByFolder}
|
||||
totalByFolder={totalByFolder}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,10 +21,13 @@ interface Props {
|
|||
productId: string
|
||||
folder: ProductDocFolder
|
||||
label: { title: string; description: string }
|
||||
/** Preview-lijst, gecapped op 3 door de page-component. */
|
||||
docs: ProductDocCardItem[]
|
||||
/** Echt totaal-aantal docs in deze folder (kan >3 zijn). */
|
||||
totalCount: number
|
||||
}
|
||||
|
||||
export function ProductDocsFolderCard({ productId, folder, label, docs }: Props) {
|
||||
export function ProductDocsFolderCard({ productId, folder, label, docs, totalCount }: Props) {
|
||||
const folderApi = productDocFolderToApi(folder)
|
||||
const folderUrl = `/products/${productId}/docs/${folderApi}`
|
||||
|
||||
|
|
@ -50,7 +53,7 @@ export function ProductDocsFolderCard({ productId, folder, label, docs }: Props)
|
|||
</p>
|
||||
</div>
|
||||
<span className="text-xs text-muted-foreground tabular-nums shrink-0">
|
||||
{docs.length} {docs.length === 1 ? 'doc' : 'docs'}
|
||||
{totalCount} {totalCount === 1 ? 'doc' : 'docs'}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ interface Props {
|
|||
enabledFolders: ProductDocFolder[]
|
||||
/** Per-folder lijst met (max 3) meest recent bijgewerkte docs. */
|
||||
docsByFolder: Partial<Record<ProductDocFolder, ProductDocCardItem[]>>
|
||||
/** Per-folder echt totaal-aantal docs (kan >3 zijn; voor card-telling). */
|
||||
totalByFolder: Partial<Record<ProductDocFolder, number>>
|
||||
}
|
||||
|
||||
// Vaste display-order (matcht Scrum4Me's eigen docs-tree).
|
||||
|
|
@ -47,6 +49,7 @@ export function ProductDocsIndex({
|
|||
productId,
|
||||
enabledFolders,
|
||||
docsByFolder,
|
||||
totalByFolder,
|
||||
}: Props) {
|
||||
const orderedEnabled = FOLDER_ORDER.filter((f) => enabledFolders.includes(f))
|
||||
|
||||
|
|
@ -106,6 +109,7 @@ export function ProductDocsIndex({
|
|||
folder={folder}
|
||||
label={FOLDER_LABELS[folder]}
|
||||
docs={docsByFolder[folder] ?? []}
|
||||
totalCount={totalByFolder[folder] ?? 0}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue