پرتوپرتو

useClipboard

کپی متن در کلیپ‌بورد با وضعیت گذرای «کپی شد»

معرفی

هوک useClipboard متن را در کلیپ‌بورد سیستم کپی می‌کند و یک پرچم گذرای copied می‌دهد که برای نمایش بازخوردِ «کپی شد!» مناسب است. از Clipboard API مدرن با fallback برای مرورگرها و بسترهای ناامن قدیمی استفاده می‌کند.

چه زمانی استفاده کنیم

  • دکمه‌ی «کپی» برای لینک، کد، توکن یا شناسه
  • کپی‌کردنِ خروجیِ یک گزارش یا کوئری ذخیره‌شده

چه زمانی استفاده نکنیم

  • برای کپیِ خودکار بدون تعاملِ کاربر — مرورگرها معمولاً بلاک می‌کنند

استفاده

import { useClipboard } from '@partodata/ui'

function CopyLink({ url }) {
  const { copied, copy } = useClipboard()

  return <Button onClick={() => copy(url)}>{copied ? 'کپی شد' : 'کپی لینک'}</Button>
}

پارامترها

useClipboard(options?)options اختیاری است:

فیلدنوعپیش‌فرضتوضیح
resetAfternumber | false2000بعد از این میلی‌ثانیه copied به false برمی‌گردد؛ false یعنی هرگز

مقدار بازگشتی

فیلدنوعتوضیح
copiedbooleanتا resetAfter میلی‌ثانیه پس از کپیِ موفق true است
errorError | nullاگر آخرین تلاشِ کپی خطا داد
copy(value: string) => Promise<boolean>کپیِ متن؛ در موفقیت true، اگر API نبود false
reset() => voidبازنشانیِ دستیِ copied و error

هوک‌های مرتبط

  • کامپوننتِ آماده با همین رفتار → CopyButton