️ feat: add squiggly line and personal TODO

This commit is contained in:
Andre H 2024-02-29 09:30:53 +07:00
parent ee397d0e6e
commit 91a80cac8a
2 changed files with 57 additions and 39 deletions

View File

@ -25,8 +25,6 @@ export const userSelectTheme = tv({
'mt-12', 'mt-12',
'z-20', 'z-20',
'absolute', 'absolute',
'px-1',
'py-1',
'flex-col', 'flex-col',
'gap-0.5', 'gap-0.5',
'min-w-full', 'min-w-full',
@ -39,6 +37,7 @@ export const userSelectTheme = tv({
'border-gray-200', 'border-gray-200',
'rounded-xl', 'rounded-xl',
], ],
popoverItemWrapper: ['flex', 'flex-col', 'px-2', 'py-2', 'gap-1'],
}, },
variants: { variants: {
isOpen: { isOpen: {

View File

@ -10,6 +10,7 @@ import {
BuildingIcon, BuildingIcon,
ChevronUpDown, ChevronUpDown,
SettingsSlidersIcon, SettingsSlidersIcon,
SquigglyLine,
} from 'components/shared/CustomIcon'; } from 'components/shared/CustomIcon';
import { cn } from 'utils/classnames'; import { cn } from 'utils/classnames';
import { UserSelectTheme, userSelectTheme } from './UserSelect.theme'; import { UserSelectTheme, userSelectTheme } from './UserSelect.theme';
@ -143,16 +144,13 @@ export const UserSelect = ({ options, value }: UserSelectProps) => {
{...getMenuProps({ ref: popoverRef }, { suppressRefError: true })} {...getMenuProps({ ref: popoverRef }, { suppressRefError: true })}
id="popover" id="popover"
ref={popoverRef} ref={popoverRef}
className={cn( className={cn(theme.popover({ isOpen }), {
theme.popover({ isOpen }),
{
// Position the popover based on the dropdown position // Position the popover based on the dropdown position
'top-[27.5%]': dropdownPosition === 'bottom', 'top-[27.5%]': dropdownPosition === 'bottom',
'bottom-[92.5%]': dropdownPosition === 'top', 'bottom-[92.5%]': dropdownPosition === 'top',
}, })}
'px-2 py-2',
)}
> >
<div className={theme.popoverItemWrapper()}>
{/* Settings header */} {/* Settings header */}
<div className="flex justify-between h-8 items-center"> <div className="flex justify-between h-8 items-center">
<div className="flex gap-1 text-elements-mid-em"> <div className="flex gap-1 text-elements-mid-em">
@ -182,9 +180,30 @@ export const UserSelect = ({ options, value }: UserSelectProps) => {
) : ( ) : (
<EmptyUserSelectItem /> <EmptyUserSelectItem />
)} )}
</div>
{/* //TODO:Squiggly line */} {/* Squiggly line */}
{/* //TODO:Personal */} {/* //TODO:remove if personal dont exist */}
<div>
<SquigglyLine />
</div>
<div className={theme.popoverItemWrapper()}>
{/* //TODO:Personal (replace options with Personal Options) */}
{isOpen && options.length !== 0 ? (
options.map((item, index) => (
<UserSelectItem
{...getItemProps({ item, index: 99 })}
key={item.value}
selected={isSelected(item)}
option={item}
hovered={highlightedIndex === index}
/>
))
) : (
<EmptyUserSelectItem />
)}
</div>
</ul> </ul>
</div> </div>
); );