Revert "make non-fillable fields visible but disabled in UI"

This reverts commit f2aad9caac.
This commit is contained in:
dswbx
2025-10-24 14:08:32 +02:00
parent f2aad9caac
commit 166409fdf4
11 changed files with 37 additions and 353 deletions

View File

@@ -29,7 +29,7 @@ export const Group = <E extends ElementType = "div">({
<Tag
{...props}
className={twMerge(
"flex flex-col gap-1.5 has-disabled:cursor-not-allowed",
"flex flex-col gap-1.5",
as === "fieldset" && "border border-primary/10 p-3 rounded-md",
as === "fieldset" && error && "border-red-500",
error && "text-red-500",
@@ -96,7 +96,7 @@ export const Input = forwardRef<HTMLInputElement, React.ComponentProps<"input">>
ref={ref}
className={twMerge(
"bg-muted/40 h-11 rounded-md py-2.5 px-4 outline-none w-full disabled:cursor-not-allowed",
disabledOrReadonly && "bg-muted/50 text-primary/50 cursor-not-allowed",
disabledOrReadonly && "bg-muted/50 text-primary/50",
!disabledOrReadonly &&
"focus:bg-muted focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent transition-all",
props.className,
@@ -153,7 +153,7 @@ export const Textarea = forwardRef<HTMLTextAreaElement, React.ComponentProps<"te
{...props}
ref={ref}
className={twMerge(
"bg-muted/40 min-h-11 rounded-md py-2.5 px-4 focus:bg-muted outline-none focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent transition-all disabled:bg-muted/50 disabled:text-primary/50 disabled:cursor-not-allowed",
"bg-muted/40 min-h-11 rounded-md py-2.5 px-4 focus:bg-muted outline-none focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent transition-all disabled:bg-muted/50 disabled:text-primary/50",
props.className,
)}
/>
@@ -213,7 +213,7 @@ export const BooleanInput = forwardRef<HTMLInputElement, React.ComponentProps<"i
{...props}
type="checkbox"
ref={ref}
className="outline-none focus:outline-none focus:ring-2 focus:ring-zinc-500 transition-all disabled:opacity-70 disabled:cursor-not-allowed scale-150 ml-1"
className="outline-none focus:outline-none focus:ring-2 focus:ring-zinc-500 transition-all disabled:opacity-70 scale-150 ml-1"
checked={checked}
onChange={handleCheck}
disabled={props.disabled}
@@ -259,6 +259,7 @@ export const Switch = forwardRef<
props.disabled && "opacity-50 !cursor-not-allowed",
)}
onCheckedChange={(bool) => {
console.log("setting", bool);
props.onChange?.({ target: { value: bool } });
}}
{...(props as any)}
@@ -292,7 +293,7 @@ export const Select = forwardRef<
{...props}
ref={ref}
className={twMerge(
"bg-muted/40 focus:bg-muted rounded-md py-2.5 px-4 outline-none focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent transition-all disabled:bg-muted/50 disabled:text-primary/50 disabled:cursor-not-allowed",
"bg-muted/40 focus:bg-muted rounded-md py-2.5 px-4 outline-none focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent transition-all disabled:bg-muted/50 disabled:text-primary/50",
"appearance-none h-11 w-full",
!props.multiple && "border-r-8 border-r-transparent",
props.className,

View File

@@ -44,7 +44,7 @@ export function EntityForm({
className,
action,
}: EntityFormProps) {
const fields = entity.getFields({ virtual: true, primary: false });
const fields = entity.getFillableFields(action, true);
const options = useEntityAdminOptions(entity, action);
return (
@@ -92,6 +92,10 @@ export function EntityForm({
);
}
if (!field.isFillable(action)) {
return;
}
const _key = `${entity.name}-${field.name}-${key}`;
return (
@@ -123,7 +127,7 @@ export function EntityForm({
<EntityFormField
field={field}
fieldApi={props}
disabled={fieldsDisabled || !field.isFillable(action)}
disabled={fieldsDisabled}
tabIndex={key + 1}
action={action}
data={data}

View File

@@ -17,7 +17,7 @@ export function useEntityForm({
}: EntityFormProps) {
const data = initialData ?? {};
// @todo: check if virtual must be filtered
const fields = entity.getFields({ virtual: true, primary: false });
const fields = entity.getFillableFields(action, true);
// filter defaultValues to only contain fillable fields
const defaultValues = getDefaultValues(fields, data);