omnivore/packages/web/components/templates/article/DisplaySettingsModal.tsx

46 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2023-02-28 10:01:57 +00:00
import { ReaderSettings } from '../../../lib/hooks/useReaderSettings'
import { VStack } from '../../elements/LayoutPrimitives'
2023-02-28 10:20:26 +00:00
import {
ModalRoot,
ModalContent,
ModalOverlay,
} from '../../elements/ModalPrimitives'
2022-04-12 19:58:04 +00:00
import { ReaderSettingsControl } from './ReaderSettingsControl'
2022-04-12 04:03:35 +00:00
type DisplaySettingsModalProps = {
centerX: boolean
2022-04-12 04:03:35 +00:00
onOpenChange: (open: boolean) => void
triggerElementRef?: React.RefObject<HTMLElement>
2023-02-28 10:01:57 +00:00
readerSettings: ReaderSettings
2022-04-12 04:03:35 +00:00
}
2023-02-27 02:34:12 +00:00
export function DisplaySettingsModal(
props: DisplaySettingsModalProps
): JSX.Element {
2022-04-12 04:03:35 +00:00
return (
<ModalRoot defaultOpen onOpenChange={props.onOpenChange}>
<ModalOverlay css={{ backgroundColor: 'unset' }} />
2022-04-12 04:03:35 +00:00
<ModalContent
css={{
2023-02-28 10:01:57 +00:00
width: '345px',
padding: '0px',
top: '262px',
2023-02-28 10:20:26 +00:00
left: 'calc(100% - 250px)',
'@lgDown': {
top: '300px',
left: '50%',
},
}}
2022-04-12 04:03:35 +00:00
onPointerDownOutside={(event) => {
event.preventDefault()
props.onOpenChange(false)
}}
>
<VStack css={{ width: '100%' }}>
2023-02-28 10:01:57 +00:00
<ReaderSettingsControl readerSettings={props.readerSettings} />
2022-04-12 04:03:35 +00:00
</VStack>
</ModalContent>
</ModalRoot>
)
}