Add SFW content mode option (#6262)

* Use more neutral language for content
* Add sfw mode setting
* Make configuration context mandatory
* Add sfw class when sfw mode active
* Hide nsfw performer fields in sfw mode
* Hide nsfw sort options
* Hide nsfw filter/sort options in sfw mode
* Replace o-count with like counter in sfw mode
* Use sfw label for o-counter filter in sfw mode
* Use likes instead of o-count in sfw mode in other places
* Rename sfw mode to sfw content mode
* Use sfw image for default performers in sfw mode
* Document SFW content mode
* Add SFW mode setting to setup
* Clarify README
* Change wording of sfw mode description
* Handle configuration loading error correctly
* Hide age in performer cards
This commit is contained in:
WithoutPants
2025-11-18 11:13:35 +11:00
committed by GitHub
parent bb56b619f5
commit 51999135be
105 changed files with 843 additions and 370 deletions

View File

@@ -2,14 +2,28 @@ import React from "react";
import * as GQL from "src/core/generated-graphql";
export interface IContext {
configuration?: GQL.ConfigDataFragment;
loading?: boolean;
configuration: GQL.ConfigDataFragment;
}
export const ConfigurationContext = React.createContext<IContext>({});
export const ConfigurationContext = React.createContext<IContext | null>(null);
export const useConfigurationContext = () => {
const context = React.useContext(ConfigurationContext);
if (context === null) {
throw new Error(
"useConfigurationContext must be used within a ConfigurationProvider"
);
}
return context;
};
export const useConfigurationContextOptional = () => {
return React.useContext(ConfigurationContext);
};
export const ConfigurationProvider: React.FC<IContext> = ({
loading,
configuration,
children,
}) => {
@@ -17,7 +31,6 @@ export const ConfigurationProvider: React.FC<IContext> = ({
<ConfigurationContext.Provider
value={{
configuration,
loading,
}}
>
{children}