figma.string() renders as template literal instead of actual value when used within conditional boolean props

Open
#304 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
react, typescript
Domain
devtools

Research direction

Start by tracing how figma.boolean() handles conditional JSX props and how nested figma.string() values are rendered in the generated snippet; the issue names no source files or tests. Reproduce the example against Code Connect 1.3.4 and identify the rendering path for the true branch. Done means the snippet displays the Figma string value when Show Description is true.

Written by the indexing model from the issue text.

Description

feature request

Bug Description

When using figma.string() inside a conditional boolean prop mapping, the generated code snippet shows the template literal { figma.string('Property Name') } instead of the actual string value from Figma.

Expected Behavior

When Show Description is true, the code snippet should display:

<CardHeader>
  <CardTitle>Title Text</CardTitle>
  <CardDescription>This is a card description.</CardDescription>
</CardHeader>

Actual Behavior

The code snippet shows:

<CardHeader>
  <CardTitle>Title Text</CardTitle>
  <CardDescription>{ figma.string('Description Text') }</CardDescription>
</CardHeader>

Code Sample

figma.connect(
  CardHeader,
  'figma-url',
  {
    props: {
      cardDescription: figma.boolean('Show Description', {
        true: <CardDescription>{ figma.string('Description Text') }</CardDescription>,
        false: undefined,
      }),
      titleText: figma.string('Title Text'),
    },
    example: (props) => (
      <CardHeader>
        <CardTitle>{ props.titleText }</CardTitle>
        { props.cardDescription }
      </CardHeader>
    ),
  },
);

Environment

Figma Code Connect version: 1.3.4
Framework: React

Figma Component Instance

Image
Dominant language
TypeScript
Stars
1.6k
Forks
126
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from figma/code-connect

All issues in figma/code-connect

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.