Commit graph

3253 commits

Author SHA1 Message Date
KennyG
455cac489f Enhance performer popover functionality and sizing
- Added `cardContent` prop to `PerformerPopover` and `PerformerPopoverCard` for flexible content rendering.
- Introduced `TaggerPerformerPopover` to handle both local and scraped performer data, replacing the previous `ScrapedPerformerPreview`.
- Created `ScrapedPerformerCard` for displaying scraped performer details, including age and country flag.
- Updated styles for the tag popover card to ensure consistent dimensions and improved layout.

This refactor improves the encapsulation and display of performer information across the tagger components.
2026-05-04 10:45:43 -04:00
KennyG
9d1813e215 Apply Prettier formatting to scraped performer preview.
Normalize import formatting in ScrapedPerformerPreview to match repository Prettier output and unblock validate-ui format-check.

Made-with: Cursor
2026-04-23 11:37:16 -04:00
KennyG
372945a80c Restore full performer card for ID popovers.
Use full PerformerCard in PerformerPopover ID mode so favorites and card button overlays render again, while keeping previewData mode for scraped/tagger previews.

Made-with: Cursor
2026-04-23 11:34:34 -04:00
KennyG
d7c49b070b Fix stylelint property order in tagger popover styles.
Reorder padding declarations in the matched performer popover extra block to satisfy alphabetical property order enforced by stylelint.

Made-with: Cursor
2026-04-23 11:30:59 -04:00
KennyG
47d81afe9e Refactor css components for improved styling and consistency
- Updated CSS class names from `tagger-performer-popover` to `performer-preview-popover` for clarity.
- Enhanced styling for the new `performer-preview-popover` class to ensure consistent dimensions and image handling.
- Removed outdated styles related to the previous tagger popover implementation.
2026-04-23 11:24:16 -04:00
KennyG
4c6938ca3a Consolidate styling of performer popover card
- Replaced PerformerPreviewCard with PerformerCard in PerformerPopover for better encapsulation and display.
- Simplified MatchedPerformerPreview by removing unnecessary loading state handling and age calculations.
- Enhanced styling in Tagger component with additional padding for better layout consistency.
2026-04-23 11:18:34 -04:00
KennyG
96d7b888a1 Addressing static code review issues.
Refactor PerformerPopover and related components for improved functionality and structure

- Updated PerformerPopover to accept preview data, loading states, and additional card extras for enhanced flexibility.
- Replaced PerformerCard with PerformerPreviewCard in PerformerPopoverCard for better encapsulation and display of performer details.
- Refactored MatchedPerformerPreview and ScrapedPerformerPreview to utilize PerformerPopover, streamlining the rendering of performer information and loading states.
- Improved styling by renaming CSS classes for consistency and clarity.
2026-04-23 10:39:37 -04:00
KennyG
bfe73cdf09 Refactor MatchedPerformerPreview and PerformerResult components for lazy/async functionality
- Updated MatchedPerformerPreview to utilize scraped performer data and handle loading states more effectively.
- Introduced delta row calculations for displaying differences between local and scraped performer data.
- Removed redundant code and improved the overall organization of the components for better maintainability.
2026-04-22 14:10:29 -04:00
KennyG
8aae9216e1 Fix scraped performer gender type for preview card.
Convert scraped performer gender strings to GenderEnum using stringToGender before rendering GenderIcon so UI type-check passes in CI.

Made-with: Cursor
2026-04-22 13:27:48 -04:00
KennyG
db7164d254 Refactor normalizeValue function in PerformerResult component for improved value handling.
- Enhanced the normalizeValue function to handle numeric-like strings, converting them to numbers when applicable.
- Maintained existing functionality for trimming and lowercasing non-numeric strings, ensuring consistent value normalization.
2026-04-22 12:02:30 -04:00
KennyG
7a87e15f41 Refactor performer preview components for improved structure and functionality.
- Replaced `PerformerCard` with `LocalPerformerCard` in `MatchedPerformerPreview` for better encapsulation.
- Introduced `RemotePerformerCard` in `ScrapedPerformerPreview` to enhance the display of performer details, including gender and country flag.
- Updated content rendering in `ScrapedPerformerPreview` to utilize the new `RemotePerformerCard` component.
2026-04-22 11:29:57 -04:00
KennyG
505753d805 Implement internationalization in ScrapedPerformerPreview component.
- Added `useIntl` hook to support localized performer names.
- Updated `toPerformerCardData` function to utilize `intl` for formatting unknown performer names, enhancing user experience across different languages.
2026-04-22 09:22:56 -04:00
KennyG
64c8a22cf5 Enhance PerformerResult component with internationalization support.
- Refactored buildPerformerDeltaRows to utilize `intl` for label formatting, improving localization.
- Updated loading state message to use `FormattedMessage` for better internationalization.
- Ensured all performer attributes are displayed with localized labels, enhancing user experience across different languages.
2026-04-22 08:48:29 -04:00
KennyG
c0313fea37 Format tagger preview files with Prettier 2.8.4.
Use repository Prettier version to align with CI format-check expectations.

Made-with: Cursor
2026-04-21 17:05:25 -04:00
KennyG
49a777c97f Apply Prettier formatting to tagger preview files.
Format PerformerResult and ScrapedPerformerPreview with Prettier to satisfy validate-ui format checks.

Made-with: Cursor
2026-04-21 17:02:46 -04:00
KennyG
accc6ad1ae Align tagger preview files with repository formatting patterns.
Rework formatting structure in performer result and scraped preview to match established Prettier output style.

Made-with: Cursor
2026-04-21 16:59:50 -04:00
KennyG
ba2ec74f4b Normalize formatting patterns in tagger performer preview files.
Restructure imports and helper formatting to better match repository Prettier conventions.

Made-with: Cursor
2026-04-21 16:55:41 -04:00
KennyG
609395cbeb Adjust formatting in performer result and scraped preview.
Normalize formatting patterns to align with repository Prettier output.

Made-with: Cursor
2026-04-21 16:53:01 -04:00
KennyG
211243919f Fix CI formatting for tagger performer preview files.
Apply Prettier-compatible formatting updates in matched preview, performer result, and scraped preview components.

Made-with: Cursor
2026-04-21 16:49:26 -04:00
KennyG
9ba90cb715 Fix performer preview TypeScript types for CI.
Use full findPerformer data for mismatch comparisons and selected hover content, and normalize scraped card mapping to satisfy PerformerDataFragment shape.

Made-with: Cursor
2026-04-21 16:44:59 -04:00
Stash-KennyG
8fcaf3a596
Delete docs/pr-6853-performer-hover-preview-draft.md
Cursor overzealous.
2026-04-21 16:38:14 -04:00
KennyG
db693060ea Add local PR draft notes for feature 6853.
Document summary, test plan, and compatibility note for card class shape changes.

Made-with: Cursor
2026-04-21 16:36:52 -04:00
KennyG
d4080f2d9b Refactor performer delta row conditions in PerformerResult
- Simplified conditions for displaying remote aliases and URLs by removing unnecessary checks against local counts.
- Ensured that rows are only pushed when remote counts exceed local counts, improving clarity and performance.
2026-04-21 16:36:23 -04:00
KennyG
c7bfdfd3cd Enhance performer previews with delta rows and new scraped performer component
- Added delta row functionality to display differences between local and remote performer data in MatchedPerformerPreview.
- Introduced ScrapedPerformerPreview component for displaying scraped performer details with hover functionality.
- Updated PerformerResult to integrate ScrapedPerformerPreview and pass necessary props for delta rows and warnings.
- Enhanced styling for performer popovers to improve user experience.
2026-04-21 16:03:02 -04:00
KennyG
701bcf8bc3 Tagger: show performer hover on picker selection
Made-with: Cursor
2026-04-21 14:54:47 -04:00
KennyG
7b38f6c419 Remove extra trailing blank line in MatchedPerformerPreview
Made-with: Cursor
2026-04-21 13:29:43 -04:00
KennyG
d0f1de3b9d Add children prop typing for MatchedPerformerPreview
Made-with: Cursor
2026-04-21 13:27:14 -04:00
KennyG
8d1c21a705 Remove unused React import in MatchedPerformerPreview
Made-with: Cursor
2026-04-21 13:25:27 -04:00
KennyG
93d9a59976 Adjust MatchedPerformerPreview declaration formatting
Made-with: Cursor
2026-04-21 13:24:09 -04:00
KennyG
de8f8465f7 Format MatchedPerformerPreview for prettier
Made-with: Cursor
2026-04-21 13:21:14 -04:00
KennyG
6f9dc1a09b Enhance PerformerPopover with cardClassName prop and add MatchedPerformerPreview component
- Added cardClassName prop to PerformerPopoverCard and PerformerPopover for customizable styling.
- Introduced MatchedPerformerPreview component to encapsulate PerformerPopover usage with a performerID.
- Updated PerformerResult to utilize MatchedPerformerPreview for improved structure and styling.
2026-04-21 13:10:06 -04:00
DogmaDragon
2c8a0ad192 Add architecture section 2026-04-19 23:48:59 +03:00
Gykes
443de78260
Merge pull request #6802 from stashapp/docs-normalize-manual-headers
Normalize manual headers
2026-04-17 13:40:03 -07:00
Gykes
26cd867a6a
Merge pull request #6773 from stashapp/docs-6673
Document details being searchable field on images
2026-04-13 22:36:43 -07:00
Gykes
f26ae0724b
Merge pull request #6772 from stashapp/docs-6449
Update object fields in scraper documentation
2026-04-13 22:36:29 -07:00
DogmaDragon
4de2351e7c
Clarify caption file naming conventions in documentation (#6821) 2026-04-13 11:03:09 +10:00
WithoutPants
82d12145cc
Fix typo in tag export (#6819) 2026-04-13 10:53:12 +10:00
WithoutPants
968a97aa45 Update changelog 2026-04-10 16:06:29 +10:00
dev-null-life
f920bd8b8e
Fix WebSocket UTF-8 error for non-UTF-8 file paths in subscriptions (#6810)
* Fix WebSocket UTF-8 error for non-UTF-8 file paths in subscriptions

Sanitize log messages and job fields (description, subtasks, error)
before sending over WebSocket. File paths with non-UTF-8 characters
caused the browser to close the connection with "Could not decode a
text frame as UTF-8." Invalid bytes are replaced with U+FFFD.

Only the API response layer is affected — underlying stored data is
unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Replace direct ToValidUTF8 calls to new sanitiseWebsocketString function
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2026-04-10 13:42:42 +10:00
WithoutPants
9b5c0b0e48
Match tag names/aliases exactly when testing uniqueness (#6809)
* Add tagStore.FindByAlias method
* Change tag.ByName and ByAlias to use exact queries instead of fuzzy matching
2026-04-08 13:11:12 +10:00
WithoutPants
034ae1a141
Try to create backup directory during migrate. Log warning on failure (#6808) 2026-04-08 11:30:32 +10:00
smith113-p
3af546db92
Let the stash ID pill shrink in tagger (#6807)
* Let the stash ID pill shrink in tagger

On very narrow viewports (e.g. mobile), the stash ID pill will
overflow its container. With this PR, it will instead limit itself
to the width of the container and display with an ellipsis if
necessary.

Fixes #6786
2026-04-08 10:17:57 +10:00
DogmaDragon
3b90e5191a
Merge branch 'develop' into docs-normalize-manual-headers 2026-04-07 09:42:40 +03:00
WithoutPants
60ce007c02
Show warning when creating parent tag without remote_site_id (#6805) 2026-04-07 16:34:43 +10:00
WithoutPants
f81053ae7d
Reset page when setting filter criteria (#6804)
Fixes sidebar folder filter not resetting page when selecting folders
2026-04-07 16:33:50 +10:00
WithoutPants
98074e3b57
Fix clicking on scene/marker wall item pushing to history twice (#6803) 2026-04-07 16:33:33 +10:00
Gykes
57ddec93e0
Fix: Update Postmigration 84 to Handle De-Duplicate of Folders. (#6792)
* update postmigration to handle deduplicate folders.
* Split post-migration to perform some tasks before the schema migration
* Reparent files and delete duplicate folder if possible
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2026-04-07 16:28:01 +10:00
DogmaDragon
5edd299b10
Clarify scene fingerprint submission details (#6784) 2026-04-07 15:32:53 +10:00
feederbox826
672147deaf
fix memory leak (#6796)
* allow channels to passively drain, empty fileQueue, scanner after scanning
* Prevent job executor retention in subscription channels
---------
Co-authored-by: feederbox826 <feederbox826@users.noreply.github.com>
Co-authored-by: Gykes <Gykes@pm.me>
2026-04-07 09:39:30 +10:00
DogmaDragon
6aaf3fe1b7 Add GitHub Sponsors to Contributing.md 2026-04-07 01:35:46 +03:00