chore: empty state for multi-level dropdown (#1802)

* fix :label filter should show something if there is no label #1779 (#1795)

* style: children empty state

---------

Co-authored-by: Pankaj Chotaliya <34762752+pankajvc@users.noreply.github.com>
This commit is contained in:
Aaryan Khandelwal 2023-08-08 14:13:26 +05:30 committed by GitHub
parent 88e5a05253
commit 5f1209f1db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -66,7 +66,7 @@ export const MultiLevelDropdown: React.FC<MultiLevelDropdownProps> = ({
> >
<Menu.Items <Menu.Items
static static
className="absolute right-0 z-10 mt-1 w-36 origin-top-right select-none rounded-md bg-custom-background-90 text-xs shadow-lg focus:outline-none" className="absolute right-0 z-10 mt-1 w-36 origin-top-right select-none rounded-md bg-custom-background-90 border border-custom-border-300 text-xs shadow-lg focus:outline-none"
> >
{options.map((option) => ( {options.map((option) => (
<div className="relative p-1" key={option.id}> <div className="relative p-1" key={option.id}>
@ -107,7 +107,7 @@ export const MultiLevelDropdown: React.FC<MultiLevelDropdownProps> = ({
</Menu.Item> </Menu.Item>
{option.hasChildren && option.id === openChildFor && ( {option.hasChildren && option.id === openChildFor && (
<div <div
className={`absolute top-0 w-36 origin-top-right select-none overflow-y-scroll rounded-md bg-custom-background-90 shadow-lg focus:outline-none ${ className={`absolute top-0 min-w-36 whitespace-nowrap origin-top-right select-none overflow-y-scroll rounded-md bg-custom-background-90 border border-custom-border-300 shadow-lg focus:outline-none ${
direction === "left" direction === "left"
? "right-full -translate-x-1" ? "right-full -translate-x-1"
: "left-full translate-x-1" : "left-full translate-x-1"
@ -125,7 +125,12 @@ export const MultiLevelDropdown: React.FC<MultiLevelDropdownProps> = ({
> >
{option.children ? ( {option.children ? (
<div className="space-y-1 p-1"> <div className="space-y-1 p-1">
{option.children.map((child) => { {option.children.length === 0 ? (
<p className="text-custom-text-200 text-center px-1 py-1.5">
No {option.label} found
</p> //if no children found, show this message.
) : (
option.children.map((child) => {
if (child.element) return child.element; if (child.element) return child.element;
else else
return ( return (
@ -145,7 +150,8 @@ export const MultiLevelDropdown: React.FC<MultiLevelDropdownProps> = ({
/> />
</button> </button>
); );
})} })
)}
</div> </div>
) : ( ) : (
<Loader className="p-1 space-y-2"> <Loader className="p-1 space-y-2">