vat_wms/resources/js/Components/DropdownLink.tsx
2025-05-13 12:32:55 +02:00

50 lines
1.5 KiB
TypeScript

import { Link } from '@inertiajs/react';
import React, { PropsWithChildren } from 'react';
interface Props {
as?: string;
href?: string;
}
export default function DropdownLink({
as,
href,
children,
}: PropsWithChildren<Props>) {
return (
<div>
{(() => {
switch (as) {
case 'button':
return (
<button
type="submit"
className="block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-hidden focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out"
>
{children}
</button>
);
case 'a':
return (
<a
href={href}
className="block px-4 py-2 text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-hidden focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out"
>
{children}
</a>
);
default:
return (
<Link
href={href || ''}
className="block px-4 py-2 text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-hidden focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out"
>
{children}
</Link>
);
}
})()}
</div>
);
}