mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-02-19 23:25:51 -05:00
* quick view to quick preview & fix add tag in quick preview * Make sure color picker shows when creating a tag in quick preview
34 lines
964 B
TypeScript
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>
|
|
);
|
|
};
|