Files
blitzkit/packages/website/src/components/Embeds/Slider.tsx
T

32 lines
865 B
TypeScript
Raw Normal View History

2024-10-26 14:33:04 -05:00
import { Slider as RadixSlider } from '@radix-ui/themes';
2024-12-27 12:38:38 -06:00
import type { EmbedPreviewControllerProps } from '../../pages/[...locale]/tools/embed/[embed]/_index';
2024-10-26 14:33:04 -05:00
import { EmbedState, type RadixSize } from '../../stores/embedState';
import type {
EmbedConfigItemType,
EmbedItemType,
} from '../../stores/embedState/constants';
export function Slider({
configKey,
config,
}: EmbedPreviewControllerProps & {
config: EmbedConfigItemType<EmbedItemType.Slider>;
}) {
const mutateEmbedState = EmbedState.useMutation();
return (
<RadixSlider
variant="soft"
min={config.min}
max={config.max}
value={[
EmbedState.use((state) => parseInt(state[configKey] as RadixSize)),
]}
onValueChange={([value]) => {
mutateEmbedState((draft) => {
draft[configKey] = value;
});
}}
/>
);
}