import { Separator } from '@radix-ui/react-separator' import { ArticleAttributes } from '../../../lib/networking/library_items/useLibraryItems' import { Button } from '../../elements/Button' import { Box, SpanBox } from '../../elements/LayoutPrimitives' import { styled, theme } from '../../tokens/stitches.config' import { ReaderSettings } from '../../../lib/hooks/useReaderSettings' import { useRef } from 'react' import { ArchiveIcon } from '../../elements/icons/ArchiveIcon' import { NotebookIcon } from '../../elements/icons/NotebookIcon' import { TrashIcon } from '../../elements/icons/TrashIcon' import { LabelIcon } from '../../elements/icons/LabelIcon' import { EditInfoIcon } from '../../elements/icons/EditInfoIcon' import { UnarchiveIcon } from '../../elements/icons/UnarchiveIcon' import { State } from '../../../lib/networking/fragments/articleFragment' export type ArticleActionsMenuLayout = 'top' | 'side' type ArticleActionsMenuProps = { article?: ArticleAttributes layout: ArticleActionsMenuLayout showReaderDisplaySettings?: boolean readerSettings: ReaderSettings articleActionHandler: (action: string, arg?: unknown) => void } type MenuSeparatorProps = { layout: ArticleActionsMenuLayout } const MenuSeparator = (props: MenuSeparatorProps): JSX.Element => { const LineSeparator = styled(Separator, { width: '100%', margin: 0, borderBottom: `1px solid ${theme.colors.thHighContrast.toString()}`, my: '8px', }) return props.layout == 'side' ? : <> } export function ArticleActionsMenu( props: ArticleActionsMenuProps ): JSX.Element { const displaySettingsButtonRef = useRef(null) return ( <> {props.article ? ( <> ) : ( )} {props.article?.state !== State.ARCHIVED ? ( ) : ( )} ) }