mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-13 15:53:18 +02:00
optimize various base components
This commit is contained in:
@@ -2,7 +2,7 @@ import type { ButtonVariant, ButtonProps as MantineButtonProps } from '@mantine/
|
||||
|
||||
import { ElementProps, Button as MantineButton } from '@mantine/core';
|
||||
import clsx from 'clsx';
|
||||
import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||
|
||||
import styles from './button.module.css';
|
||||
|
||||
@@ -41,21 +41,26 @@ export const _Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
||||
}: ButtonProps,
|
||||
ref,
|
||||
) => {
|
||||
const memoizedClassNames = useMemo(
|
||||
() => ({
|
||||
inner: styles.inner,
|
||||
label: clsx(styles.label, {
|
||||
[styles.uppercase]: uppercase,
|
||||
}),
|
||||
loader: styles.loader,
|
||||
root: styles.root,
|
||||
section: styles.section,
|
||||
...classNames,
|
||||
}),
|
||||
[classNames, uppercase],
|
||||
);
|
||||
|
||||
if (tooltip) {
|
||||
return (
|
||||
<Tooltip withinPortal {...tooltip}>
|
||||
<MantineButton
|
||||
autoContrast
|
||||
classNames={{
|
||||
inner: styles.inner,
|
||||
label: clsx(styles.label, {
|
||||
[styles.uppercase]: uppercase,
|
||||
}),
|
||||
loader: styles.loader,
|
||||
root: styles.root,
|
||||
section: styles.section,
|
||||
...classNames,
|
||||
}}
|
||||
classNames={memoizedClassNames}
|
||||
loading={loading}
|
||||
ref={ref}
|
||||
size={size}
|
||||
@@ -71,16 +76,7 @@ export const _Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
||||
|
||||
return (
|
||||
<MantineButton
|
||||
classNames={{
|
||||
inner: styles.inner,
|
||||
label: clsx(styles.label, {
|
||||
[styles.uppercase]: uppercase,
|
||||
}),
|
||||
loader: styles.loader,
|
||||
root: styles.root,
|
||||
section: styles.section,
|
||||
...classNames,
|
||||
}}
|
||||
classNames={memoizedClassNames}
|
||||
loading={loading}
|
||||
ref={ref}
|
||||
size={size}
|
||||
|
||||
Reference in New Issue
Block a user