identityName Hover card not display data in sync table

Not sure if I’m linking this right, here trying to link a minimal repro bug. The hover text for the Identity column is showing a bunch of empty fields instead of the actual data. What am I doing wrong here?

:white_check_mark: All fields are top-level
:white_check_mark: featuredProperties includes everything
:white_check_mark: Types are simple primitives: String, Number, Array<String>
:white_check_mark: idProperty is unique
:white_check_mark: No nested objects, no complexity
:white_check_mark: All fields are populated with clean data

1 Like

Hi Andrew - Sorry to hear you’re running into an issue here. It looks like you tried to link to some resources, perhaps the Pack and a doc? Unfortuantely it doesn’t seem like they are public, so the links are broken. It may be easier to share some snippets of your code, and to make sure the doc is set to publicly viewable.

1 Like

Hey Eric thanks for the response, sorry about that. Here’s a link to the doc that hopefully will work https://coda.io/d/_dVLs5Zvx6O8/Hover-Card-Repro_suRNQzCw

Here is a code snippet

import * as coda from "@codahq/packs-sdk";

export const pack = coda.newPack();

pack.addSyncTable({
  name: "HoverBugRepro",
  identityName: "TestRow",
  schema: coda.makeObjectSchema({
    properties: {
      shortText: { type: coda.ValueType.String, displayName: "Short Text" },
      longText: { type: coda.ValueType.String, displayName: "Long Text" },
      stringList: {
        type: coda.ValueType.Array,
        items: { type: coda.ValueType.String },
        displayName: "String List",
      },
      numericValue: {
        type: coda.ValueType.Number,
        displayName: "Numeric Value",
      },
    },
    featuredProperties: [
      "shortText",
      "longText",
      "stringList",
      "numericValue",
    ],
    displayProperty: "shortText",
    idProperty: "shortText",
  }),
  formula: {
    name: "SyncHoverBugRepro",
    description: "Demonstrates a hover card rendering bug",
    parameters: [],
    execute: async function ([], context) {
      const longArray = Array(5)
        .fill("Item with label that should render")
        .map((item, i) => `${item} #${i + 1}`);

      const result = {
        shortText: "Hover Bug",
        longText:
          "test",
        stringList: longArray,
        numericValue: 42.5,
      };

      return { result: [result] };
    },
  },
});
1 Like

Hi @Andrew_Jenkins - Thanks for the repro! I did some digging, and it seems like the culprit is the displayName set on the properties. We used to show the normalized property name in the hover card, but apparently we recently updated it to show the displayName if set. However it appears to have introduced a bug which causes the value to now be loaded correctly. I flagged this issue to the team, but I don’t know when we’ll have a fix available.

1 Like