From 01eda04b6fcd16c964080ad8fa5b95b489571149 Mon Sep 17 00:00:00 2001 From: KennyG Date: Thu, 30 Apr 2026 19:51:33 -0400 Subject: [PATCH] Breakout default gender handling in Module. - Introduced a new utility function `withScrapedPerformerDefaultGender` to streamline the assignment of default gender when scraping performer data. - Replaced inline gender handling logic with the new utility function in both scraping results for new and existing performers, improving code readability and maintainability. This change enhances the clarity of gender assignment logic during performer data scraping. --- .../PerformerDetails/PerformerEditPanel.tsx | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx b/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx index cab445aac..0eb7f11ff 100644 --- a/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx +++ b/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx @@ -58,6 +58,15 @@ const isScraper = ( scraper: GQL.Scraper | GQL.StashBox ): scraper is GQL.Scraper => (scraper as GQL.Scraper).id !== undefined; +function withScrapedPerformerDefaultGender< + T extends { gender?: GQL.GenderEnum | null }, +>(scraped: T, defaultGender: GQL.GenderEnum | null | undefined): T { + if (scraped.gender || !defaultGender) { + return scraped; + } + return { ...scraped, gender: defaultGender }; +} + interface IPerformerDetails { performer: Partial; isVisible: boolean; @@ -426,14 +435,9 @@ export const PerformerEditPanel: React.FC = ({ const result = await queryScrapePerformer(selectedScraper.id, ret); if (!result?.data?.scrapeSinglePerformer?.length) return; - const withDefaultGender = ( - scrapedPerformerData: GQL.ScrapedPerformerDataFragment - ) => - !scrapedPerformerData.gender && defaultPerformerGender - ? { ...scrapedPerformerData, gender: defaultPerformerGender } - : scrapedPerformerData; - const scrapedResult = withDefaultGender( - result.data.scrapeSinglePerformer[0] + const scrapedResult = withScrapedPerformerDefaultGender( + result.data.scrapeSinglePerformer[0], + defaultPerformerGender ); // assume one result @@ -460,13 +464,10 @@ export const PerformerEditPanel: React.FC = ({ return; } - const scrapedResult = - !result.data.scrapePerformerURL.gender && defaultPerformerGender - ? { - ...result.data.scrapePerformerURL, - gender: defaultPerformerGender, - } - : result.data.scrapePerformerURL; + const scrapedResult = withScrapedPerformerDefaultGender( + result.data.scrapePerformerURL, + defaultPerformerGender + ); // if this is a new performer, just dump the data if (isNew) {