Skip to content

Properties no longer rendering in previously working UI Component #29

@shayanhabibi

Description

@shayanhabibi

Previously I'd have a selectable column in a TanStack.Table rendering a checkbox.

While making a guide, I encountered an issue where I could no longer control the checked' value.

When digging further, I discovered the property was no longer rendering in the JSX.

See the AST:

AST Code
fable:                                            Set
fable:                                              (TypeCast
fable:                                                 (IdentExpr
fable:                                                    { Name = "returnVal"
fable:                                                      Type =
fable:                                                       DeclaredType
fable:                                                         ({ FullName =
fable:                                                             "Partas.Solid.examples.checkbox.Checkbox"
fable:                                                            Path =
fable:                                                             SourcePath
fable:                                                               "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" },
fable:                                                          [])
fable:                                                      IsMutable = true
fable:                                                      IsThisArgument = false
fable:                                                      IsCompilerGenerated = true
fable:                                                      Range =
fable:                                                       Some
fable:                                                         { start =
fable:                                                            { line = 216
fable:                                                              column = 12 }
fable:                                                           end = { line = 222
fable:                                                                   column = 17 }
fable:                                                           identifierName =
fable:                                                            Some
fable:                                                              "returnVal;file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" } },
fable:                                                  DeclaredType
fable:                                                    ({ FullName =
fable:                                                        "Partas.Solid.Kobalte.Checkbox"
fable:                                                       Path =
fable:                                                        SourcePath
fable:                                                          "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.Kobalte.0.3.5/Checkbox.fs" },
fable:                                                     [])), FieldSet "checked'",
fable:                                               Boolean,
fable:                                               CurriedApply
fable:                                                 (Call
fable:                                                    (Import
fable:                                                       ({ Selector =
fable:                                                           "Partas_Solid_TanStack_Table_Table_Table$1__Table$1_get_getIsAllPageRowsSelected"
fable:                                                          Path =
fable:                                                           "../fable_modules/Partas.Solid.TanStack.Table.0.2.0/RowSelection.fs"
fable:                                                          Kind =
fable:                                                           MemberImport
fable:                                                             (MemberRef
fable:                                                                ({ FullName =
fable:                                                                    "Partas.Solid.TanStack.Table.RowSelection"
fable:                                                                   Path =
fable:                                                                    SourcePath
fable:                                                                      "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.TanStack.Table.0.2.0/RowSelection.fs" },
fable:                                                                 { IsInstance =
fable:                                                                    true
fable:                                                                   CompiledName =
fable:                                                                    "Table`1.get_getIsAllPageRowsSelected"
fable:                                                                   NonCurriedArgTypes =
fable:                                                                    Some [Unit]
fable:                                                                   AttributeFullNames =
fable:                                                                    [] })) },
fable:                                                        LambdaType
fable:                                                          (DeclaredType
fable:                                                             ({ FullName =
fable:                                                                 "Partas.Solid.TanStack.Table.Table.Table`1"
fable:                                                                Path =
fable:                                                                 SourcePath
fable:                                                                   "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.TanStack.Table.0.2.0/Program.fs" },
fable:                                                              [DeclaredType
fable:                                                                 ({ FullName =
fable:                                                                     "Partas.Solid.examples.checkbox.User"
fable:                                                                    Path =
fable:                                                                     SourcePath
fable:                                                                       "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" },
fable:                                                                  [])]),
fable:                                                           LambdaType
fable:                                                             (Unit,
fable:                                                              LambdaType
fable:                                                                (Unit, Boolean))),
fable:                                                        None),
fable:                                                     { ThisArg =
fable:                                                        Some
fable:                                                          (Get
fable:                                                             (IdentExpr
fable:                                                                { Name =
fable:                                                                   "headerProps"
fable:                                                                  Type =
fable:                                                                   DeclaredType
fable:                                                                     ({ FullName =
fable:                                                                         "Partas.Solid.TanStack.Table.Table.RenderProps.HeaderRenderProps`1"
fable:                                                                        Path =
fable:                                                                         SourcePath
fable:                                                                           "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.TanStack.Table.0.2.0/Program.fs" },
fable:                                                                      [DeclaredType
fable:                                                                         ({ FullName =
fable:                                                                             "Partas.Solid.examples.checkbox.User"
fable:                                                                            Path =
fable:                                                                             SourcePath
fable:                                                                               "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" },
fable:                                                                          [])])
fable:                                                                  IsMutable =
fable:                                                                   false
fable:                                                                  IsThisArgument =
fable:                                                                   false
fable:                                                                  IsCompilerGenerated =
fable:                                                                   false
fable:                                                                  Range =
fable:                                                                   Some
fable:                                                                     { start =
fable:                                                                        { line =
fable:                                                                           217
fable:                                                                          column =
fable:                                                                           28 }
fable:                                                                       end =
fable:                                                                        { line =
fable:                                                                           217
fable:                                                                          column =
fable:                                                                           39 }
fable:                                                                       identifierName =
fable:                                                                        Some
fable:                                                                          "headerProps;file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" } },
fable:                                                              FieldGet
fable:                                                                { Name = "table"
fable:                                                                  FieldType =
fable:                                                                   Some
fable:                                                                     (DeclaredType
fable:                                                                        ({ FullName =
fable:                                                                            "Partas.Solid.TanStack.Table.Table.Table`1"
fable:                                                                           Path =
fable:                                                                            SourcePath
fable:                                                                              "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.TanStack.Table.0.2.0/Program.fs" },
fable:                                                                         [GenericParam
fable:                                                                            ("Data",
fable:                                                                             false,
fable:                                                                             [])]))
fable:                                                                  IsMutable =
fable:                                                                   false
fable:                                                                  MaybeCalculated =
fable:                                                                   true
fable:                                                                  Tags = [] },
fable:                                                              DeclaredType
fable:                                                                ({ FullName =
fable:                                                                    "Partas.Solid.TanStack.Table.Table.Table`1"
fable:                                                                   Path =
fable:                                                                    SourcePath
fable:                                                                      "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.TanStack.Table.0.2.0/Program.fs" },
fable:                                                                 [DeclaredType
fable:                                                                    ({ FullName =
fable:                                                                        "Partas.Solid.examples.checkbox.User"
fable:                                                                       Path =
fable:                                                                        SourcePath
fable:                                                                          "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" },
fable:                                                                     [])]),
fable:                                                              Some
fable:                                                                { start =
fable:                                                                   { line = 217
fable:                                                                     column = 28 }
fable:                                                                  end =
fable:                                                                   { line = 217
fable:                                                                     column = 45 }
fable:                                                                  identifierName =
fable:                                                                   Some
fable:                                                                     ";file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" }))
fable:                                                       Args =
fable:                                                        [Value
fable:                                                           (UnitConstant,
fable:                                                            Some
fable:                                                              { start =
fable:                                                                 { line = 217
fable:                                                                   column = 28 }
fable:                                                                end =
fable:                                                                 { line = 217
fable:                                                                   column = 70 }
fable:                                                                identifierName =
fable:                                                                 Some
fable:                                                                   ";file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" })]
fable:                                                       SignatureArgTypes = [Unit]
fable:                                                       GenericArgs =
fable:                                                        [DeclaredType
fable:                                                           ({ FullName =
fable:                                                               "Partas.Solid.examples.checkbox.User"
fable:                                                              Path =
fable:                                                               SourcePath
fable:                                                                 "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" },
fable:                                                            [])]
fable:                                                       MemberRef =
fable:                                                        Some
fable:                                                          (MemberRef
fable:                                                             ({ FullName =
fable:                                                                 "Partas.Solid.TanStack.Table.RowSelection"
fable:                                                                Path =
fable:                                                                 SourcePath
fable:                                                                   "C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/fable_modules/Partas.Solid.TanStack.Table.0.2.0/RowSelection.fs" },
fable:                                                              { IsInstance = true
fable:                                                                CompiledName =
fable:                                                                 "Table`1.get_getIsAllPageRowsSelected"
fable:                                                                NonCurriedArgTypes =
fable:                                                                 Some [Unit]
fable:                                                                AttributeFullNames =
fable:                                                                 [] }))
fable:                                                       Tags = ["value"] },
fable:                                                     LambdaType (Unit, Boolean),
fable:                                                     Some
fable:                                                       { start = { line = 217
fable:                                                                   column = 70 }
fable:                                                         end = { line = 217
fable:                                                                 column = 72 }
fable:                                                         identifierName =
fable:                                                          Some
fable:                                                            ";file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" }),
fable:                                                  [Value
fable:                                                     (UnitConstant,
fable:                                                      Some
fable:                                                        { start = { line = 217
fable:                                                                    column = 70 }
fable:                                                          end = { line = 217
fable:                                                                  column = 72 }
fable:                                                          identifierName =
fable:                                                           Some
fable:                                                             ";file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" })],
fable:                                                  Boolean,
fable:                                                  Some
fable:                                                    { start = { line = 217
fable:                                                                column = 28 }
fable:                                                      end = { line = 217
fable:                                                              column = 72 }
fable:                                                      identifierName =
fable:                                                       Some
fable:                                                         ";file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" }),
fable:                                               Some
fable:                                                 { start = { line = 217
fable:                                                             column = 27 }
fable:                                                   end = { line = 217
fable:                                                           column = 73 }
fable:                                                   identifierName =
fable:                                                    Some
fable:                                                      ";file:C:/Users/shaya/RiderProjects/Partas.Solid/Partas.Solid/examples/checkbox.fs" })];
FSharp Source
[<SolidComponent(ComponentFlag.DebugMode)>]
let selectColumn =
    ColumnDef<User>(
        id = "select"
        ,enableHiding = false
        ,cell = fun cellProps ->
            Checkbox(
                checked' = cellProps.row.getIsSelected(),
                onChange = fun value -> cellProps.row.toggleSelected(value)
                ,ariaLabel = "Select row",
                class' = "translate-y-[2px]"
                )
        ,header = fun headerProps ->
            Checkbox(
                checked' = (headerProps.table.getIsAllPageRowsSelected()),
                indeterminate = (headerProps.table.getIsSomePageRowsSelected()),
                onChange = fun value -> headerProps.table.toggleAllPageRowsSelected(value)
                ,ariaLabel = "Select all"
                ,class' = "translate-y-[2px]"
                )
    )
Compiled JSX
export const selectColumn = {
    id: "select",
    header: (headerProps) => <Checkbox onChange={(value) => {
            headerProps.table.toggleAllPageRowsSelected((() => {
                throw 1;
            })());
        }}
        ariaLabel="Select all"
        class="translate-y-[2px]" />,
    cell: (cellProps) => <Checkbox onChange={(value_1) => {
            cellProps.row.toggleSelected((() => {
                throw 1;
            })());
        }}
        ariaLabel="Select row"
        class="translate-y-[2px]" />,
    enableHiding: false,
};

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions