Move src/ → apps/server/ and packages/web/ → apps/web/ to adopt standard monorepo conventions (apps/ for runnable apps, packages/ for reusable libraries). Update all config files, shared package imports, test fixtures, and documentation to reflect new paths. Key fixes: - Update workspace config to ["apps/*", "packages/*"] - Update tsconfig.json rootDir/include for apps/server/ - Add apps/web/** to vitest exclude list - Update drizzle.config.ts schema path - Fix ensure-schema.ts migration path detection (3 levels up in dev, 2 levels up in dist) - Fix tests/integration/cli-server.test.ts import paths - Update packages/shared imports to apps/server/ paths - Update all docs/ files with new paths
40 lines
828 B
TypeScript
40 lines
828 B
TypeScript
import { Input } from "@/components/ui/input";
|
|
import { Textarea } from "@/components/ui/textarea";
|
|
|
|
interface FreeTextInputProps {
|
|
questionId: string;
|
|
value: string;
|
|
onChange: (value: string) => void;
|
|
multiline?: boolean;
|
|
placeholder?: string;
|
|
}
|
|
|
|
export function FreeTextInput({
|
|
questionId,
|
|
value,
|
|
onChange,
|
|
multiline = false,
|
|
placeholder,
|
|
}: FreeTextInputProps) {
|
|
if (multiline) {
|
|
return (
|
|
<Textarea
|
|
id={questionId}
|
|
value={value}
|
|
onChange={(e) => onChange(e.target.value)}
|
|
placeholder={placeholder ?? "Type your answer..."}
|
|
className="min-h-[80px]"
|
|
/>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Input
|
|
id={questionId}
|
|
value={value}
|
|
onChange={(e) => onChange(e.target.value)}
|
|
placeholder={placeholder ?? "Type your answer..."}
|
|
/>
|
|
);
|
|
}
|