Skip to content

feat: What's New dialog for release notes (#48) - #119

Open
monteslu wants to merge 6 commits into
masterfrom
feature/whats-new-dialog
Open

feat: What's New dialog for release notes (#48)#119
monteslu wants to merge 6 commits into
masterfrom
feature/whats-new-dialog

Conversation

@monteslu

@monteslu monteslu commented Feb 6, 2026

Copy link
Copy Markdown
Owner

Summary

Implements Issue #48 - What's New section to inform users about recent changes.

Features

  • WhatsNewDialog component: Modal dialog showing release notes
  • Auto-show on version update: Checks localStorage for last seen version
  • Manual access: Menu item in toolbar for on-demand viewing
  • CHANGELOG.md: Structured release notes file

Files Added/Changed

  • CHANGELOG.md - Release notes
  • src/components/Toolbar/WhatsNewDialog.jsx - Dialog component
  • src/components/Toolbar/WhatsNewDialog.css - Styles
  • src/components/Toolbar/Toolbar.jsx - Integration

Closes #48

@netlify

netlify Bot commented Feb 6, 2026

Copy link
Copy Markdown

Deploy Preview for pagenodes ready!

Name Link
🔨 Latest commit 9b56655
🔍 Latest deploy log https://app.netlify.com/projects/pagenodes/deploys/6986259f467d700008059c1c
😎 Deploy Preview https://deploy-preview-119--pagenodes.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

- Use Vite define for version (with fallback)
- Fix Escape key via document event listener
- Fix changelog link to use master branch
- Add tabIndex and ref for accessibility
The Vite define variable __APP_VERSION__ was not declared in ESLint globals,
causing lint to fail on the WhatsNewDialog component.

@luthien-m luthien-m left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UX/Functionality Review ✅ APPROVE

Overview

This PR adds a "What's New" dialog to showcase PageNodes 2.0 features. It's a well-implemented UX enhancement that follows modern web development best practices.

🎨 UX Analysis

✅ EXCELLENT User Experience:

  • Auto-discovery: Shows dialog automatically on version updates
  • User control: Can dismiss permanently or reopen via menu
  • Accessibility: Proper keyboard navigation (Escape key support)
  • Visual design: Clean, professional appearance with proper theming

✅ SMART Implementation:

  • Version tracking: Uses localStorage to track seen versions
  • Responsive design: Works on mobile (90vw width, max-height constraints)
  • Smooth interactions: Proper overlay click handling

🔒 Security Analysis

✅ SECURE Implementation:

  • Safe HTML rendering: Only handles bold text (**text**) - no XSS risk
  • External links: Properly secured with rel="noopener noreferrer"
  • localStorage usage: Standard, safe user preference storage
  • Input sanitization: No user input processing, only config-driven content

✅ Code Quality

React Best Practices:

  • Proper hooks usage: useCallback, useEffect with correct dependencies
  • Clean separation: Custom hook (useWhatsNew) for logic
  • Memory management: Event listeners properly cleaned up
  • Accessibility: Focus management and keyboard support

CSS Implementation:

  • CSS variables: Proper theming integration
  • Responsive design: Good mobile support
  • Visual hierarchy: Clear typography and spacing

📝 Content Quality

  • Comprehensive changelog: Covers major PageNodes 2.0 features
  • Clear categorization: Organized into logical sections
  • Marketing value: Helps users discover new capabilities

Minor Suggestions (Not Blocking)

  • Consider adding version comparison for showing incremental updates
  • Could add "Don't show again" option for power users

Recommendation

APPROVE - This is a polished, secure UX feature that enhances user onboarding without introducing any security or functionality risks. Great work on the comprehensive feature showcase!

— Luthien 🌙

@luthien-m luthien-m left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Clean implementation — useWhatsNew hook handles version tracking via localStorage, auto-shows on version bump, manual access from toolbar menu. CHANGELOG.md is well-structured. CSS is solid with proper dark theme vars and responsive sizing. __APP_VERSION__ global via Vite define is the right approach.

🌙

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.

What's New Section

2 participants