🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

@libs-ui/components-avatar

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@libs-ui/components-avatar

## Giới thiệu

0.2.202
latest
Version published
Maintainers
1
Created

Avatar

Giới thiệu

avatar là một component Avatar linh hoạt dùng cho ứng dụng Angular. Component này cho phép hiển thị avatar người dùng với nhiều tùy chọn khác nhau như hình ảnh, chữ cái đầu, màu sắc tự động, và hỗ trợ fallback khi ảnh bị lỗi.

Tính năng

  • Hiển thị hình ảnh avatar người dùng
  • Tự động hiển thị chữ cái đầu khi không có ảnh
  • Tạo màu nền tự động dựa trên ID
  • Hỗ trợ nhiều kích thước khác nhau (16px, 24px, 32px, 40px, 48px, 64px)
  • Hỗ trợ hình dạng khác nhau (tròn, vuông)
  • Xử lý lỗi hình ảnh với nhiều tùy chọn fallback
  • Hỗ trợ tùy chỉnh class CSS

Cài đặt

Yêu cầu

  • Angular 18.0.0 trở lên
  • Tailwind CSS 3.3.0 trở lên

Hướng dẫn

Để cài đặt component avatar, sử dụng npm hoặc yarn:

npm install @libs-ui/components-avatar

hoặc

yarn add @libs-ui/components-avatar

Sử dụng

Import component

// example.component.ts
import { Component } from '@angular/core';
import { LibsUiComponentsAvatarComponent } from '@libs-ui/components-avatar';

@Component({
  selector: 'app-example',
  standalone: true,
  imports: [LibsUiComponentsAvatarComponent],
  template: `
    <libs_ui-components-avatar
      [linkAvatar]="'https://example.com/avatar.jpg'"
      [textAvatar]="'Nguyễn Văn A'"
      [idGenColor]="'user-123'"
      [size]="40">
    </libs_ui-components-avatar>
  `
})
export class ExampleComponent {
  // Component logic
}

Cách 2: Sử dụng file HTML riêng biệt

// example.component.ts
import { Component } from '@angular/core';
import { LibsUiComponentsAvatarComponent } from '@libs-ui/components-avatar';

@Component({
  selector: 'app-example',
  standalone: true,
  imports: [LibsUiComponentsAvatarComponent],
  templateUrl: './example.component.html'
})
export class ExampleComponent {
  // Component logic
}
<!-- example.component.html -->
<libs_ui-components-avatar
  [linkAvatar]="'https://example.com/avatar.jpg'"
  [linkAvatarError]="'https://example.com/default-avatar.jpg'"
  [textAvatar]="'Nguyễn Văn A'"
  [idGenColor]="'user-123'"
  [size]="40"
  [typeShape]="'circle'">
</libs_ui-components-avatar>

Công nghệ sử dụng

  • Angular 18: Sử dụng các tính năng mới nhất của Angular 18 như control flow (@if, @for), standalone components, và signals
  • Tailwind CSS: Component được xây dựng với Tailwind CSS 3.3+ để quản lý style

API Reference

Inputs

TênKiểu dữ liệuMặc địnhMô tả
linkAvatarstring-Đường dẫn của hình ảnh avatar
linkAvatarErrorstring-Đường dẫn của hình ảnh thay thế khi avatar chính bị lỗi
textAvatarstring-Văn bản hiển thị khi không có hình ảnh (thường là chữ cái đầu của tên)
idGenColorstring-ID dùng để tạo màu nền tự động khi sử dụng văn bản
size16 | 24 | 32 | 40 | 48 | 6432Kích thước của avatar (tính bằng pixel)
typeShape'circle' | 'rectangle''circle'Hình dạng của avatar (tròn hoặc vuông)
classIncludestring'mr-[8px]'CSS class bổ sung cho container chính
classImageIncludestring''CSS class bổ sung cho thẻ img
getLastTextAfterSpacebooleanfalseNếu true, chỉ lấy chữ cái đầu tiên của từ cuối cùng trong textAvatar

Outputs

TênKiểu dữ liệuMô tả
outAvatarErrorvoidSự kiện được kích hoạt khi linkAvatar bị lỗi và không có linkAvatarError

Interfaces

IAvatarConfig

export interface IAvatarConfig {
  classImageInclude?: string;
  classInclude?: string;
  size?: TYPE_SIZE_AVATAR_CONFIG;
  linkAvatar?: string;
  linkAvatarError?: string;
  idGenColor?: string;
  textAvatar?: string;
  typeShape?: TYPE_SHAPE_AVATAR;
  getLastTextAfterSpace?: boolean;
}

export type TYPE_SIZE_AVATAR_CONFIG = 16 | 24 | 32 | 40 | 48 | 64;
export type TYPE_SHAPE_AVATAR = 'circle' | 'rectangle';

Ví dụ

Avatar với ảnh và fallback

TypeScript (user-avatar.component.ts):

import { Component } from '@angular/core';
import { LibsUiComponentsAvatarComponent } from '@libs-ui/components-avatar';

@Component({
  selector: 'app-user-avatar',
  standalone: true,
  imports: [LibsUiComponentsAvatarComponent],
  templateUrl: './user-avatar.component.html'
})
export class UserAvatarComponent {
  user = {
    id: 'user-123',
    name: 'Nguyễn Văn A',
    avatar: 'https://example.com/avatar.jpg'
  };

  handleAvatarError() {
    console.log('Không thể tải được hình ảnh avatar');
  }
}

HTML (user-avatar.component.html):

<libs_ui-components-avatar
  [linkAvatar]="user.avatar"
  [textAvatar]="user.name"
  [idGenColor]="user.id"
  [size]="40"
  (outAvatarError)="handleAvatarError()">
</libs_ui-components-avatar>

Nhóm Avatars với kích thước và hình dạng khác nhau

TypeScript (avatar-group.component.ts):

import { Component } from '@angular/core';
import { LibsUiComponentsAvatarComponent } from '@libs-ui/components-avatar';

@Component({
  selector: 'app-avatar-group',
  standalone: true,
  imports: [LibsUiComponentsAvatarComponent],
  templateUrl: './avatar-group.component.html'
})
export class AvatarGroupComponent {
  users = [
    {
      id: 'user-1',
      name: 'Nguyễn Văn A',
      avatar: 'https://example.com/avatar1.jpg',
      size: 64
    },
    {
      id: 'user-2',
      name: 'Trần Thị B',
      avatar: 'https://example.com/avatar2.jpg',
      size: 48
    },
    {
      id: 'user-3',
      name: 'Lê Văn C',
      avatar: 'https://example.com/avatar3.jpg',
      size: 32
    },
    {
      id: 'user-4',
      name: 'Phạm Thị D',
      avatar: null,
      size: 24
    }
  ];
}

HTML (avatar-group.component.html):

<div class="flex items-center space-x-2">
  @for (user of users; track user.id) {
    <libs_ui-components-avatar
      [linkAvatar]="user.avatar"
      [textAvatar]="user.name"
      [idGenColor]="user.id"
      [size]="user.size"
      [typeShape]="user.id === 'user-4' ? 'rectangle' : 'circle'">
    </libs_ui-components-avatar>
  }
</div>

FAQs

Package last updated on 06 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts