Skip to content

Conversation

@danactive
Copy link
Owner

@danactive danactive commented Jan 4, 2026

Summary

Camera and smart phone produce images like DSC06077.JPG. The display expects lowercase and Next.js image is strict so there will be broken images. Then admin rename forced to lowercase

Improved clear keyword filter. URL may set the keyword then the search results label, and the input text match. Input may be set and URL, and search result label match. New clear button to replace MUI clear x.

Test plan

Added new test cases in Vitest format, and migrated related Jest tests to Vitest

Screenshot 2026-01-03 at 22 37 19

@vercel
Copy link

vercel bot commented Jan 4, 2026

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

Project Deployment Review Updated (UTC)
history Ready Ready Preview, Comment Jan 6, 2026 6:00am

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR forces file extensions to lowercase to ensure compatibility with Next.js Image component, which is case-sensitive. The changes address the issue where cameras and smartphones produce images with uppercase extensions (e.g., .JPG), which would result in broken images in the UI.

  • Extension lowercasing logic added to renamePaths function to normalize file extensions
  • Extension lowercasing logic added to moveRaws function for raw photo and video file handling
  • Video extension handling migrated from hardcoded array to configuration-based approach
  • Comprehensive test suite migration from Jest to Vitest with expanded coverage
  • Unrelated UI improvements: search clear button and autocomplete handling fixes

Reviewed changes

Copilot reviewed 8 out of 25 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/lib/rename.ts Core changes: lowercase extensions in renamePaths and moveRaws, add collision detection warning, use config for video extensions
src/lib/tests/rename.vitest.ts New comprehensive Vitest test suite covering renamePaths, moveRaws, and errorSchema with edge cases
src/lib/tests/rename.test.ts Removed old Jest tests, migrated to Vitest format
src/lib/tests/rename-rename.vitest.ts Removed and consolidated into main test file
src/lib/tests/rename-moveRaw.vitest.ts Removed mocked tests, replaced with integration tests in main file
src/hooks/useSearch.tsx Added Clear button functionality and improved URL sync behavior
src/components/ComboBox.tsx Fixed null value handling and disabled clearable for better UX consistency
src/components/SplitViewer/tests/SplitViewer.color.vitest.tsx Added eslint disable comment for Next.js img element in test mock
public/test/fixtures/* Added test fixture files for uppercase extensions, mixed case, collisions, and multi-extension scenarios

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 28 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 38 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@danactive danactive merged commit 04a9ce3 into main Jan 10, 2026
18 checks passed
@danactive danactive deleted the feature/rename-lower branch January 10, 2026 21:30
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.

2 participants