Skip to content

fix: preserve falsy values, stable keys, crash guard, and class typo … - #661

Merged
PaulBoye-py merged 1 commit into
mainfrom
fix/table-component-bugs
Sep 17, 2026
Merged

PaulBoye-py merged 1 commit into
mainfrom
fix/table-component-bugs

Conversation

@PaulBoye-py

Copy link
Copy Markdown
Collaborator

Description

Fixes multiple bugs in docs/components/Table/Table.js:

  • Falsy values lost: row[id] || ' ' replaced falsy values like 0, false, and "" with a space. Changed to an explicit null/undefined check so valid falsy values display correctly.
  • Runtime crash: The tbody rendered when data existed but called columns.map() without checking if columns was defined. Added a guard and default props (columns = [], data = []) to prevent the crash.
  • Tailwind class typo: last pr-0 → last:pr-0 (missing colon meant the class never applied).
  • Unstable React keys: Row and cell keys used array index, causing rendering issues on reorder/update. Changed to row.id ?? rowIndex for stable keys.

Issue Ticket Number

Fixes #614

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Fix or improve the documentation

Checklist

  • I have followed the contributing guidelines of this project as mentioned in CONTRIBUTING.md
  • I have created an issue ticket for this PR
  • I have checked to ensure there aren't other open Pull Requests for the same update/change
  • I have performed a self-review of my own code
  • I have run tests locally to ensure they all pass
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes needed to the documentation

…in Table component

- Replace || fallback with null/undefined check to preserve falsy values like 0
- Add default props (columns=[], data=[]) and guard columns usage in tbody to prevent runtime crash
- Fix Tailwind class typo last pr-0 -> last:pr-0
- Use stable row keys (row.id ?? rowIndex) instead of array index

Fixes #614.
@PaulBoye-py PaulBoye-py self-assigned this Sep 17, 2026
@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
next-cloudinary Ready Ready Preview Sep 17, 2026 11:37am UTC

Request Review

@PaulBoye-py
PaulBoye-py merged commit 3af933e into main Sep 17, 2026
7 checks passed
@PaulBoye-py
PaulBoye-py deleted the fix/table-component-bugs branch September 17, 2026 11:43
eportis-cloudinary added a commit that referenced this pull request Sep 25, 2026
Brings 146 commits from main onto the v7 branch, including Next.js 16
compatibility (#657), the Node 20/22 CI matrix (#656), the Trusted
Publishers release plumbing, and three recent fixes: duplicate iframes on
CldUploadWidget unmount (#658), open() called before the widget script
loads (#659), and the docs Table component (#661).

Conflicts resolved as follows:

- CldVideoPlayer.tsx: union. Kept beta's 'use client' and named-only
  react import, added main's useState, which the merged body needs for
  isScriptLoaded/playerInitialized.
- next-cloudinary/package.json: kept beta's preconstruct build config,
  exports map, files and 7.0.0-beta.11 version; adopted the repository
  field main added in 554e2a0.
- package.json: kept @preconstruct/cli (beta's build needs it); dropped
  @colbyfayock/semantic-release-pnpm, which the merged .releaserc no
  longer references; took main's semantic-release 25 and
  @semantic-release/npm 13.
- pnpm-workspace.yaml: beta's list, which adds the test app - required
  because beta's test:app builds it via pnpm rather than npm install.
- tests/nextjs-app/package.json: main's Next 16 / React 19 versions plus
  beta's next-cloudinary workspace link.
- CHANGELOG.md: kept both release histories.
- pnpm-lock.yaml: regenerated against the merged manifests.

Also fixes CldUploadWidget.tsx, which git auto-merged without conflicting
but produced broken output: beta had dropped the default React import
while main's useUploadWidgetId helper calls React.useId and React.useRef.
The combination built fine and failed at prerender with "ReferenceError:
React is not defined". Restored the default import. Caught by test:app,
not by the unit tests.

Note: .releaserc auto-merged to main's @semantic-release/npm, which drops
beta's publishBranch "main|beta" setting. Branch gating now comes from
the top-level branches config alone.

This branch was successfully deployed

1 active deployment
Preview — 78624dc4 Deployed Sep 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Table component bugs — falsy values lost, runtime crash when columns missing, class typo, and unstable keys

1 participant