Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

PrimaryButton.tsx 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. 'use client';
  2. import React from 'react';
  3. import { Button } from 'antd';
  4. import { useThemeToken } from '@/hooks/useThemeToken';
  5. import classNames from 'classnames';
  6. type PrimaryButtonProps = {
  7. onClick?: () => void;
  8. children: React.ReactNode;
  9. customStyle?: string;
  10. outline?: boolean;
  11. };
  12. const PrimaryButton: React.FC<PrimaryButtonProps> = ({
  13. onClick = () => { },
  14. children,
  15. customStyle = '',
  16. outline = false,
  17. }: PrimaryButtonProps) => {
  18. const token = useThemeToken();
  19. const baseClasses = 'mt-2 !rounded-full !px-6 !py-4';
  20. const filledClasses = '!border-0 !bg-[#602FD0] !text-[#fff] hover:!bg-[#271550]';
  21. const outlineClasses = '!border !bg-[#fff] !text-[#602FD0] hover:!bg-[#602FD0] hover:!text-[#fff]';
  22. return (
  23. <Button
  24. size="small"
  25. className={classNames(
  26. baseClasses,
  27. outline ? outlineClasses : filledClasses,
  28. customStyle
  29. )}
  30. onClick={onClick}
  31. >
  32. {children}
  33. </Button>
  34. );
  35. };
  36. export default PrimaryButton;