mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
feat: update design of ImageExportDialog (#6614)
Co-authored-by: dwelle <luzar.david@gmail.com>
This commit is contained in:
parent
6459ccda6a
commit
08563e7d7b
21 changed files with 881 additions and 171 deletions
42
src/components/RadioGroup.tsx
Normal file
42
src/components/RadioGroup.tsx
Normal file
|
@ -0,0 +1,42 @@
|
|||
import clsx from "clsx";
|
||||
import "./RadioGroup.scss";
|
||||
|
||||
export type RadioGroupChoice<T> = {
|
||||
value: T;
|
||||
label: string;
|
||||
};
|
||||
|
||||
export type RadioGroupProps<T> = {
|
||||
choices: RadioGroupChoice<T>[];
|
||||
value: T;
|
||||
onChange: (value: T) => void;
|
||||
name: string;
|
||||
};
|
||||
|
||||
export const RadioGroup = function <T>({
|
||||
onChange,
|
||||
value,
|
||||
choices,
|
||||
name,
|
||||
}: RadioGroupProps<T>) {
|
||||
return (
|
||||
<div className="RadioGroup">
|
||||
{choices.map((choice) => (
|
||||
<div
|
||||
className={clsx("RadioGroup__choice", {
|
||||
active: choice.value === value,
|
||||
})}
|
||||
key={choice.label}
|
||||
>
|
||||
<input
|
||||
name={name}
|
||||
type="radio"
|
||||
checked={choice.value === value}
|
||||
onChange={() => onChange(choice.value)}
|
||||
/>
|
||||
{choice.label}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue