Files
spacedrive/interface/components/ColorPicker.tsx
Ameer Al Ashhab 33da868a0b [ENG-1897,1900,1901] Quick add tag fix & more (#2720)
* quick view to quick preview & fix add tag in quick preview

* Make sure color picker shows when creating a tag in quick preview
2024-09-24 18:56:36 +00:00

34 lines
964 B
TypeScript

import clsx from 'clsx';
import { HexColorInput, HexColorPicker } from 'react-colorful';
import { FieldValues, useController, UseControllerProps } from 'react-hook-form';
import { inputStyles, Popover, usePopover } from '@sd/ui';
interface Props<T extends FieldValues> extends UseControllerProps<T> {
className?: string;
}
export const ColorPicker = <T extends FieldValues>({ className, ...props }: Props<T>) => {
const { field } = useController({ name: props.name });
return (
<Popover
popover={usePopover()}
trigger={
<div
className={clsx('size-4 rounded-full shadow', className)}
style={{ backgroundColor: field.value }}
/>
}
className="relative z-[110] p-3"
sideOffset={5}
>
<HexColorPicker color={field.value} onChange={field.onChange} />
<HexColorInput
color={field.value}
onChange={field.onChange}
className={inputStyles({ size: 'md', className: '!mt-5 bg-app px-3' })}
/>
</Popover>
);
};