Rename "MultiValueButton" props to "SelectButton" props
This commit is contained in:
@@ -13,7 +13,7 @@ import { CustomTooltip } from '@/base/components/CustomTooltip.tsx';
|
|||||||
import { Superscript } from '@/base/components/texts/Superscript.tsx';
|
import { Superscript } from '@/base/components/texts/Superscript.tsx';
|
||||||
import type { ValueToDisplayData } from '@/base/Base.types.ts';
|
import type { ValueToDisplayData } from '@/base/Base.types.ts';
|
||||||
|
|
||||||
export interface MultiValueButtonBaseProps<Value extends string | number, MultiValue extends Value | Value[] = Value> {
|
export interface SelectButtonBaseProps<Value extends string | number, MultiValue extends Value | Value[] = Value> {
|
||||||
value: MultiValue;
|
value: MultiValue;
|
||||||
defaultValue?: Value;
|
defaultValue?: Value;
|
||||||
values: Value[];
|
values: Value[];
|
||||||
@@ -21,18 +21,17 @@ export interface MultiValueButtonBaseProps<Value extends string | number, MultiV
|
|||||||
valueToDisplayData: ValueToDisplayData<Value>;
|
valueToDisplayData: ValueToDisplayData<Value>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MultiValueButtonDefaultableProps<
|
export interface SelectButtonDefaultableProps<
|
||||||
Value extends string | number,
|
Value extends string | number,
|
||||||
MultiValue extends Value | Value[] = Value,
|
MultiValue extends Value | Value[] = Value,
|
||||||
> extends OptionalProperty<MultiValueButtonBaseProps<Value, MultiValue>, 'value'> {
|
> extends OptionalProperty<SelectButtonBaseProps<Value, MultiValue>, 'value'> {
|
||||||
isDefaultable?: boolean;
|
isDefaultable?: boolean;
|
||||||
onDefault?: () => void;
|
onDefault?: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MultiValueButtonProps<Value extends string | number, MultiValue extends Value | Value[] = Value> =
|
export type SelectButtonProps<Value extends string | number, MultiValue extends Value | Value[] = Value> =
|
||||||
| (MultiValueButtonBaseProps<Value, MultiValue> &
|
| (SelectButtonBaseProps<Value, MultiValue> & PropertiesNever<SelectButtonDefaultableProps<Value, MultiValue>>)
|
||||||
PropertiesNever<MultiValueButtonDefaultableProps<Value, MultiValue>>)
|
| SelectButtonDefaultableProps<Value, MultiValue>;
|
||||||
| MultiValueButtonDefaultableProps<Value, MultiValue>;
|
|
||||||
|
|
||||||
export const SelectButton = <Value extends string | number, MultiValue extends Value | Value[] = Value>({
|
export const SelectButton = <Value extends string | number, MultiValue extends Value | Value[] = Value>({
|
||||||
value,
|
value,
|
||||||
@@ -42,7 +41,7 @@ export const SelectButton = <Value extends string | number, MultiValue extends V
|
|||||||
valueToDisplayData,
|
valueToDisplayData,
|
||||||
isDefaultable,
|
isDefaultable,
|
||||||
onDefault,
|
onDefault,
|
||||||
}: MultiValueButtonProps<Value, MultiValue>) => {
|
}: SelectButtonProps<Value, MultiValue>) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import {
|
|||||||
READER_PAGE_SCALE_MODE_VALUES,
|
READER_PAGE_SCALE_MODE_VALUES,
|
||||||
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { CustomIconButton } from '@/base/components/buttons/CustomIconButton.tsx';
|
import { CustomIconButton } from '@/base/components/buttons/CustomIconButton.tsx';
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopPageScale = ({
|
export const ReaderNavBarDesktopPageScale = ({
|
||||||
pageScaleMode,
|
pageScaleMode,
|
||||||
@@ -30,7 +30,7 @@ export const ReaderNavBarDesktopPageScale = ({
|
|||||||
updateSetting,
|
updateSetting,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'pageScaleMode' | 'shouldStretchPage'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'pageScaleMode' | 'shouldStretchPage'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReaderPageScaleMode>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReaderPageScaleMode>, 'isDefaultable' | 'onDefault'> & {
|
||||||
updateSetting: <Setting extends keyof Pick<IReaderSettings, 'pageScaleMode' | 'shouldStretchPage'>>(
|
updateSetting: <Setting extends keyof Pick<IReaderSettings, 'pageScaleMode' | 'shouldStretchPage'>>(
|
||||||
setting: Setting,
|
setting: Setting,
|
||||||
value: IReaderSettings[Setting],
|
value: IReaderSettings[Setting],
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ import {
|
|||||||
READING_DIRECTION_VALUE_TO_DISPLAY_DATA,
|
READING_DIRECTION_VALUE_TO_DISPLAY_DATA,
|
||||||
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopReadingDirection = ({
|
export const ReaderNavBarDesktopReadingDirection = ({
|
||||||
readingDirection,
|
readingDirection,
|
||||||
setReadingDirection,
|
setReadingDirection,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'readingDirection'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'readingDirection'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setReadingDirection: (readingDirection: ReadingDirection) => void;
|
setReadingDirection: (readingDirection: ReadingDirection) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ import {
|
|||||||
READING_MODE_VALUES,
|
READING_MODE_VALUES,
|
||||||
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopReadingMode = ({
|
export const ReaderNavBarDesktopReadingMode = ({
|
||||||
readingMode,
|
readingMode,
|
||||||
setReadingMode,
|
setReadingMode,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'readingMode'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'readingMode'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingMode>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingMode>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setReadingMode: (mode: ReadingMode) => void;
|
setReadingMode: (mode: ReadingMode) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { SliderInput } from '@/base/components/inputs/SliderInput.tsx';
|
|||||||
import { DEFAULT_READER_SETTINGS, PAGE_GAP } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
import { DEFAULT_READER_SETTINGS, PAGE_GAP } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { isContinuousReadingMode } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
import { isContinuousReadingMode } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
|
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderSettingPageGap = ({
|
export const ReaderSettingPageGap = ({
|
||||||
pageGap,
|
pageGap,
|
||||||
@@ -22,7 +22,7 @@ export const ReaderSettingPageGap = ({
|
|||||||
onDefault,
|
onDefault,
|
||||||
updateSetting,
|
updateSetting,
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'pageGap' | 'readingMode'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'pageGap' | 'readingMode'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<IReaderSettings['pageGap']>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<IReaderSettings['pageGap']>, 'isDefaultable' | 'onDefault'> & {
|
||||||
updateSetting: (gap: number, commit: boolean) => void;
|
updateSetting: (gap: number, commit: boolean) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -18,14 +18,14 @@ import {
|
|||||||
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
||||||
|
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderSettingPageScaleMode = ({
|
export const ReaderSettingPageScaleMode = ({
|
||||||
pageScaleMode,
|
pageScaleMode,
|
||||||
setPageScaleMode,
|
setPageScaleMode,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'pageScaleMode'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'pageScaleMode'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setPageScaleMode: (mode: IReaderSettings['pageScaleMode']) => void;
|
setPageScaleMode: (mode: IReaderSettings['pageScaleMode']) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import type { IReaderSettingsWithDefaultFlag } from '@/features/reader/Reader.ty
|
|||||||
import { ReadingDirection } from '@/features/reader/Reader.types.ts';
|
import { ReadingDirection } from '@/features/reader/Reader.types.ts';
|
||||||
import type { ValueToDisplayData } from '@/base/Base.types.ts';
|
import type { ValueToDisplayData } from '@/base/Base.types.ts';
|
||||||
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
const VALUE_TO_DISPLAY_DATA: ValueToDisplayData<ReadingDirection> = {
|
const VALUE_TO_DISPLAY_DATA: ValueToDisplayData<ReadingDirection> = {
|
||||||
[ReadingDirection.LTR]: {
|
[ReadingDirection.LTR]: {
|
||||||
@@ -34,7 +34,7 @@ export const ReaderSettingReadingDirection = ({
|
|||||||
setReadingDirection,
|
setReadingDirection,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'readingDirection'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'readingDirection'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setReadingDirection: (readingDirection: ReadingDirection) => void;
|
setReadingDirection: (readingDirection: ReadingDirection) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ import {
|
|||||||
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
||||||
|
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderSettingReadingMode = ({
|
export const ReaderSettingReadingMode = ({
|
||||||
readingMode,
|
readingMode,
|
||||||
setReadingMode,
|
setReadingMode,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'readingMode'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'readingMode'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingMode>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingMode>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setReadingMode: (mode: ReadingMode) => void;
|
setReadingMode: (mode: ReadingMode) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import type {
|
|||||||
} from '@/features/reader/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import type { TapZoneInvertMode } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
import type { TapZoneInvertMode } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
enum TapZonesInvertOption {
|
enum TapZonesInvertOption {
|
||||||
NONE,
|
NONE,
|
||||||
@@ -86,7 +86,7 @@ export const ReaderSettingTapZoneInvertMode = ({
|
|||||||
setTapZoneInvertMode,
|
setTapZoneInvertMode,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'tapZoneInvertMode'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'tapZoneInvertMode'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setTapZoneInvertMode: (invert: IReaderSettings['tapZoneInvertMode']) => void;
|
setTapZoneInvertMode: (invert: IReaderSettings['tapZoneInvertMode']) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { TapZoneLayouts } from '@/features/reader/tap-zones/TapZoneLayout.types.
|
|||||||
import type { ValueToDisplayData } from '@/base/Base.types.ts';
|
import type { ValueToDisplayData } from '@/base/Base.types.ts';
|
||||||
import type { IReaderSettingsWithDefaultFlag, ReadingDirection } from '@/features/reader/Reader.types.ts';
|
import type { IReaderSettingsWithDefaultFlag, ReadingDirection } from '@/features/reader/Reader.types.ts';
|
||||||
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/base/components/inputs/ButtonSelectInput.tsx';
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
const VALUE_TO_DISPLAY_DATA: ValueToDisplayData<TapZoneLayouts> = {
|
const VALUE_TO_DISPLAY_DATA: ValueToDisplayData<TapZoneLayouts> = {
|
||||||
[TapZoneLayouts.EDGE]: {
|
[TapZoneLayouts.EDGE]: {
|
||||||
@@ -44,7 +44,7 @@ export const ReaderSettingTapZoneLayout = ({
|
|||||||
setTapZoneLayout,
|
setTapZoneLayout,
|
||||||
...buttonSelectInputProps
|
...buttonSelectInputProps
|
||||||
}: Pick<IReaderSettingsWithDefaultFlag, 'tapZoneLayout'> &
|
}: Pick<IReaderSettingsWithDefaultFlag, 'tapZoneLayout'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<ReadingDirection>, 'isDefaultable' | 'onDefault'> & {
|
||||||
setTapZoneLayout: (layout: TapZoneLayouts) => void;
|
setTapZoneLayout: (layout: TapZoneLayouts) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { SliderInput } from '@/base/components/inputs/SliderInput.tsx';
|
|||||||
import { DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
import { DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { isReaderWidthEditable } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
import { isReaderWidthEditable } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { ResetButton } from '@/base/components/buttons/ResetButton.tsx';
|
import { ResetButton } from '@/base/components/buttons/ResetButton.tsx';
|
||||||
import type { MultiValueButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
import type { SelectButtonDefaultableProps } from '@/base/components/buttons/SelectButton.tsx';
|
||||||
|
|
||||||
export const ReaderSettingWidth = ({
|
export const ReaderSettingWidth = ({
|
||||||
readerWidth,
|
readerWidth,
|
||||||
@@ -25,7 +25,7 @@ export const ReaderSettingWidth = ({
|
|||||||
updateSetting,
|
updateSetting,
|
||||||
setTransparent,
|
setTransparent,
|
||||||
}: Pick<IReaderSettings, 'readerWidth' | 'pageScaleMode'> &
|
}: Pick<IReaderSettings, 'readerWidth' | 'pageScaleMode'> &
|
||||||
Pick<MultiValueButtonDefaultableProps<IReaderSettings['readerWidth']['value']>, 'isDefaultable' | 'onDefault'> & {
|
Pick<SelectButtonDefaultableProps<IReaderSettings['readerWidth']['value']>, 'isDefaultable' | 'onDefault'> & {
|
||||||
updateSetting: (...args: Parameters<typeof ReaderService.updateSetting>) => void;
|
updateSetting: (...args: Parameters<typeof ReaderService.updateSetting>) => void;
|
||||||
setTransparent?: (transparent: boolean) => void;
|
setTransparent?: (transparent: boolean) => void;
|
||||||
}) => {
|
}) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user