import { useRuleStore } from "@/stores/ruleStore"; import { Input } from "@/components/ui/input"; import { SegmentedControl } from "@/components/ui/segmented-control"; import type { CaseConfig as CaseConfigType } from "@/types/rules"; const basicModes = [ { value: "Same", label: "Same" }, { value: "Upper", label: "UPPER" }, { value: "Lower", label: "lower" }, { value: "Title", label: "Title" }, { value: "Sentence", label: "Sent." }, { value: "SmartTitle", label: "Smart" }, { value: "Invert", label: "iNVERT" }, { value: "Random", label: "rAnD" }, ] as const; const devModes = [ { value: "CamelCase", label: "camelCase" }, { value: "PascalCase", label: "Pascal" }, { value: "SnakeCase", label: "snake_case" }, { value: "KebabCase", label: "kebab-case" }, { value: "DotCase", label: "dot.case" }, ] as const; export function CaseConfig({ ruleId }: { ruleId: string }) { const rule = useRuleStore((s) => s.pipeline.find((r) => r.id === ruleId))?.config as CaseConfigType | undefined; const updateRule = useRuleStore((s) => s.updateRule); if (!rule) return null; const update = (changes: Partial) => updateRule(ruleId, changes); const devValues = ["CamelCase", "PascalCase", "SnakeCase", "KebabCase", "DotCase"]; const isDevMode = devValues.includes(rule.mode); return (
Text case update({ mode: m })} options={basicModes} size="sm" />
Developer case update({ mode: m })} options={devModes} size="sm" />
); }