<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts tagged #componenttype</title><description>All posts tagged with componenttype on queen.raae.codes</description><link>https://queen.raae.codes/tag/componenttype/</link><item><title>📝 ✨ ~ Framer Code Override Not Showing? Add ComponentType</title><link>https://queen.raae.codes/2025-12-18-framer-overries-not-showing-up/</link><guid isPermaLink="true">https://queen.raae.codes/2025-12-18-framer-overries-not-showing-up/</guid><description>I&apos;ve seen this question pop up in the Framer community more than a few times: &quot;I wrote a code override, but it&apos;s not showing up in the dropdown!&quot; 😤 It&apos;s…</description><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve seen this question pop up in the &lt;a href=&quot;https://framer.link/queen-raae&quot;&gt;Framer&lt;/a&gt; community more than a &lt;a href=&quot;https://www.framer.community/c/developers/need-help-override-not-showing-in-dropdown-menu&quot;&gt;few times&lt;/a&gt;: &amp;quot;I wrote a code override, but it&apos;s not showing up in the dropdown!&amp;quot; 😤&lt;/p&gt;
&lt;p&gt;It&apos;s frustrating because the code looks right, it&apos;s in the right place, but Framer just... ignores it. Something I also personally experienced when creating my first &lt;a href=&quot;https://outseta.com/?via=queen&quot;&gt;Outseta&lt;/a&gt; code overrides.&lt;/p&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Here&apos;s what usually happens. You write what feels like a perfectly reasonable code override:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;// ❌ This won&apos;t show up in the override panel
import { forwardRef } from &amp;quot;react&amp;quot;;

export const WithClick = (Component) =&amp;gt; {
  return forwardRef((props, ref) =&amp;gt; {
    const handleClick = () =&amp;gt; {
      console.log(&amp;quot;Clicked!&amp;quot;);
    };

    return &amp;lt;Component {...props} ref={ref} onClick={handleClick} /&amp;gt;;
  });
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You save the file, go back to the Framer canvas, and... nothing. The override doesn&apos;t appear in the dropdown. No error message, no explanation. It&apos;s like your code doesn&apos;t even exist.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;Framer has specific requirements for code overrides to show up in the panel. It&apos;s not just about writing a function - the function needs to follow a particular &lt;strong&gt;signature&lt;/strong&gt; that Framer recognizes.&lt;/p&gt;
&lt;p&gt;Specifically, code overrides must be properly typed with React&apos;s &lt;code&gt;ComponentType&lt;/code&gt; as the return type.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;// ✅ This will show up in the override panel
import { forwardRef, ComponentType } from &amp;quot;react&amp;quot;;

export const WithClick = (Component): ComponentType =&amp;gt; {
  return forwardRef((props, ref) =&amp;gt; {
    const handleClick = () =&amp;gt; {
      console.log(&amp;quot;Clicked!&amp;quot;);
    };

    return &amp;lt;Component {...props} ref={ref} onClick={handleClick} /&amp;gt;;
  });
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&apos;s it. The &lt;code&gt;ComponentType&lt;/code&gt; return type annotation is what tells Framer &amp;quot;hey, this is a valid override!&amp;quot; Without it, Framer has no way to know your function is meant to be an override.&lt;/p&gt;
&lt;p&gt;This isn&apos;t really explained in the error messages (because there are no error messages 🤦‍♀️), and it&apos;s not super obvious from the docs either. But once you know it, it makes sense and now you know 🥳&lt;/p&gt;
</content:encoded></item></channel></rss>