import { Pencil, Trash } from '@phosphor-icons/react' import { Button } from '../../elements/Button' import { Dropdown, DropdownOption } from '../../elements/DropdownElements' import { MoreOptionsIcon } from '../../elements/images/MoreOptionsIcon' import { InfoLink } from '../../elements/InfoLink' import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' import { StyledText } from '../../elements/StyledText' import { styled, theme } from '../../tokens/stitches.config' import { SettingsLayout } from '../SettingsLayout' // Styles export const Header = styled(Box, { color: '$utilityTextDefault', fontSize: 'x-large', margin: '20px', }) type SettingsTableProps = { pageId: string pageInfoLink?: string | undefined headerTitle: string createTitle?: string createAction?: () => void children: React.ReactNode } type CreateButtonProps = { title: string action: () => void } type SettingsTableRowProps = { title: string | JSX.Element isLast: boolean onClick?: () => void sublineElement: JSX.Element titleElement?: JSX.Element extraElement?: JSX.Element deleteTitle?: string onDelete?: () => void dropdownItems?: JSX.Element editTitle?: string onEdit?: () => void } type MoreOptionsProps = { deleteTitle?: string onDelete?: () => void dropdownItems?: JSX.Element editTitle?: string onEdit?: () => void } const MoreOptions = (props: MoreOptionsProps) => ( } > {props.onEdit && props.editTitle && ( { props.onEdit && props.onEdit() }} > {props.editTitle} )} {props.onDelete && props.deleteTitle && ( { props.onDelete && props.onDelete() }} > {props.deleteTitle} )} {props.dropdownItems && props.dropdownItems} ) type EmptySettingsRowProps = { text: string } export const EmptySettingsRow = (props: EmptySettingsRowProps): JSX.Element => { return ( {props.text} ) } export const SettingsTableRow = (props: SettingsTableRowProps): JSX.Element => { return ( {props.title} {props.sublineElement} {props.titleElement} {props.extraElement} ) } const CreateButton = (props: CreateButtonProps): JSX.Element => { return ( ) } export const SettingsTable = (props: SettingsTableProps): JSX.Element => { return ( {props.createAction && props.createTitle && ( )} {props.headerTitle} {props.pageInfoLink && ( )} {props.children} ) }