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.
This commit is contained in:
KennyG 2026-04-30 19:51:33 -04:00
parent 18eedfc724
commit 01eda04b6f

View file

@ -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<GQL.PerformerDataFragment>;
isVisible: boolean;
@ -426,14 +435,9 @@ export const PerformerEditPanel: React.FC<IPerformerDetails> = ({
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<IPerformerDetails> = ({
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) {