Custom reader profiles

This commit is contained in:
schroda
2024-10-28 18:03:29 +01:00
parent 0855fbcf23
commit 0ae9d9ebb2
32 changed files with 655 additions and 106 deletions

View File

@@ -6,7 +6,28 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import ManageAccountsIcon from '@mui/icons-material/ManageAccounts';
import { IReaderSettings, ReadingMode } from '@/modules/reader/types/Reader.types.ts';
import { DEFAULT_READER_PROFILE } from '@/modules/reader/constants/ReaderSettings.constants.tsx';
import { ValueToDisplayData } from '@/modules/core/Core.types.ts';
export const isOffsetDoubleSpreadPagesEditable = (readingMode: IReaderSettings['readingMode']): boolean =>
readingMode === ReadingMode.DOUBLE_PAGE;
export const createProfileValueToDisplayData = (
profiles: string[],
setIcon: boolean = false,
): ValueToDisplayData<string> =>
Object.fromEntries(
profiles.map((profile) => [
profile,
{
isTitleString: profile !== DEFAULT_READER_PROFILE,
title: profile === DEFAULT_READER_PROFILE ? 'global.label.standard' : profile,
icon: setIcon ? <ManageAccountsIcon /> : null,
},
]),
) as ValueToDisplayData<string>;
export const getValidReaderProfile = (profile: string, profiles: string[]): string =>
profiles.includes(profile) ? profile : DEFAULT_READER_PROFILE;