[Feature] Cover Image Usability Improvements#6865
[Feature] Cover Image Usability Improvements#6865Stash-KennyG wants to merge 5 commits intostashapp:developfrom
Conversation
- Removed direct thumbnail generation options from Scene dropdown. - Added onGenerateThumbFromCurrent and onGenerateThumbDefault props to SceneEditPanel for handling thumbnail generation. - Updated ImageInput component to include buttons for generating thumbnails from the current image and a default image.
- Introduced `cover_image_source` field in the Scene type, SceneCreateInput, and SceneUpdateInput to track the origin of cover images. - Updated the GraphQL schema and corresponding resolver logic to handle the new field. - Implemented default cover image source logic in the resolver for scene creation and updates. - Added migration to include `cover_image_source` column in the scenes table. - Enhanced UI components to support the new cover image source functionality, including updates to SceneEditPanel and SceneDetails.
Resolve naming-convention and React hook dependency warnings in SceneFileInfoPanel, and apply gofmt whitespace normalization in sqlite scene model. Made-with: Cursor
Adjust import/order and JSX wrapping in ImageInput and IconField to align with Prettier style expectations. Made-with: Cursor
Apply style-only formatting changes in Scene cover source/update files to satisfy validate-ui format checks without behavioral changes. Made-with: Cursor
Gykes
left a comment
There was a problem hiding this comment.
So I haven't actually reviewed the code but here are my 2 thoughts:
-
The set image button should probably be changed to a split button similar to what was done here
-
The file info pane changes seem.... excessive. Is knowing that you pasted your image from clipboard really needed? I feel like most of those options are somewhat useless. This seems to just take up more screen space for not total gain. This is an opinion but that feature might need more discussion before we go ahead with it.
|
I like the button idea. I grabbed this off the roadmap as it was labeled 'ready' so I assuemd we were ready to move forward. Overall, I can make the argument that being able to filter on 'custom/not-custom' has some value but I took the request from @feederbox826 on #6861 for feature 4 and 5 and just ran with them. But, I'm also not going to war over this hill.... Once there is clear guidance from the group, I'm happy to take whatever direction we want. |
It is ready but discussions still need to happen. WP/the community are always available to overturn me. I just personally feel like most of the options listed is very low value information and just increases core code requirements.
I don't disagree just I'm not a huge fan of the current implementation. |
Resolves #6861
Summary
cover_image_sourcetracking across UI and API, including fallback behavior for legacy/external callers.cover_image_sourcewith readable, icon-based output for known source types.Why This Change
User-Facing Improvements
API / Data Contract
Scene.cover_image_sourceis a nullable string field with semantic contract:NULLmeans unknown / legacy / no cover.default,clipboard,userscripturl:*,stash:*,timestamp:*,file:*SceneSceneCreateInputandSceneUpdateInputcover_imagebut omitscover_image_source, source defaults touserscript.cover_image_source: nullis preserved as null (intentional clear).Backwards Compatibility
NULLsource remain valid and do not display in UI (no forced migration rewrite).cover_imagenow get deterministic source (userscript) without requiring client changes.cover_image_sourcecontinue to control source behavior.UI enhancement
IconFieldabstraction insrc/utils/field.tsx.LLM Notes
I have done a first review of this and feel I've made some progress form feedback of others - thank you.
This was made with the help of Cursor