feat: add UI components including Skeleton, Slider, Toaster, Switch, Table, Tabs, Textarea, Toggle Group, Toggle, Tooltip, and User Avatar
- Implemented Skeleton component for loading states. - Added Slider component using Radix UI for customizable sliders. - Created Toaster component for notifications with theme support. - Developed Switch component for toggle functionality. - Introduced Table component with subcomponents for structured data display. - Built Tabs component for tabbed navigation. - Added Textarea component for multi-line text input. - Implemented Toggle Group and Toggle components for grouped toggle buttons. - Created Tooltip component for displaying additional information on hover. - Added User Avatar component for displaying user images with fallback. - Implemented useIsMobile hook for responsive design. - Created API utility functions for user and thought data fetching. - Added utility function for class name merging. - Updated package.json with new dependencies for UI components and utilities. - Added TypeScript configuration for path aliasing.
This commit is contained in:
18
thoughts-frontend/components/user-avatar.tsx
Normal file
18
thoughts-frontend/components/user-avatar.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
|
||||
import { User } from "lucide-react";
|
||||
|
||||
interface UserAvatarProps {
|
||||
src?: string | null;
|
||||
alt?: string | null;
|
||||
}
|
||||
|
||||
export function UserAvatar({ src, alt }: UserAvatarProps) {
|
||||
return (
|
||||
<Avatar>
|
||||
{src && <AvatarImage src={src} alt={alt ?? "User avatar"} />}
|
||||
<AvatarFallback>
|
||||
<User className="h-5 w-5" />
|
||||
</AvatarFallback>
|
||||
</Avatar>
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user