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}
)
}