Created
May 29, 2025 08:51
-
-
Save ruucm-working/92a3c75f308e04aff1f9304e62c6c3fc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { forwardRef, type ComponentType } from "react" | |
import { createStore } from "https://framer.com/m/framer/store.js@^1.0.0" | |
const useStore = createStore({ | |
background: "green", | |
likes: "1", | |
userLiked: false, | |
}) | |
export function myOverride(Component): ComponentType { | |
return forwardRef((props, ref) => { | |
const [store, setStore] = useStore() | |
return ( | |
<Component | |
ref={ref} | |
{...props} | |
style={{ | |
background: store.background, | |
}} | |
onClick={() => { | |
setStore({ background: "purple" }) | |
}} | |
/> | |
) | |
}) | |
} | |
export function like(Component): ComponentType { | |
return forwardRef((props, ref) => { | |
const [store, setStore] = useStore() | |
return ( | |
<Component | |
ref={ref} | |
{...props} | |
onClick={() => { | |
if (store.userLiked) | |
setStore({ likes: "1", userLiked: false }) | |
else setStore({ likes: "2", userLiked: true }) | |
}} | |
/> | |
) | |
}) | |
} | |
export function likeNumber(Component): ComponentType { | |
return forwardRef((props, ref) => { | |
const [store, setStore] = useStore() | |
return <Component ref={ref} {...props} text={store.likes} /> | |
}) | |
} | |
export function notification(Component): ComponentType { | |
return forwardRef((props, ref) => { | |
const [store, setStore] = useStore() | |
let variant = "default" | |
if (store.userLiked) variant = "ruucm" | |
else variant = "default" | |
return <Component ref={ref} {...props} variant={variant} /> | |
}) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment