Skip to content

Commit

Permalink
feat: add boxprops to popover
Browse files Browse the repository at this point in the history
  • Loading branch information
drl990114 committed Nov 16, 2024
1 parent da57875 commit 7e25f55
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 103 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "zens",
"version": "0.0.39",
"version": "0.0.41",
"description": "MarkFlowy's ui component library.",
"keywords": [],
"homepage": "https://github.com/drl990114/zens#readme",
Expand Down
8 changes: 4 additions & 4 deletions src/Menu/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { MenuProps as AkMenuProps } from '@ariakit/react';
import { MenuButton, MenuButtonArrow, MenuProvider, useMenuStore } from '@ariakit/react';

import { MenuItem, MenuItemCheckIcon, MenuWrapper, MenuSeparator } from './styles';
import { MenuItem, MenuItemCheckIcon, MenuSeparator, MenuWrapper } from './styles';

import Button from '../Button';

Expand Down Expand Up @@ -32,7 +32,7 @@ interface MenuProps extends AkMenuProps {

export const isDivider = (item: MenuItemData): item is MenuDividerType => {
return (item as MenuDividerType)?.type === 'divider';
}
};

const Menu = (props: MenuProps) => {
const {
Expand All @@ -47,9 +47,9 @@ const Menu = (props: MenuProps) => {
} = props;

const renderItems = (menuItems: MenuItemData[]) => {
return menuItems.map((item) => {
return menuItems.map((item, index) => {
if (isDivider(item)) {
return <MenuSeparator />
return <MenuSeparator key={index} />;
}

const key = item.value;
Expand Down
6 changes: 4 additions & 2 deletions src/Popover/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { PopoverProps as AkPopoverProps, PopoverProviderProps, PopoverStore
import { PopoverDisclosure, PopoverProvider, usePopoverStore } from '@ariakit/react';
import { Box } from '../Box';
import { PopoverArrow, PopoverHeading, PopoverWrapper } from './styles';
import { useEffect } from 'react';
import { HTMLAttributes, useEffect } from 'react';

export type { PopoverStore } from '@ariakit/react';
export { usePopoverStore } from '@ariakit/react';
Expand All @@ -12,6 +12,7 @@ type PopoverOptions = Pick<PopoverProviderProps, 'placement' | 'open'> &
Pick<AkPopoverProps, 'onClose'>;

interface PopoverProps extends BaseComponentProps, PopoverOptions {
boxProps?: HTMLAttributes<HTMLDivElement>;
arrow?: boolean;
title?: string;
customContent?: React.ReactNode;
Expand All @@ -30,6 +31,7 @@ const Popover: React.FC<PopoverProps> = (props) => {
customContent,
placement,
onStoreChange,
boxProps = {},
...rest
} = props;
const store = usePopoverStore();
Expand All @@ -44,7 +46,7 @@ const Popover: React.FC<PopoverProps> = (props) => {
<PopoverProvider store={store} placement={placement}>
<PopoverDisclosure
toggleOnClick={toggleOnClick}
render={(p) => <Box style={{ display: 'inline-block' }} {...p} />}
render={(p) => <Box style={{ display: 'inline-block' }} {...p} {...boxProps}/>}
>
{children}
</PopoverDisclosure>
Expand Down
Loading

0 comments on commit 7e25f55

Please sign in to comment.