feat(dashboard): Users domain (#6212)

This commit is contained in:
Kasper Fabricius Kristensen
2024-01-30 17:20:06 +01:00
committed by GitHub
parent 7d5a6f8b00
commit 1100c21c63
16 changed files with 871 additions and 125 deletions
@@ -6,6 +6,7 @@ import { Link } from "react-router-dom"
type Action = {
icon: ReactNode
label: string
disabled?: boolean
} & (
| {
to: string
@@ -47,12 +48,13 @@ export const ActionMenu = ({ groups }: ActionMenuProps) => {
if (action.onClick) {
return (
<DropdownMenu.Item
disabled={action.disabled}
key={index}
onClick={(e) => {
e.stopPropagation()
action.onClick()
}}
className="[&_svg]:text-ui-fg-subtle flex items-center gap-x-2"
className="[&_svg]:text-ui-fg-subtle flex items-center gap-x-2 disabled:opacity-50 disabled:cursor-not-allowed"
>
{action.icon}
<span>{action.label}</span>
@@ -62,12 +64,16 @@ export const ActionMenu = ({ groups }: ActionMenuProps) => {
return (
<div key={index}>
<Link to={action.to} onClick={(e) => e.stopPropagation()}>
<DropdownMenu.Item className="[&_svg]:text-ui-fg-subtle flex items-center gap-x-2">
<DropdownMenu.Item
className="[&_svg]:text-ui-fg-subtle flex items-center gap-x-2 disabled:opacity-50 disabled:cursor-not-allowed"
asChild
disabled={action.disabled}
>
<Link to={action.to} onClick={(e) => e.stopPropagation()}>
{action.icon}
<span>{action.label}</span>
</DropdownMenu.Item>
</Link>
</Link>
</DropdownMenu.Item>
</div>
)
})}
@@ -1,18 +1,24 @@
import { ExclamationCircle, MagnifyingGlass } from "@medusajs/icons"
import { Button, Text } from "@medusajs/ui"
import { Button, Text, clx } from "@medusajs/ui"
import { useTranslation } from "react-i18next"
import { Link } from "react-router-dom"
type NoResultsProps = {
title?: string
message?: string
className?: string
}
export const NoResults = ({ title, message }: NoResultsProps) => {
export const NoResults = ({ title, message, className }: NoResultsProps) => {
const { t } = useTranslation()
return (
<div className="flex h-[400px] w-full items-center justify-center">
<div
className={clx(
"flex h-[400px] w-full items-center justify-center",
className
)}
>
<div className="flex flex-col items-center gap-y-2">
<MagnifyingGlass />
<Text size="small" leading="compact" weight="plus">
@@ -33,13 +39,24 @@ type NoRecordsProps = {
to: string
label: string
}
className?: string
}
export const NoRecords = ({ title, message, action }: NoRecordsProps) => {
export const NoRecords = ({
title,
message,
action,
className,
}: NoRecordsProps) => {
const { t } = useTranslation()
return (
<div className="flex h-[400px] w-full flex-col items-center justify-center gap-y-6">
<div
className={clx(
"flex h-[400px] w-full flex-col items-center justify-center gap-y-6",
className
)}
>
<div className="flex flex-col items-center gap-y-2">
<ExclamationCircle />
<Text size="small" leading="compact" weight="plus">