diff --git a/frontend/src/components/layout/RightSidebar.tsx b/frontend/src/components/layout/RightSidebar.tsx
index a7703d1..943a365 100644
--- a/frontend/src/components/layout/RightSidebar.tsx
+++ b/frontend/src/components/layout/RightSidebar.tsx
@@ -31,7 +31,7 @@ import { formatApiError } from '../../lib/apiError'
* rating / color / discard / pick across the entire selection.
*/
export function RightSidebar() {
- const { selectedPhotos, activePhotoId, clearSelection } = usePhotoStore()
+ const { selectedPhotos, activePhotoId } = usePhotoStore()
const queryClient = useQueryClient()
const {
@@ -182,9 +182,10 @@ export function RightSidebar() {
},
})
- // Unified header rendered in every branch so the collapse button is
- // always reachable regardless of selection state. Title and the
- // clear-selection X adapt to what's selected.
+ // Unified header rendered in every branch so the panel always has
+ // a title strip regardless of selection state. The title adapts to
+ // what's selected; selection is cleared via Esc or by clicking
+ // empty space in the grid.
const headerTitle =
selectedPhotos.length === 0
? 'Metadata'
@@ -193,24 +194,10 @@ export function RightSidebar() {
: `${selectedPhotos.length} Photos Selected`
const Header = () => (
-
+ {/* Edit fields — collapsible group so the user can hide the
+ * editable form (filename, title, notes, rating, color, flag)
+ * the same way they can hide the readonly metadata block below. */}
+ toggleSection('edit')}
+ className="border-b border-border"
+ >
+
+ Edit
+ {expandedSections.has('edit') ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
{/* Read-only metadata — collapsed/expanded as one block so the user
* can hide everything below the editable form with a single click.