@simpledotstudio/simple-avatar-select
Version:
SimpleAvatarSelect - A reusable React component
72 lines • 2.69 kB
JSON
{
"name": "SimpleAvatarSelect",
"package": "@simpledotstudio/simple-avatar-select",
"description": "An avatar component with built-in selection functionality for choosing preset avatars, colors, or uploading custom images.",
"tags": ["avatar", "select", "upload", "image", "simple-ui"],
"attributes": [
{
"name": "src",
"type": "string",
"default": null,
"description": "URL of the avatar image",
"required": false
},
{
"name": "fallback",
"type": "string",
"default": null,
"description": "Fallback text when image is not available",
"required": false
},
{
"name": "size",
"type": "'small' | 'medium' | 'large'",
"default": "'medium'",
"description": "Avatar size",
"required": false
},
{
"name": "selectionOptions",
"type": "('preset' | 'color' | 'upload')[]",
"default": "['preset', 'color', 'upload']",
"description": "Available selection methods",
"required": false
},
{
"name": "onSelect",
"type": "(type: 'preset' | 'color' | 'upload', value: string | File) => void",
"default": null,
"description": "Callback when avatar is selected",
"required": false
},
{
"name": "onRemove",
"type": "() => void",
"default": null,
"description": "Callback when avatar is removed",
"required": false
},
{
"name": "trigger",
"type": "ReactNode",
"default": null,
"description": "Custom trigger element for the selection menu",
"required": false
}
],
"usage": "Use for profile pages, user settings, or anywhere users need to select/upload avatars.",
"example": "import { SimpleAvatarSelect } from '@simpledotstudio/simple-avatar-select';\n\nfunction Example() {\n return (\n <SimpleAvatarSelect\n fallback=\"JD\"\n onSelect={(type, value) => console.log(type, value)}\n />\n );\n}",
"goodPractices": [
"Provide a fallback for better UX when image is loading or unavailable",
"Handle both File and string values in onSelect callback",
"Use appropriate size based on layout context",
"Consider accessibility when implementing custom triggers"
],
"badPractices": [
"Don't forget to handle file upload errors in the consuming component",
"Avoid very large fallback text as it may overflow",
"Don't use inconsistent avatar sizes in the same context"
],
"dependencies": ["@simpledotstudio/simple-avatar", "@simpledotstudio/simple-button", "@simpledotstudio/simple-menu"],
"notes": "Integrates with SimpleAvatar for display and SimpleMenu for selection options."
}