MeetUp/src/components/buttons/icon-button.tsx
Maximilian Liebmann 8ffe7850ad
Some checks failed
container-scan / Container Scan (pull_request) Failing after 1m17s
docker-build / docker (pull_request) Failing after 1m4s
tests / Tests (pull_request) Failing after 3m9s
feat: Implement settings dropdown and page components
- Added `SettingsDropdown` component for selecting settings sections with icons and descriptions.
- Created `SettingsPage` component to manage user settings, including account details, notifications, calendar availability, privacy, and appearance.
- Introduced `SettingsSwitcher` for selecting options within settings.
- Integrated command and dialog components for improved user interaction.
- Updated `UserDropdown` to include links for settings and logout.
- Refactored button styles and card footer layout for consistency.
- Added popover functionality for dropdown menus.
- Updated dependencies in `yarn.lock` for new components.
2025-06-30 23:33:36 +02:00

21 lines
578 B
TypeScript

import { Button } from '@/components/ui/button';
import { LucideProps } from 'lucide-react';
import React, { ForwardRefExoticComponent, RefAttributes } from 'react';
export function IconButton({
icon,
children,
...props
}: {
icon?: ForwardRefExoticComponent<
Omit<LucideProps, 'ref'> & RefAttributes<SVGSVGElement>
>;
children?: React.ReactNode;
} & React.ComponentProps<typeof Button>) {
return (
<Button type='button' variant='secondary' {...props}>
{icon && React.createElement(icon, { className: 'mr-2' })}
{children}
</Button>
);
}