FZHUB

الاستخدام مع React

ما فيه حزمة React خاصة حاليًا، لكن المكتبة تشتغل مع React بطريقتين بدون أي اعتمادات إضافية.

حزمة @fzhub/icons على npm قريبًا. الطرق في هذي الصفحة تعتمد على الملفات المستضافة.

الطريقة الأولى: الوسم fz-icon

أضف السكربت في ملف HTML الرئيسي لمشروعك:

<script src="https://fzhub.tech/libs/fz-icons/0.1.0/fz-icons.js"></script>

بعدها استخدم الوسم في مكوناتك:

export function CoffeeBadge() {
  return (
    <span>
      <fz-icon name="dallah" size="20"></fz-icon>
      قهوة
    </span>
  );
}

إذا تستخدم TypeScript، بتحتاج تعريف الوسم في JSX بنفسك.

الطريقة الثانية: مكوّن خاص فيك

انسخ ملف المكتبة وملف الأنواع داخل مشروعك:

mkdir -p src/vendor/fz-icons
curl -o src/vendor/fz-icons/index.js https://fzhub.tech/libs/fz-icons/0.1.0/index.js
curl -o src/vendor/fz-icons/index.d.ts https://fzhub.tech/libs/fz-icons/0.1.0/index.d.ts

ثم أنشئ المكوّن:

import { toSvg, type IconName } from './vendor/fz-icons/index.js';

interface FzIconProps {
  name: IconName;
  size?: number;
  strokeWidth?: number;
  title?: string;
}

const wrapper = { display: 'inline-flex', lineHeight: 0 };

export function FzIcon({ name, size = 24, strokeWidth = 2, title }: FzIconProps) {
  const svg = { __html: toSvg(name, { size, strokeWidth, title }) };
  return <span style={wrapper} dangerouslySetInnerHTML={svg} />;
}

واستخدمه كذا:

<FzIcon name="palm" size={32} title="نخلة" />

الدالة toSvg ترجع نص فقط وما تحتاج المتصفح، فتشتغل أيضًا مع العرض من جهة الخادم.

الطريقة المميزات
الوسم fz-icon أسرع طريقة، وما تحتاج ملفات داخل مشروعك
مكوّن خاص الأيقونات داخل مشروعك، ويتحقق TypeScript من أسمائها
استخدم أسماء الأيقونات من قائمة الأسماء. الاسم غير الموجود ما يعرض شيء.
هل الصفحة مفيدة؟