* Remove extraneous states and hooks from PartyHeader * Only show PartyDropdown if we are looking at an existing party * Add destructive prop for DropdownMenuItem * Remove extraneous classes from PartyDropdown * Localize dropdown contents
39 lines
997 B
TypeScript
39 lines
997 B
TypeScript
import React, { PropsWithChildren } from 'react'
|
|
import classNames from 'classnames'
|
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'
|
|
import styles from './index.module.scss'
|
|
|
|
interface Props extends DropdownMenuPrimitive.DropdownMenuItemProps {
|
|
destructive?: boolean
|
|
}
|
|
|
|
const defaultProps = {
|
|
destructive: false,
|
|
}
|
|
|
|
export const DropdownMenuItem = React.forwardRef<HTMLDivElement, Props>(
|
|
function dropdownMenuItem(
|
|
{ children, ...props }: PropsWithChildren<Props>,
|
|
forwardedRef
|
|
) {
|
|
const classes = classNames(props.className, {
|
|
[styles.menuItem]: true,
|
|
[styles.language]: props.className?.includes('language'),
|
|
[styles.destructive]: props.destructive,
|
|
})
|
|
|
|
return (
|
|
<DropdownMenuPrimitive.Item
|
|
{...props}
|
|
className={classes}
|
|
ref={forwardedRef}
|
|
>
|
|
{children}
|
|
</DropdownMenuPrimitive.Item>
|
|
)
|
|
}
|
|
)
|
|
|
|
DropdownMenuItem.defaultProps = defaultProps
|
|
|
|
export default DropdownMenuItem
|