JasonCode React Component

Tài liệu hướng dẫn cài đặt và sử dụng

Giới thiệu

JasonCode là một React component linh hoạt được xây dựng dựa trên HeroUITailwind CSS. Nổi bật với khả năng tự động cào (fetch) dữ liệu Open Graph và favicon của một trang web từ URL, từ đó hiển thị thành một Button, Link, hoặc Icon cực kỳ đẹp mắt mà không cần truyền ảnh tĩnh một cách thủ công.

Cài đặt

Component phụ thuộc vào thư viện @heroui/react. Đảm bảo rằng dự án của bạn đã có HeroUI và Tailwind CSS.

npm install @heroui/react framer-motion

Ví dụ sử dụng (Usage)

1. Dạng Button (Mặc định)

<JasonCode url="https://github.com" label="Trang GitHub" />

2. Dạng Link

<JasonCode type="link" url="https://react.dev" label="React Docs" />

3. Dạng Icon (Tùy chọn kích thước)

<JasonCode type="icon" size="sm" url="https://google.com" />
<JasonCode type="icon" size="md" url="https://google.com" />
<JasonCode type="icon" size="lg" url="https://google.com" />
<JasonCode type="icon" size="xl" url="https://google.com" />

4. Render thủ công (Custom render)

<JasonCode 
  url="https://tailwindcss.com" 
  render={({ title, favicon, isLoading }) => (
    isLoading ? <span>Đang tải...</span> : (
      <div class="flex items-center gap-2 border p-2 rounded">
        <img src={favicon} width="24" />
        <span>{title}</span>
      </div>
    )
  )}
/>

Thuộc tính (Props)

Prop Type Default Mô tả
url string "https://hwagfu.dev" Đường dẫn đích cần lấy dữ liệu (favicon/tên trang).
label string "Jason Code Space" Chữ hiển thị trong lúc chờ tải dữ liệu OG hoặc nếu tải thất bại.
type 'button' | 'link' | 'icon' 'button' Giao diện chính để hiển thị Component.
size 'sm' | 'md' | 'lg' | 'xl' 'md' Kích thước của chỉ áp dụng khi type="icon".
className string "" Class (thường là Tailwind) áp dụng vào vùng bao ngoài cùng.
classNames { content?: string, image?: string } {} Cho phép style đè chi tiết lên icon (image) và chữ (content).
render function - Hàm cho phép bạn tự render toàn bộ giao diện dựa trên dữ liệu hook trả về thay vì dùng UI có sẵn.