ERP-node/frontend/lib/registry/components/v2-numbering-rule/NumberingRuleConfigPanel.tsx

106 lines
3.4 KiB
TypeScript

"use client";
import React from "react";
import { Label } from "@/components/ui/label";
import { Input } from "@/components/ui/input";
import { Switch } from "@/components/ui/switch";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { NumberingRuleComponentConfig } from "./types";
interface NumberingRuleConfigPanelProps {
config: NumberingRuleComponentConfig;
onChange: (config: NumberingRuleComponentConfig) => void;
}
export const NumberingRuleConfigPanel: React.FC<NumberingRuleConfigPanelProps> = ({
config,
onChange,
}) => {
return (
<div className="space-y-4 p-4">
<div className="space-y-2">
<Label className="text-sm font-medium"> </Label>
<Input
type="number"
min={1}
max={10}
value={config.maxRules || 6}
onChange={(e) =>
onChange({ ...config, maxRules: parseInt(e.target.value) || 6 })
}
className="h-9"
/>
<p className="text-xs text-muted-foreground">
(1-10)
</p>
</div>
<div className="flex items-center justify-between">
<div className="space-y-0.5">
<Label className="text-sm font-medium"> </Label>
<p className="text-xs text-muted-foreground">
</p>
</div>
<Switch
checked={config.readonly || false}
onCheckedChange={(checked) =>
onChange({ ...config, readonly: checked })
}
/>
</div>
<div className="flex items-center justify-between">
<div className="space-y-0.5">
<Label className="text-sm font-medium"> </Label>
<p className="text-xs text-muted-foreground">
</p>
</div>
<Switch
checked={config.showPreview !== false}
onCheckedChange={(checked) =>
onChange({ ...config, showPreview: checked })
}
/>
</div>
<div className="flex items-center justify-between">
<div className="space-y-0.5">
<Label className="text-sm font-medium"> </Label>
<p className="text-xs text-muted-foreground">
</p>
</div>
<Switch
checked={config.showRuleList !== false}
onCheckedChange={(checked) =>
onChange({ ...config, showRuleList: checked })
}
/>
</div>
<div className="space-y-2">
<Label className="text-sm font-medium"> </Label>
<Select
value={config.cardLayout || "vertical"}
onValueChange={(value: "vertical" | "horizontal") =>
onChange({ ...config, cardLayout: value })
}
>
<SelectTrigger className="h-9">
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="vertical"></SelectItem>
<SelectItem value="horizontal"></SelectItem>
</SelectContent>
</Select>
<p className="text-xs text-muted-foreground">
</p>
</div>
</div>
);
};