import { HStack, VStack, SpanBox, Box } from '../../elements/LayoutPrimitives' import { Button } from '../../elements/Button' import { StyledText } from '../../elements/StyledText' import { styled, theme } from '../../tokens/stitches.config' import { useEffect, useState } from 'react' import { AlignCenterHorizontalSimple, ArrowsInLineHorizontal, ArrowsOutLineHorizontal, CaretRight, Cursor, } from 'phosphor-react' import { TickedRangeSlider } from '../../elements/TickedRangeSlider' import { showSuccessToast } from '../../../lib/toastHelpers' import { FontFamiliesOptions } from './FontFamiliesOptions' import { useReaderSettings } from '../../../lib/hooks/useReaderSettings' type ReaderSettingsProps = { articleActionHandler: (action: string, arg?: number | string) => void } const VerticalDivider = styled(SpanBox, { width: '1px', height: '100%', background: `${theme.colors.grayLine.toString()}`, }) const HorizontalDivider = styled(SpanBox, { width: '100%', height: '1px', background: `${theme.colors.grayLine.toString()}`, }) export function ReaderSettingsControl(props: ReaderSettingsProps): JSX.Element { const [showFontOptions, setShowFontOptions] = useState(false) const readerSettings = useReaderSettings() return ( {showFontOptions ? ( { readerSettings.setFontFamily(font) props.articleActionHandler('setFontFamily', font) }} /> ) : ( <> setShowFontOptions(true)} > Font: {readerSettings.fontFamily} Margin: { readerSettings.setMarginWidth(value) props.articleActionHandler('setMarginWidth', value) }} /> Line Spacing: { readerSettings.setLineHeight(value) props.articleActionHandler('setLineHeight', value) }} /> )} ) }