diff --git a/src/modules/reader/components/settings/ReaderSettings.tsx b/src/modules/reader/components/settings/ReaderSettings.tsx
index 3ca70131..17934d99 100644
--- a/src/modules/reader/components/settings/ReaderSettings.tsx
+++ b/src/modules/reader/components/settings/ReaderSettings.tsx
@@ -15,6 +15,7 @@ import { ReaderService } from '@/modules/reader/services/ReaderService.ts';
import { ReaderSettingsTabs } from '@/modules/reader/components/settings/ReaderSettingsTabs.tsx';
import { ReaderSettingTab } from '@/modules/reader/constants/ReaderSettings.constants.tsx';
import { useDisableAllHotkeysWhileMounted } from '@/modules/hotkeys/Hotkeys.utils.ts';
+import { applyStyles } from '@/modules/core/utils/ApplyStyles.ts';
export const ReaderSettings = ({ isOpen, close }: { isOpen: boolean; close: () => void }) => {
const { manga } = useReaderStateMangaContext();
@@ -23,6 +24,7 @@ export const ReaderSettings = ({ isOpen, close }: { isOpen: boolean; close: () =
useDisableAllHotkeysWhileMounted(isOpen);
const [activeTab, setActiveTab] = useState(0);
+ const [isTransparent, setIsTransparent] = useState(false);
if (!manga) {
return null;
@@ -39,6 +41,11 @@ export const ReaderSettings = ({ isOpen, close }: { isOpen: boolean; close: () =
fullWidth
onClose={close}
hideBackdrop={activeTab === ReaderSettingTab.FILTER}
+ sx={{
+ ...applyStyles(isTransparent, {
+ opacity: 0.75,
+ }),
+ }}
>
ReaderService.updateSetting(manga, ...args)}
deleteSetting={(...args) => ReaderService.deleteSetting(manga, ...args)}
+ setTransparent={setIsTransparent}
/>
diff --git a/src/modules/reader/components/settings/ReaderSettingsTabs.tsx b/src/modules/reader/components/settings/ReaderSettingsTabs.tsx
index f1ba2cb5..4f390b0c 100644
--- a/src/modules/reader/components/settings/ReaderSettingsTabs.tsx
+++ b/src/modules/reader/components/settings/ReaderSettingsTabs.tsx
@@ -35,6 +35,7 @@ const BaseReaderSettingsTabs = ({
deleteSetting,
setShowPreview,
mode: overlayMode,
+ setTransparent,
}: Pick &
Pick, 'mode'> & {
activeTab: number;
@@ -43,6 +44,7 @@ const BaseReaderSettingsTabs = ({
updateSetting: (...args: OmitFirst>) => void;
areDefaultSettings?: boolean;
deleteSetting: (setting: keyof IReaderSettings) => void;
+ setTransparent?: (transparent: boolean) => void;
}) => {
const { t } = useTranslation();
const isTouchDevice = MediaQuery.useIsTouchDevice();
@@ -103,6 +105,7 @@ const BaseReaderSettingsTabs = ({
isDefaultable={!areDefaultSettings}
onDefault={(...args) => deleteSetting?.(...args)}
isSeriesMode
+ setTransparent={setTransparent}
/>
);
@@ -137,6 +140,7 @@ const BaseReaderSettingsTabs = ({
updateSetting={(...args) => updateSetting(...args)}
isDefaultable
onDefault={(...args) => deleteSetting?.(...args)}
+ setTransparent={setTransparent}
/>
);
diff --git a/src/modules/reader/components/settings/filters/ReaderFilterSettings.tsx b/src/modules/reader/components/settings/filters/ReaderFilterSettings.tsx
index 755eafc1..504d9b1a 100644
--- a/src/modules/reader/components/settings/filters/ReaderFilterSettings.tsx
+++ b/src/modules/reader/components/settings/filters/ReaderFilterSettings.tsx
@@ -22,102 +22,105 @@ export const ReaderFilterSettings = ({
settings: { customFilter },
updateSetting,
onDefault,
-}: ReaderSettingsTypeProps) => (
-
-
- updateSetting(
- 'customFilter',
- {
+ setTransparent,
+}: ReaderSettingsTypeProps) => {
+ const update = (value: any, commit?: boolean) => {
+ updateSetting('customFilter', value, commit);
+ setTransparent?.(commit === undefined ? false : !commit);
+ };
+
+ return (
+
+
+ update(
+ {
+ ...customFilter,
+ [key]: value,
+ },
+ commit,
+ )
+ }
+ />
+
+ update(
+ {
+ ...customFilter,
+ [key]: value,
+ },
+ commit,
+ )
+ }
+ />
+
+ update(
+ {
+ ...customFilter,
+ [key]: value,
+ },
+ commit,
+ )
+ }
+ />
+
+ update(
+ {
+ ...customFilter,
+ [key]: value,
+ },
+ commit,
+ )
+ }
+ />
+
+ update(
+ {
+ ...customFilter,
+ [key]: value,
+ },
+ commit,
+ )
+ }
+ />
+
+ update({
...customFilter,
- [key]: value,
- },
- commit,
- )
- }
- />
-
- updateSetting(
- 'customFilter',
- {
+ sepia: value,
+ })
+ }
+ />
+
+ update({
...customFilter,
- [key]: value,
- },
- commit,
- )
- }
- />
-
- updateSetting(
- 'customFilter',
- {
+ grayscale: value,
+ })
+ }
+ />
+
+ update({
...customFilter,
- [key]: value,
- },
- commit,
- )
- }
- />
-
- updateSetting(
- 'customFilter',
- {
- ...customFilter,
- [key]: value,
- },
- commit,
- )
- }
- />
-
- updateSetting(
- 'customFilter',
- {
- ...customFilter,
- [key]: value,
- },
- commit,
- )
- }
- />
-
- updateSetting('customFilter', {
- ...customFilter,
- sepia: value,
- })
- }
- />
-
- updateSetting('customFilter', {
- ...customFilter,
- grayscale: value,
- })
- }
- />
-
- updateSetting('customFilter', {
- ...customFilter,
- invert: value,
- })
- }
- />
-
- onDefault?.('customFilter')} variant="outlined" />
+ invert: value,
+ })
+ }
+ />
+
+ onDefault?.('customFilter')} variant="outlined" />
+
-
-);
+ );
+};
diff --git a/src/modules/reader/components/settings/layout/ReaderLayoutSettings.tsx b/src/modules/reader/components/settings/layout/ReaderLayoutSettings.tsx
index 519caf1f..7de1fb5c 100644
--- a/src/modules/reader/components/settings/layout/ReaderLayoutSettings.tsx
+++ b/src/modules/reader/components/settings/layout/ReaderLayoutSettings.tsx
@@ -30,6 +30,7 @@ export const ReaderLayoutSettings = ({
isDefaultable,
onDefault,
isSeriesMode,
+ setTransparent,
}: ReaderSettingsTypeProps & {
setShowPreview: TReaderTapZoneContext['setShowPreview'];
isSeriesMode?: boolean;
@@ -104,6 +105,7 @@ export const ReaderLayoutSettings = ({
isDefaultable={isDefaultable}
onDefault={() => onDefault?.('readerWidth')}
updateSetting={(...args) => updateSetting(...args)}
+ setTransparent={setTransparent}
/>
{isSeriesMode && (
<>
@@ -112,6 +114,7 @@ export const ReaderLayoutSettings = ({
profiles={[settings.readingMode.value]}
updateSetting={updateSetting}
isSeriesMode={isSeriesMode}
+ setTransparent={setTransparent}
/>
>
)}
diff --git a/src/modules/reader/components/settings/layout/ReaderSettingWidth.tsx b/src/modules/reader/components/settings/layout/ReaderSettingWidth.tsx
index 44f4dc61..ce69ac71 100644
--- a/src/modules/reader/components/settings/layout/ReaderSettingWidth.tsx
+++ b/src/modules/reader/components/settings/layout/ReaderSettingWidth.tsx
@@ -23,9 +23,11 @@ export const ReaderSettingWidth = ({
isDefaultable,
onDefault,
updateSetting,
+ setTransparent,
}: Pick &
Pick, 'isDefaultable' | 'onDefault'> & {
updateSetting: (...args: OmitFirst>) => void;
+ setTransparent?: (transparent: boolean) => void;
}) => {
const { t } = useTranslation();
@@ -55,9 +57,11 @@ export const ReaderSettingWidth = ({
min: 10,
max: 100,
onChange: (_, value) => {
+ setTransparent?.(true);
updateSetting('readerWidth', { ...readerWidth, value: value as number }, false);
},
onChangeCommitted: (_, value) => {
+ setTransparent?.(false);
updateSetting('readerWidth', { ...readerWidth, value: value as number }, true);
},
},
diff --git a/src/modules/reader/types/Reader.types.ts b/src/modules/reader/types/Reader.types.ts
index 6d033e66..6fe7227e 100644
--- a/src/modules/reader/types/Reader.types.ts
+++ b/src/modules/reader/types/Reader.types.ts
@@ -233,6 +233,7 @@ interface ReaderSettingsTypeBaseProps {
export interface ReaderSettingsDefaultableProps {
isDefaultable: boolean;
onDefault: (setting: keyof IReaderSettings) => void;
+ setTransparent?: (transparent: boolean) => void;
}
interface ReaderSettingsTypeDefaultableProps extends ReaderSettingsTypeBaseProps, ReaderSettingsDefaultableProps {